wecenter问题页面错误500错误,怎么解决

有几个文件夹的写入权限要打开

0

該问题目前已经被锁定, 无法添加新回复

漏洞标题:WeCenter 算法问题导致暴力注叺(新手的详细分析)

漏洞类型:SQL注射漏洞

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

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

一两周前拿到了seay牛的书,慢慢接触代码审计真的好累啊。
关注各个大牛后,在索马里的海贼大牛这里找到了突破口

这里就是把字符的asicc相加减,明显可逆。加密时把substr从-2开始循环使用密钥而密钥是key+useragaent的MD5只要密文长度大于32,我们就可以解出密钥于是,如果我们能找到一处已知明文的密文我们就能知道密钥从而得到自己想要的密文。先从布局整体上看一下加解密的利用吧通过seay牛工具找了一下调用加解密函数的位置,大概分为两类:方式1.直接调用配置文件中的G_COOKIE_HASH_KEY作为密钥加密方式2.把G_COOKIE_HASH_KEY与useragaent连接后MD5后作为密钥加密。发现用到decode_hash的地方都少得可怜于是我们先看一下如果能控制密文就会导致哪些后果。

这里仅有第一处是方式1跟进后发现

intval和quote函数过滤掉,方式1的利用就没机会了方式2一共两处,一处是验证管理员权限我们很难控制decode的参数,看到另一处

还是被过滤了难道我们这个就鈈能利用了吗?细心的同学可能注意到我们解密出来有3个参数uiduser_name,password,这里user_name和password必须为正确的值才能让判断为真然后这个可控的uid会写入session 就可能會导致一定的问题。于是定位取session变量的函数get_info

一共4处第3处是个判断,第4处调用函数经过了intval函数处理第一二处都在一个函数get_users_list里开心地看到get_users_list函数中是直接拼接处理的。

而salt是4位数的字母,就可以考虑暴力破解了用登录后cookie中的密文去对应生成的390625个不同salt的明文,当解出来的值全為字母或者数字的时候(因为密钥是MD5)就拿到密钥了其实上面说的地方还有一处任意用户登录,具体请看漏洞证明。

uid是23576加上用户名,密码cookie中的密文填入我写的渣渣php poc中

蛋疼地望着屏幕,等待了3分钟后(配置极差的小笔记本)

把encode.php中密钥修改后填入参数

用burp suit发包修改cookie为这個,保持useragent不变然后理论上应该就能注入,但是md竟然竟然返回

内心各种崩溃还以为神奇的运维把自己的号封了,回去看代码才发现

这個类中的构造函数把我请求中的uid intval后验证了(就是上面说get_info中的第三处),就造成任意用户登录我encode时uid填的1,而网站上uid=1的用户被禁用了,就返回了这个错误于是

顺带还登录了uid=2这个账户

改算法?做好过滤其实有一点做好防护这里就不行了,运气不错吧

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

:非常精彩的漏洞分析未来版本会更换加密方式,非常感谢对 WeCenter 的关注

      • 牛逼!就是思路写得有点乱;看了半天搭了个环境试验了终于搞明白。其实就是程序从cookie里获取得到用户信息,将信息里的uid带入了查询但cookie本身是加密过的,所以要注入查询时也得加密

我要回帖

更多关于 页面错误 的文章

 

随机推荐