Author:舞林
    腾讯微博:http://t.qq.com/wulinlw

    今天在微博看到有位童鞋遇到了一个伪静态的注入点。因为自动化工具都会检测url,所以无法依赖工具快速注入了。

伪静态注入中转

    T00ls之前有位叫xiamig的童鞋,发布过关于伪静态的文章,让人获益匪浅!

连接如下:

    http://www.t00ls.net/thread-7934-1-1.html   //伪静态注入
    http://www.t00ls.net/thread-9058-1-1.html   //伪静态注入实战篇

    通常情况下,动态脚本的网站的url类似下面这样

    http://www.xxoo.net/aa.php?id=123

    做了伪静态之后类似这样

    http://www.xxoo.net/aa.php/id/123.html

    以斜杠“/”代替了“=”并在最后加上.html,这样一来,就无法直接用工具来注入了,至于手动的方法,xiamig的文章有详细的讲解。

    现在我们就来讨论下如何用工具来注入,大家都知道cookies注入中转吧,其实原理都差不多,我们自己写一个动态网页脚本,构造自己的url规则,通过这个页面中转来访问目标页!即我们把伪静态url规则变回原来的?id=123这样的形式,形成一个普通的可方便注入的url。

    好吧,试验下!

    我在本地用thikphp搭建了一个简单的注入点,因为thinkphp自带了简单的伪静态,比较方便演示。

    这个注入点的sql如下:

    接收get过来的id

SELECT `account` AS `username`,`password` FROM `think_user` WHERE id=1

    页面url如下:

    http://localhost/inj/index.php/index/index/id/1.html

    变幻1的值来注入!

    我比较熟悉php,就用php来写一个注入中转页面吧

inj.php 中转页面源码:

set_time_limit(0);
$id=$_GET["id"];
$id=str_replace(" ","%20",$id);
$id=str_replace("=","%3D",$id);
//$url = "http://localhost/test/id-$id.html";
$url = "http://localhost/inj/index.php/index/index/id/$id.html";
//echo $url;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "$url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);

$output = curl_exec($ch);
curl_close($ch);
print_r($output);

    将这个文件保存成inj.php即可,这个文件url如下:

http://localhost/inj/inj.php

    把产生注入的$id根据目标页的伪静态规则放到指定的位置就可以了。如上。

    原理就是通过curl来取得目标页的内容(与直接访问目标页效果一样),只需要修改$url的内容就可以适应各种伪静态规则了。

    脚本比较简陋,有需要的童鞋,可根据情况加入post方式,代理,referer等功能。

    我们现在访问 http://localhost/inj/inj.php?id=1,

    即相当于访问 http://localhost/inj/index.php/index/index/id/1.html ,

    呵呵,现在我们就可以把 http://localhost/inj/inj.php?id=1 这个连接放到工具里面注入了。

    如图,havij,SQLIHelper可以注入,

havij,SQLIHelper可以注入

havij,SQLIHelper可以注入

    文章写的不好,望各位童鞋勿怪,抛砖引玉了,大家有啥好想法,不妨一起交流交流!

留言评论(旧系统):

KingX @ 2012-09-13 15:31:03

核总,求T00ls邀请码~

本站回复:

44c6d5e999ee5de562e5bc05938070e1 ╮(╯_╰)╭