技术分享
HDwiki二次注入案例分享
2018-07-31 00:54

0×00概述

近期看到网上公布较多hdwiki最新版的安全漏洞,这里以我自己发现的二次注入漏洞进行分享。

0×01 白盒审计

源码信息:HDWiki-v6.0UTF8-20170209

问题文件: \hdwiki\control\comment.php

漏洞类型:SQL注入

首先进行安装之后主界面如下;

1.jpg 

直接看存在问题的文件,路径为\hdwiki\control\comment.php

以及具体页面为词条评论的地方;

3.jpg 

首先看下写评价部分代码;

4.jpg

这里的$comment参数就是我们提的评论,可以看到使用过滤函数进行安全处理,还有在/hdwiki/model/hdwiki.class.php文件里发现使用全局转义处理;

5.jpg

所以这里不存在问题,我们看下有没有会再次利用这个评论$comment参数,

还是在comment.php这个文件里,下面看到doreport()这个函数;

6.jpg

这个是用来对评论进行举报的,可以看到这段代码会从数据库取出对应评论之后和举报原因一并重新执行数据库操作;具体代码部分为;

7.jpg

  这里的$comment[‘comment’]为评论部分,$report为举报原因合并进入send_ownmessage(),也就是二次注入了。

0×02 漏洞利用

 首先看下send_ownmessage()函数为;

8.jpg

 

具体数据库操作语句为;

 "INSERT INTO".DB_TABLEPRE."pms(`from`,`fromid`,`drafts`,`toid`,`to`,`subject`,`message`,`time`,`new`) VALUES  ('".$sendarray['user']['username']."','".$sendarray['user']['uid']."','".$isdraft."','".$userinfo[$i]['uid']."','".$userinfo[$i]['username']."','".$sendarray['subject']."','".$sendarray['content']."','".$this->base->time."',1)"

可以看到是INSERT语句,还有VALUES结尾有1这个常量,所以具体payload为;

Payload=4444444444’,(1=sleep(6)),1)#

首先对任意词条进行评论,输入以上payload;

9.jpg

  之后点击下面的举报,理由任意填写;

11.jpg

  之后提交,6秒之后将会提示举报成功,burp截图为;

 12.jpg

  显示为7秒,其中1秒是网站加载需要的时间,成功二次注入了。



文章仅用于普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征等,若读者因此做出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明。

 

上一篇:挖洞经验 | 连接多个漏洞获取管理员访问权限
下一篇:RSA之拒绝套路(1)
版权所有 合天智汇信息技术有限公司 2013-2021 湘ICP备14001562号-6
Copyright © 2013-2020 Heetian Corporation, All rights reserved
4006-123-731