zoukankan      html  css  js  c++  java
  • SQL注入之Sqli-labs系列第二十九关(基于WAF防护的单引号报错注入)

    开始挑战第二十九关(Protection with WAF) 

    0x1查看源码

    (1)login.php页面存在防护,只要检测到存在问题就跳转到hacked.php页面(其他信息看备注)

    0x2 foreach循环

    (1)第一方式 foreache($qs_array as $val)

      这里的$qs_array就是需要遍历的数组名,每次循环时,$qs_array数组的当前元素的值被赋值给$val,并且数组的会逐次向后移动一步,即下次循环得到另一个元素;

    (2)第二方式 foreache($qs_array as  $key => $val)

          第二种和第二种不同的是多了一个key,key代表键值也是下标(比如:name[0]='张三'中的[0]就是下标值),在这样的循环下,不仅要将当前元素赋予$val,也要把当前的键职赋值给$key

    0x3小结

      来看看第二种格式,第二种格式除了能像第一种格式一样得到数组内元素的值外,还能得到元素的索引值,并保存到$key变量中,如果数组的索引值未经过人工设定,则返回系统默认的设定值。

              根据其中代码逻辑,WAF 会检测 id 是否为数字,如果不是一律转向 hacked.php。但是程序 没有考虑当 id 多次赋值的情况,它只对第一次的 id 进行了测试,如果传入多个 id,(如id=1&id=1&id=.....)那么后 面的 id 则存在注入漏洞。

    0x4开始测试

     (1) 传入多个ID参数,利用1=1进行测试(最开始已用单引号测试)

    (2)order by 猜解字段,正确为3个

    (4)union select联合查询

    (5)获取数据库,表名

    (6)获取字段名

    (7)获取数据

  • 相关阅读:
    tips
    【十大算法实现之KNN】KNN算法实例(含测试数据和源码)
    智力趣题几则
    JAVA知多少
    R语言(入门小练习篇)
    文本分类,数据挖掘和机器学习
    推荐系统的循序进阶读物(从入门到精通)
    【贪心】PAT 1033. To Fill or Not to Fill (25)
    博弈故事一则——海盗分金币问题
    基于WordNet的英文同义词、近义词相似度评估及代码实现
  • 原文地址:https://www.cnblogs.com/AmoBlogs/p/8721675.html
Copyright © 2011-2022 走看看