sqlmap是一个优秀的SQL注入工具,官方给出的使用说明为:https://github.com/sqlmapproject/sqlmap/wiki/Usage。
我感觉官方的教程很不错,建议大家仔细去看看,另外推荐大家使用较新版本的sqlmap,因为有些功能在旧版本中没有。
用法一:使用代理
sqlmap.py --url="http://localhost/sqlzhurulianxi.php?id=1" --proxy=http://127.0.0.1:8080
可以是HTTP、HTTPS、socks5代理。
用法二:指定数据库类型
sqlmap.py --url=http://localhost/sqlzhurulianxi.php?id=1 --dbms=MySQL
常见的数据库类型有:MySQL,Access,MSSQL。
用法三:使用随机User-Agent
sqlmap.py --url=http://localhost/sqlzhurulianxi.php?id=1 --random-agent
--random-agent选项会告诉sqlmap随机选择一个User-Agent用于扫描,推荐在渗透过程中使用。
用法四: 设置并发线程数
sqlmap.py --url=http://localhost/sqlzhurulianxi.php?id=1 --threads=4
在拖库的时候推荐使用此选项,能明显增加拖库的速度。
用法五:指定User-Agent
sqlmap.py --url=http://localhost/sqlzhurulianxi.php?id=1 --user-agent="Firefox/60.2.6"
用法六:指定Referer字段
sqlmap.py --url=http://localhost/sqlzhurulianxi.php?id=1 --referer="https://www.baidu.com/index.html"
用法七:添加HTTP请求头
sqlmap.py --url=http://127.0.0.1/sqlzhurulianxi.php?id=1 --headers="X-Forwarded-For: 1.1.1.1\nETag: 123456"
--headers选项可以往HTTP请求头中添加字段,例如添加X-Forwarded-For字段。多个字段要用\n隔开。
用法八:清空缓存从头再来
sqlmap.py --url="http://localhost/sqlzhurulianxi.php?id=1" --flush-session
对某网站进行扫描时sqlmap会产生缓存文件,将扫描结果缓存到本地,下次扫描时会直接调用本地缓存的扫描结果。
如果我们想删除缓存结果,重新对某网站进行扫描就需要添加--flush-session选项。
用法九:将HTTP数据包输出到外部文件
sqlmap.py --url=http://127.0.0.1/sqlzhurulianxi.php?id=1 -t http.log
-t选项表示把扫描过程中的HTTP请求包和响应包都输出到http.log文件中,这有利于我们观察学习sqlmap的扫描payload。
用法十:获取交互式SQL Shell
sqlmap.py --url=http://127.0.0.1/sqlzhurulianxi.php?id=1 --sql-shell
在交互式shell中可以直接输入SQL语句对目标数据库进行操作,sqlmap会自动执行SQL语句并返回执行结果。