【SQL注入-02】SQL注入点的简单判断

1 实验环境

实验靶场——虚拟机(IP为172.16.1.1):本节实验靶场是在win2008系统上基于phpstudy搭建的一个简单网站,win2008及phpstudy的安装过程可以参考《【语言环境】WAMP环境部署及优化—以win2008R2SP1为操作系统》,网站的搭建过程可以参考《【(SQL+HTML+PHP)综合】一个简单论坛网站的综合开发案例

注入工具——真实机:本实验利用火狐浏览器来实现union注入,为方便注入过程的编码,建议安装一个扩展插件harkbar,安装过程参考《HackBar免费版安装方法》由于该教程中的2.1.3harkbar我安装后无法正常使用,就安装了HackBar Quantum来代替。安装后出现下图左侧的东西。
在这里插入图片描述

2 准备工作

利用御剑后台扫描珍藏版扫描网站后台。
(1)下载御剑后台扫描珍藏版,并打开御剑后台扫描工具。
在这里插入图片描述
(2)按照如下要求填写。
在这里插入图片描述
(3)扫描完成后,如下所示。采用御剑进行扫描时,也是遵循爆破的原理,御剑有自己的字典。
在这里插入图片描述

3 判断是否存在SQL注入点及注入的类型

在该阶段主要是尝试不同的输入参数,根据网页反馈信息来判断是否存在SQL注入点以及注入类型,如是否是字符型还是数值型,是否有布尔状态,是否存在延迟注入等。首先用浏览器访问我们的留言论坛,并点击第一条留言进入测试界面。然后进行如下四步测试。
在这里插入图片描述
在这里插入图片描述
(1)将参数修改为?id=5,并刷新,看到页面变化如下,弹出第5条留言内容,由此可推测见后台是根据id参数的不同来反馈不同信息,因此推测留言内容极有可能是存在数据库中,可控参数id与数据库存在交互,很可能存在sql注入。
在这里插入图片描述
(2)判断注入类型为字符型还是数字型。将参数修改为?id=5'id=5"并刷新,看到页面变化如下。
在这里插入图片描述

  • 如果出现上述这种报错信息,错误发生在单引号附近,说明此注入点可能为数字型注入。具体分析如下:
    猜测原sql语句可能为:select * from table where id=$id。假如id为数字型,则sql语句为select * from table where id=5,当输入?id=5‘,时,sql语句变为select * from table where id=5',说明单引号之前都是正确的,说明单引号是多余的。
  • 如果出现类似下述这种报错信息,错误发生在数字附近,说明此注入点可能为字符型注入。具体分析如下:
    猜测原sql语句可能为:select * from table where id=$id。假如id为字符型,则sql语句为select * from table where id='5',当输入?id=5‘,时,sql语句变为select * from table where id='5'',显示出了数字,是字符型注入。
    在这里插入图片描述

(3) 测试页面是否有布尔类型的状态。修改参数为①?id=5 and 1=1;②?id=5 and 1=2。这两者页面回显不一样,说明可能有布尔类型的状态。

  • 当参数为?id=5 and 1=1;返回页面与原页面一致 。通过该参数我们可以分析得到该注入数据类型为数值型,原因如下:
    ①猜测为数值型,则后台SQL语句为 select * from table where id=5 and 1=1,where语句判断条件为真且id=5,语句正常执行。
    ②猜测为字符型,则后台SQL语句为 select * from table where id=‘5 and 1=1’,where语句将找不到id为‘5 and 1=1’的参数,语句执行失败。
    在这里插入图片描述
  • 当参数为 ?id=5 and 1=2,由于 and 1=2 为假 ,也就是查询条件[where id=5 and 1=2] 恒假,这样的sql语句在数据库中执行后,没有返回结果,如下图所示。也就是说是否能正常回显内容与语句的真假性有关。
    在这里插入图片描述

(4) 判断参数是否存在延迟注入。按F12打开调试面板,修改参数为?id=5 and sleep(5),并刷新。可以看到sleep语句对网页的响应起到作用,也就是意味着存在延迟注入的可能。
在这里插入图片描述

4 结论:

(1)因为id参数是用户可控的,会随请求带入到数据库中执行并回显相应内容,可能是一个注入点。
(2)第一步当id变化时,页面回显响应变化,首先考虑联合注入
(3)第二步,加单引号或双引号,当有报错时,可考虑报错注入;
(4)当第二步没变化,进行第三步,当页面有布尔类型的状态,可考虑布尔盲注;
(5)若都不行,进行第四步,考虑延时注入。
(6)从联合注入到盲注以及延迟注入,其时间人力成本逐步增大,尽可能选择低成本方式进行注入。

  • 11
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值