对某IP广播系统的一次代码审计
0x00 审计前的准备
以下相关漏洞已全部提交cnvd
熟悉目录整体架构
php目录为 代码的功能实现
主要审计php目录
0x01 文件上传getshell
uplaod/mt_parser.php
漏洞关键位置代码
无任何过滤直接构造poc上传即可
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
</head>
<body>
<form action="http://127.0.0.1/upload/my_parser.php" enctype="multipart/form-data" method="post">
<input class="input_file" type="file" name="upload"/>
<input class="button" type="submit" name="submit" value="upload"/>
</form>
</body>
</html>
漏洞证明截图
0x02 查看文件
开始审计php目录下的文件
发现均包含了conversion.php
进行查看 具体实现的功能
共写了八个方法,一个个看一下
1、function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
大体实现了
第一个参数传array
第二个参数传function
分别对array
的value
进行function
操作。
如果apply_to_keys_also
为true
还可以对传入的array
进行改变key
值
2、function JSON($array, $want_url_encode = true)
大体实现了
对传入的数组进行json_encode
然后urldecode
操作(这里可能实现了中文字符的传入)
3、function UdpSendJson($array, $msgType)
大体实现了
一个传送JSON数据的功能
4、function UdpSend($msg)
大体实现了
对8888
端口下的AppWebService
的命令操作 具体干什么可能要看硬件设备了。
5、function UdpSendAndRecvJson($array, $msgType)
大体实现了
接收和发送JSON数据
6、function UdpSendAndRecv($msg)
大体实现了
发送和接收数据,对本地的8888
端口发送一个POST
请求 这里和function UdpSend()
实现了一样的操作,只不过多加了一个Linux下的操作
7、function phplog($data)
大体实现了
写日志的功能
8、function get_real_ip()
大体实现了
通过Client_ip
头获取了ip
接下来看php目录下文件实现的具体功能
0x03 任意文件上传
php/addmediadata.php 漏洞关键位置代码
满足$subpath
、$fullpath
可以自定义目录,然后进行了一系列的检查如文件大小等
最后进入if条件中move_upload_file
函数进行文件上传
构造poc
访问./upload/1/5.php成功访问
addmediadatapath.php存在相同问题
收获两枚通杀漏洞
php/addscenedata.php
漏洞关键位置代码
不多说了 自己看
构造poc
访问./images/scene/5.php
0x04 任意文件写入
$postData = $_POST['jsondata'];
需要满足这个参数
看一下传参方式
然后满足$caller
,$callee
、$imagename
、$imagecontent
这三个参数不为空
满足$imagename
用_分割后等于三个
$callee
参与了目录拼接 这里跨目录上传 (需要知道根目录才能解析成功)
只传入一串base64加密的内容
进入else条件
构造POC
成功上传
0x05 任意文件读取
php/exportrecord.php
漏洞关键位置代码
获取了参数downname
需要下载的文件进行了urldecode
不用管 左思右想 想了半天也也不知道为什么要在37行加个basename
直接在41
行 执行了fread
操作
类似操作还有 exprottts.php
0x06 总结
此套代码几乎无过滤,这也是硬件设备的一个通病,很多厂商都以为不会"黑客"拿到源码。
还有很多漏洞 都是无过滤的 此处不一一写出来了
- 本文作者: 花北城
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/1537
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!