首页 > 网络安全 > 也说说Http Parameter Pollution

也说说Http Parameter Pollution

2009年6月4日 发表评论 阅读评论

国外那份文档出了很长时间了,也有人分析过了,我认为完全属性YY,只不过是一种特性罢了。只说一下PHP的:
比如这个URL:http://127.0.0.1/hpp.php?in=1&in=2&in=3&in=4&in=5&in=6&in=7
PHP会接收最后一参数调用。
如果源代码是这样的话:

<?PHP<br />  $var = $_GET&#91;"in"&#93;;<br />  echo htmlspecialchars($var);<br />?>

或者:

$id = $_GET&#91;"id"&#93;;<br />$query = "select * from xsstest where id=".intval($id);

不管你是参数覆盖还是参数合并,或者取第一个参数,也或者取第二个参数,还是怎么着, htmlentities、htmlspecialchars 、intval 、mysql_escape_string 等等,他终会去处理的,又不是说PHP函数只处理第一参数,其他同名的参数传递过来就不处理,如果是这样我认为才是漏洞。流程应该是这样的:浏览器参数–》根据 PHP、asp等各种程序去选择参数值 –》代码处理。
如上URL,我们如果把他当成漏洞去攻击的,其实我们测试其后的同名参数,和我们正常应用是一样的。完全是取参特性而已。不管是XSS,sql,都会处理的。还是那句话:又不是说程序函数只处理第一参数,其他同名的参数传递过来就不处理,如果是这样我认为才是漏洞。
此文随便说说,难免有错。

转载请注明:woyigui's blog [http://www.woyigui.cn/]
本文标题:也说说Http Parameter Pollution
本文地址:http://www.woyigui.cn/2009/06/04/Http-Parameter-Pollution/

分类: 网络安全 标签:
  1. QZ
    2009年6月4日16:45 | #1

    分析得还可以,如果对这类YY概念一知半解,然后无视PHP的超级全局变量的这种基础特性,我想换了谁都会很无语。

    不过Http Parameter Pollution逃避IDS之类确实是不错的思路。

    [回复]

    woyigui 回复:

    呵呵,逃避IDS这个问题,也是一种方法,也就是逃避关键字法了,比如:asp?id=1 an%d 1=(selec%t * form admin) 一样可以突破了。

    [回复]

  2. xy7
    2009年6月5日02:54 | #2

    呃……我还是觉得这个文章分析的不是HPP。HPP的本质都不是放在程序层面的,这篇文章里的PHP例子和作者的例子展现的都是在HPP之后的行为(CSRF,注入),HPP要是有搞头就必须结合程序的漏洞,所以HPP和程序特性是要分开看的,最后说一句大实话:现在的IDS虽然不是万能的,但是也绝对不像楼主说的那么简单,还关键字呢……呵呵

    btw
    $query = "select * from xsstest where id=".intval($id);
    这代码写的有问题……

    [回复]

    woyigui 回复:

    IDS确实不能就关键字这么简单,我只是提一下。。。代码只是例子。您说的那个应用分层思维很好。

    [回复]

  3. xy7
    2009年6月5日02:57 | #3

    结合 存在风险 不结合 纯YY 哈哈

    [回复]

  4. QZ
    2009年6月5日03:06 | #4

    恩 XY7这个说法我不反对,确实是结合其他如XSS、CSRF和SQL注射之类才会出现安全问题。

    但是本质还是没有太多的区别,仅仅是绕过一些逻辑上面的防护手段。

    [回复]

  5. gogo
    2010年4月17日13:28 | #5

    浏览器参数–》根据 PHP、asp等各种程序去选择参数值 -?有点不对吧?我工具看过提交,都提交了!!估计要么是服务器选择,要么是语言特性选项!!fearlove

    [回复]

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
*