漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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
提示已经lock了
直接访问下面的链接(.NET的小“BUG”):
下面还提示要删除lock文件啊,忽视,随意输入点东西,执行:
执行了!
来一发(test2/admin不解释):
同时再执行一个
为什么要执行后面这个,请仔细想想表名的意思。另外site_id的信息可看下图:
登录:
好吧,看看官网吧:
找一下后台,登录
http://demo.pageadmin.net/e/master2007/login.aspx
获取到物理路径:
漏洞证明:
管理员密码任意重置
为了规避一些问题,这个操作我在本地搭建的环境进行。
先看正常步骤,setup=4的时候是管理密码设置
这里我设置为了123456,点击下一步的时候记得抓下数据包。
当我再次执行访问setup=4的时候,已经提示lock了:
根据我们前面获取到的VIEWSTATE,构造出下面的句子:
Login_Pass=admin&Login_Pass1=admin就是把密码设置为admin了,访问之后:
访问:
呵呵一笑。说初始化完毕了,去后台登录,看看我们admin/admin是否修改成功:
成功!如果觉得有疑问的,可以下载官方给出的包:
http://file.pageadmin.net/v3.rar
自行测试就知道了。
好了,说点实在的东西,那这个
到底是怎么来的呢?其实很简单,自己本地搭建一个,然后访问获取到相关参数值即可。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漏洞,一并向软件生产厂商通报处置。