1、eval执行 我们进去以后首先进行一个代码审计,发现这里密码cmd非常清晰 OK话不多说连蚁剑 我们看到这样一个文件 右键选择在此处打开终端 接下来就是按部就班的找到flag所在的文件,cat查看即可 2、无过滤的命令注入 先审计代码,嗯雀氏没有过滤
输入127.0.0.1返回结果说明可以进行代码注入,接下来还是按部就班 127.0.0.1;ls 127.0.0.1;cat 。。。。。这里没有返回可能是因为进行了加密 127.0.0.1;cat 。。。。。|base64 得到加密后的字符串 把得到的加密字符串扔base64在线解密里,即为flag 3、过滤cat 还是先审计代码 过滤了cat,我们可以用其他命令代替 127.0.0.1;ls 127.0.0.1;less 。。。。。|base64 还是扔在线base64解密得到flag 4、过滤空格 这里过滤了空格,我们可以使用 ${IFS}来代替 127.0.0.1;ls 按部就班替换空格加上base64得到加密字符串,解密即得flag5、过滤目录分隔符 依然先代码审计,我们发现他过滤的这个符号对我们没有任何影响,直接按部就班ls 1
解密即得flag 6、过滤运算符 审计代码,视乎依然没影响,按部就班吧 我们到最后一步后可能得不到base64加密字符串,这时候我们可以直接查看网页源代码,效果是一样的 7、综合练习
审计代码,这里过滤了很多符号和命令,我们构建payload的思路还是代替
空格 用${IFS}代替
flag用 f***代替
cat用 more代替
; 用%0a 回车代替 按部就班,我们构建的最终的payload是:
127.0.0.1%0acd${IFS}f***_is_here%0amore${IFS}f***_9098301778463.php
这里注意: 我们的payload用的是url命令因此需要在url地址框输入 1
这里依旧查看网页源代码找到flag!
|