ssrf不会做了QAQ
开始前可以大概了解一下rce中的常用绕过方法rce注入过滤
命令注入
没有任何过滤,直接127.0.0.1|ls查看文件
然后cat一下flag即可(f12找到flag,被注释了)
过滤cat
将cat过滤,我们可以考虑用tac,即倒着输出,同上,首先ls,之后tac一下flag文件即可
过滤空格
空格可以用许多种方法绕过
< 、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、 $IFS
这里用$ IFS $9代替空格即可
同样f12可以找到flag
过滤目录分隔符
思路:通过cd进到目录中–>之后cat出来内容
过滤运算符
这里好像也用不到运算符啊。。。
同没过滤的一样,直接ls+cat+f12得到flag
综合过滤
可以看到将cat,;,flag,空格等全部过滤
这时候我们用hex编码代替flag,%0a代替;,${IFS} $代替空格,同时要在url中进行get请求,否则会被再次编码
这里可以看到ping完之后再url中%0a被再次编码
所以要直接在url中进行ping
注意这里用printf输出flag_is_here的目录
输出php文件,f12找到flag
eval执行
记得要有;!!这是一条语句!
空格/ :根目录
。。/ :回到上级目录
我们查看根目录
找到flag
之后在跟目录下cat一下即可
文件包含
文件包含中需要用到php的include函数,大概作用是将其包含到网站目录下,这里我们看到提示说有一个shell.txt,点击查看内容可以看到可以通过其来获得shell
分析原码我们直接get过去
之后就可以利用shell了
查看根目录
根目录下cat文件flag,得到flag
php://input
直接上大佬文章,写的太好了
php://input
读取源代码
上一题中用到php://input,这一题需要使用php://filter
filter的使用
这里题目已经告诉我们flag在/flag中,我们构造payload
即可得到flag
远程包含
思路和input一样
使用input协议来执行system
查看flag
完结