PageAdmin几个设计缺陷导致的安全漏洞

文章目录

漏洞作者: L.N.

1.login_key暴力预测
2.伪造任意会员或管理留言
3.删除任意留言

ps:.net开源了,相信各种特性漏洞会如雨后春笋般涌现,小菜先学点asp.net基础知识,等大牛们发特性漏洞的时候至少能够看懂。

详细说明:

1.login_key 暴力预测

/e/member/check_repeat.aspx

}

可以看到 我们控制了pa_member表where查询中的字段和值,因此我们可以定义字段为login_key,然后暴力枚举值。

我们再来看下login_key的值是什么?

login_key为我们登录登录后的1个小时到一天中的任意中的任意一秒,格式如20141121221010,

这样会有什么样的问题呢?就是我们login_key完全可以预测,可以用上边的那段代码暴力枚举近几天的登录会员和管理(会员管理一个表)的login_key,而1天86400秒,所以难度不大。

下面问题来了,看官一定会问,这个login_key是干啥的,你可以温习下wefgod牛的 WooYun: PageAdmin可绕过验证伪造任意用户身份登录(前台、后台) ,

从wefgod牛的文章当中我们知道pageadmin的权限验证用的是uid和Valicate的,而Valicate以前是用的最后登录时间的md5,现在改为了login_key的md5,也就是登录后未来一天的任意一秒的md5。

现在我们获取了login_key,但是问题又来了,我们不知道他对应的uid是多少,我们可以直接选择有权限验证的页面直接加入login_key,然后枚举uid,登录进去就行了。

问题又来了,我们怎么确定这个用户是不是管理员,我思来想去,也只有观察下管理员在网站的活动了,比如他发表的最后一篇帖子的时间,最后一天留言的时间,去推测login_key的取值空间。

2.伪造任意会员或管理留言

这个没什么说的,设计缺陷,当前登录名自定义,可以伪造任何人留言,不用登录。

3.删除任意留言

/e/space/spc_fbk_ascx.cs

这个都很明白,无权限控制的直接进数据库删除任意用户的任意留言

漏洞证明:

1.login_key暴力预测

a.暴力猜测login_key

22032345e75b805989611429b102b8f31be9d479[1]

 

220324513a0a0759c0f7c580c32887895971daa2[1]

 

2.伪造任意会员或管理留言

22032549cc131ba92abfa51d071c8130b90f3411[1]

 

3.删除任意留言

220326161e468727c80c51deded958604ed108f0[1]

原文链接:,转发请注明来源!

发表评论

要发表评论,您必须先登录