免责声明:
本公众号致力于安全研究和红队攻防技术分享等内容,本文中所有涉及的内容均不针对任何厂商或个人,同时由于传播、利用本公众号所发布的技术或工具造成的任何直接或者间接的后果及损失,均由使用者本人承担。请遵守中华人民共和国相关法律法规,切勿利用本公众号发布的技术或工具从事违法犯罪活动。最后,文中提及的图文若无意间导致了侵权问题,请在公众号后台私信联系作者,进行删除操作。
0x01 历史漏洞
前端JS泄漏WEB端管理密码
将password中的md5值进行解密即可登陆WEB控制台
0x02黑盒审计
手上没有代码,那么进了后台之后,我们现在只关注三种类型的漏洞:
-
文件上传
-
命令执行
-
文件读取/文件下载
那么这次运气比较好,通过后台黑盒审计找到后台某接口存在任意文件读取
后台任意文件读取
直接可以跨目录读取文件
通过文件读取直接把download.php下载下来看一下
通过GET传参filename,然后拼接到pcapfilepathname后面,且没有经过任何过滤,因此造成任意文件读取
再看一下历史漏洞文件login.php,直接定位get_dkey_passwd(user),看到输出了user_json_string变量
再定位user_json_string,发现原来是读取了本地文件/usr/local/lighttpd/user.conf
因此如果后续版本修复了前端JS泄漏WEB端管理密码的问题,也可以通过本地文件获取WEB端管理密码
那么当拿到任意文件读取的时候,如何扩大利用呢?
比如可以读取.bash_history,在历史命令中可能存在某些信息,运气好的话甚至可以找到本地代码备份路径,然后通过文件读取直接下载
这里就读到了应用部署物理路径
0x03 白盒审计
通过黑盒审计的任意文件读取可以拿到具体的代码,那么我们就转入了白盒审计的过程,首先就先从后台存在的功能一个个读取相应代码查看是否存在漏洞
前台命令执行
运气还不错,终于在一个功能中找到了前台命令执行漏洞
首先就是没有引入鉴权文件,因此存在一个未授权的问题
然后是命令传入直接拼接,没有做过滤等操作,就产生了命令执行的问题
其中foreach($_REQUEST["blocks"] as $key => $info)就是遍历blocks数组,将每一个值拼接到cmd命令中,因此传参的时候就输入一个数组类型,本地先测试一下
直接命令截断然后执行即可,成功收获0day
匿名函数星球已经迁移到纷传平台,并设置88元永久VIP,限前200名加入者,加入小密圈后,你将收获小队自研内部工具,最前沿的小队成员红队经验总结,最新的安全学习资料和工具分享。
加入我们一起学习
本公众号是一群热爱网安事业的一线红队队员发起成立的,我们旨在分享最前沿的研究成果,拒绝复制黏贴,打造最硬核的公众号,加入我们的交流群一起学习后台私信“加群”,里面有众多红队大佬、审计狗、SRC爱好者。群内同时为了更大程度上分享硬核内容,成立了纷传小密圈,详情请关注下发二维码。(如果群二维码失效,请后台私信“小助手”添加)
关于Lambda小队
Lambda小队经过多年的一线红队磨炼,取得了众多辉煌的战绩,同时也积淀了丰富的实战经验,后续将为大家带来更多一线的实战经历和研究成果。
原文始发于微信公众号(Lambda小队):一次从某设备历史漏洞到挖掘0day的分析过程
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论