zoukankan      html  css  js  c++  java
  • 渗透测试---SQL注入~hpp http参数污染

    sql-labs的Less 29关的正确打开方式:

    http://192.168.18.21/sqli-labs-master/Less-29/login.php

    输入

    http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1

    发现输出结果为id=1的值

    http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1&id=2

    发现输出结果为id=2的值

    http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1&id=2&id=3

    发现输出结果为id=3的值

    综上,发现mysql中用&连接多个参数,只输出最后一个参数的结果。

    输入

    http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1'&id=2&id=3

    页面显示注入被拦截。

    http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1&id=2'&id=3

    页面无变化。

    http://192.168.18.21/sqli-labs-master/Less-29/login.php?id=1&id=2&id=3'

    页面报数据库错误。

    说明第一个参数被waf拦截,中间的参数无影响,最后一个参数被带到数据库中执行。

    本关存在php的一个hpp漏洞,当同时传递多个参数时,不同的服务器可能会取得不同的参数值。

    可以通过http参数污染绕过waf参数拦截:

    如果是$_get(id)获取id,则可以在参数后添加参数,对最后的参数进行注入,即可绕过waf。

    也就是说waf只检查第一个参数,而应用程序取最后一个参数代入数据库执行。

    参考文章:

    https://blog.csdn.net/eatmilkboy/article/details/6761407

    Web应用里的HTTP参数污染(HPP)漏洞

  • 相关阅读:
    Burp Suite Intruder的4种攻击类型
    JSP Response Set Status
    Mybatis中的#和$的区别
    请求转发、请求重定向
    Spring IoC Container and Spring Bean Example Tutorial
    成员变量声明时初始化和构造方法中初始化的区别
    JDK开发WebService
    Mac设置截图保存位置
    Socket通信
    DOM4J解析xml
  • 原文地址:https://www.cnblogs.com/123456ZJJ/p/12846633.html
Copyright © 2011-2022 走看看