因为今天看见别人发了一个,然后我也想起来前段时间看的一个账号密码泄露的漏洞。以下均来自互联网。
(注:本文章为技术分享,禁止任何非授权攻击行为)
poc
/defaultroot/evoInterfaceServlet?paramType=user
会获得Md5加密后的密码
代码
servlet里doGet请求,刚开始会判断一下ip(x-forwarded-for头中的ip)是不是在白名单里,和配置文件中白名单Ip做对比,如果不是直接拒绝访问
然后如果是在白名单里,通过前端传入的不同的参数进行不同分支的处理,并且把处理结果返回前端,当参数为user时会把所有user相关信息装载好放在userList里然后response以Json形式返回给前端
这种一般就是编写逻辑的时候忘记把该接口权限做限制,任何人都可以访问。也有的开发是为了开发测试便利。
我见过这么几种账号密码泄露,
一种是直接写账号密码:比如超级账号密码(写死)在代码里,或者直接写前端注释里,一部分是获得源码以后才可以访问到)
再就是因为某个逻辑功能需求导致,没有限定目录访问权限。
所以我们审计的时候除了扫描默认账号密码(当硬编码进行扫描处理),也可以搜一些usrlist,getalluser这种关键词或者搜功能去审计查看。
biubiu 水了一篇
原文始发于微信公众号(天才少女Alpha):【nday】某个oa账号接口密码泄露