Hdwiki注射一枚可无视GPC进行注入

2014-02-22T00:00:00
ID SSV:94578
Type seebug
Reporter Root
Modified 2014-02-22T00:00:00

Description

简要描述:

现在感觉hdwiki 还是挺不错的了。 全局过滤GET POST

详细说明:

今天下载的 对GET POST都做了检测 还没突破掉。。。 在control/user.php

``` function dologin(){

    $_ENV['user']->passport_server('login','1');

    if(!isset($this->post['submit'])){

        $this->view->assign('checkcode',isset($this->setting['checkcode'])?$this->setting['checkcode']:0);
        $_ENV['user']->add_referer();//here

        $_ENV['user']->passport_server('login','2');
        $_ENV['user']->passport_client('login');

```

function add_referer(){ if($_SERVER['HTTP_REFERER']){ $this->db->query("UPDATE ".DB_TABLEPRE."session SET referer ='".$_SERVER['HTTP_REFERER']."' WHERE sid='".base::hgetcookie('sid')."'"); } }

全局过滤了GET POST 但是没有过滤SERVER 然后直接带入查询 而且MAGIC_QUOTES_gpc只会对GET POST COOKIE 传递过来的特殊字符转义。 所以无视magic_quotes_gpc。 只要没设置submit就能进去了。

漏洞证明:

<img src="https://images.seebug.org/upload/201402/2123002014f61c5df79bd93ae894ba46d29d1b24.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">

<img src="https://images.seebug.org/upload/201402/21230055f16ab13af67d5afd302c36de3b09b099.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">

<img src="https://images.seebug.org/upload/201402/21230146430693428f3bfebc9fe3f2bf89632d0f.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">

如果管理账户的第一位是a就会延时 然后修改sustr 即可继续注入。

<img src="https://images.seebug.org/upload/201402/21230440260706374d03fce9c541136e2a1502dc.jpg" alt="4.jpg" width="600" onerror="javascript:errimg(this);">

也可以直接update 用户名 可以直接出数据。