文章首发于:奇安信攻防社区
https://forum.butian.net/share/811
一:前言?
在某次渗透过程中,客户的内网里遇见了一个日志设备,于是便有了后续的RCE漏洞挖掘(在很久之前挖出来的,文章只是提供一个小思路,目前已经通知厂商进行了完全修复)
二:信息收集?
对于设备我们首先要找到它的使用手册,注意几个功能关键点 (网络连通性,日志查看,系统备份,默认口令)
非常幸运,发现目标是存在系统源码下载的,我们下载后本地审计
找到了Web目录,有了源码我们就可以进行PHP代码审计来挖掘更多漏洞,首先先看一下有没有默认密码
这里发现了一个官方教学帖子里有默认的账号密码,我们去登录试试,毕竟后台漏洞挖掘更加轻松
三:漏洞挖掘?
没有更改默认密码,成功登陆到了后台,我们继续从功能点入手挖掘后台漏洞, 看代码后发现 command-html.php 文件比较可疑,传入 cmd 参数到 cmdhandle.php
我们查看 cmdhandle.php 文件
这里没有什么过滤就执行了命令,可能是设备的调试页面,我们直接访问测试
权限也挺高的,我们写入 Webshell文件, 成功拿下
结果过了一段时间再看的时候,连接Webshell
权限就这样没了,不甘心这样,于是继续代码审计尝试挖掘一个前台RCE出来
首先打开代码,先查看配置文件里有什么
这里没有什么关键信息,只能发现一些配置路径和默认的Mysql账号密码,我们再去查看登录认证的方式是什么
可以发现后台功能文件均使用 chksession来认证身份,那我们的目标就需要明确为不存在身份验证的文件
利用命令删除所有包含身份验证的文件
rm -rf $(grep -ril 'chksession()' ./)
删除后文件大幅度减少,就减小了代码审计的时间,通过关键字搜寻命令执行的地方,发现一处完全没有过滤的命令拼接漏洞,username参数为用户可控的参数,并直接拼接到了命令执行部分,导致RCE
传入POST请求
POST /account/sy_addmount.php
username=|id
成功再次拿下设备,同样的无验证命令拼接还有很多处,在后续也全部都提交给了厂商进行修复
四: 关于文库?
https://www.yuque.com/peiqiwiki
最后
下面就是文库的公众号啦,更新的文章都会在第一时间推送在交流群和公众号
想要加入交流群的师傅公众号点击交流群加我拉你啦~
别忘了Github下载完给个小星星⭐
同时知识星球也开放运营啦,希望师傅们支持支持啦?
知识星球里会持续发布一些技术文章~
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
PeiQi文库 拥有对此文章的修改和解释权如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
原文始发于微信公众号(PeiQi文库):某日志设备漏洞挖掘-从后台RCE到前台RCE