sqli-labs ---- Less-2

[地址]: https://github.com/Audi-1/sqli-labs


===================================

注入字符串数据

1.提交一个单引号作为目标查询的数据。观察是否会造成错误,或结果是否与原始结果不同。
  如果收到详细的错误信息,可查阅该消息的含义。
2.如果发现错误或其他异常行为,同时提交两个单引号,看会出现什么情况。
  数据库使用两个单引号作为转义序列,表示一个原义引号,因此这个序列被解释成引用字
  符串的数据,而不是结束字符串的终止符号。如果这个输入导致错误或异常行为消失,
  则这个应用程序可能易于受到SQL注入攻击。
3.为进一步核实漏洞是否存在,可以使用SQL连接符建立一个等同于“良性”输入的字符串。
  如果应用程序以与处理对应“良性”输入相同的方式处理专门设计的输入,那么它很可能
  易于受到攻击。每种数据库使用的字符连接方法各不相同。在易受攻击的应用程序中,
  可以注入以下实例构建等同于FOO的输入:
  Oracle: '||'FOO
  MS-SQL: '+'FOO
  MYSQL: ' 'FOO (注意引号之间有个空格)


注入数字数据

如果SQL查询合并用户提交的数字数据,应用程序仍然会将它包含在单引号中,作为字符串
数据进行处理。因此,一定要执行前面描述的针对字符串数据的渗透测试步骤。但是,许多
时候,应用程序会将数字数据以数字格式直接传送到数据库中,并不把它放入单引号中。如
果前面描述的测试方法无法检测到漏洞,还可以采取以下针对数字数据的特殊测试步骤。

1.尝试输入一个结果等于原始数字值的简单数学表达式。例如,如果原始值为2,尝试提交
  1+1。如果应用程序做出相同的响应,则表示它易于受到攻击。
2.如果证实被修改的数据会对应用程序的行为造成明显影响,则前面描述的测试方法最为可
  靠。例如,如果应用程序使用数字化PageID参数指定应返回什么内容,则用1+1代替2得
  到相同的结果明显表示存在SQL注入。但是,如果能够在数字化参数中插入任意输入,但
  应用程序的行为却没有发生改变,那么前面的检测方法就无法发现漏洞。
3.如果第一个测试方法取得成功,你可以利用更加复杂的,使用特殊SQL关键字和语法的表
  达式进一步获得与漏洞有关的证据。ASCII命令就是一个典型的示例,它返回被提交字符
  的数字化ASCII代码。例如,67-ASCII('A')
4.如果单引号被过滤掉,那么前面的测试方法就没有作用。但是,这时可以利用这样一个事
  实:即在必要时,数据库会隐含地将数字数据转换为字符串数据。


提示:

在探究应用程序是否存在SQL注入之类的缺陷时,我们常常会犯一个错误,即忘记某
些字符在HTTP请求中具有的特殊含义。如果你希望在攻击有效载荷中插入这些字符,必须谨
慎的对它们进行URL编码,确保应用程序按预料的方式解释它们。
    1.&和=用于连接名/值时,建立查询字符产和POST数据块,应当使用%26与%3d。
    2.查询字符串不允许出现空格,空格会导致字符串终止,应使用+或%20编码。
    3.+被编码为空格,如果想在字符串中使用+,需编码为%2b。因此在前面的数字化
      实例中,1+1应使用1%2b1。
    4.分号用于分割cookie字段,必须使用%3b对其编码。


部分代码如下:

// connectivity  
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
 
    if($row)
    {
      echo '<font color= "#0000ff">';    
      echo 'Your Login name:'. $row['username'];
      echo "<br>";
      echo 'Your Password:' .$row['password'];
      echo "</font>";
      }
    else  
    {
    echo '<font color= "#FFFF00">';
    print_r(mysql_error());
    echo "</font>";   
    }
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值