漏洞分析
uc_client\model\base.php 37行
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LSHXEZvc-1647761074924)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320145305217.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/TU6YH36X10.png)
跟进
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SJRqxLeD-1647761074925)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320145330072.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/076N881dd2.png)
继续跟进,可以看到此处进行了mysql查询,此处的UC_APPID查找其来源
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ebKfRVog-1647761074925)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320145355014.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/907SIQBeXI.png)
ctrl+左键点进去看一下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EaaZmEMt-1647761074925)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320145919423.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/10d3KeO7M4.png)
发现是在配置文件里面写着的
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qra77EfQ-1647761074926)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320150041488.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/5AC0Y5NYb7.png)
全局搜索一下UC_APPID
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4HZce3K6-1647761074926)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320150113528.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/55dLdBb717.png)
发现是这样写进去的,首先在配置文件里面查找原先的define(‘UC_APPID’, …);然后用"define(‘UC_APPID’, ‘".$settingnew[‘uc’][‘appid’]."’)"进行替换,UC_APPID的值为$settingnew[‘uc’][‘appid’]
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8OYF0JsY-1647761074927)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320150150954.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/M10a45b5E6.png)
向上找$settingnew[‘uc’][‘appid’]的来源,发现参数可控,且只是对内容进行了简单的addslashes
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XJjpNhXn-1647761074927)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320150302939.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/HcGTO1Jb06.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SGOQby3w-1647761074927)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320150334738.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/6237fW53Z5.png)
那么我们只需要将payload赋值给$settingnew[‘uc’][‘appid’],其会被addslashes后(2280行)存入配置文件(2295行),然后当mysql查询时,从配置文件查询出来的还是原来的字符串,原因如下
转义一次的字符串被写入文件中,在PHP解析时就是没有转义过的原始内容 造成了二次注入的产生
比如
<?php
define('UC_APPID', 'sadsadsadasd\'');
printf(UC_APPID);
结果如下

漏洞复现
进入后台
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ocszt5Jj-1647761074928)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320150942236.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/53XeI6U2Q2.png)
抓包,此处写入payload
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wQKVk1cz-1647761074928)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320151040757.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/014581UL3f.png)
发包
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jmwCsOkz-1647761074928)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320152307148.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/279dZLF2c4.png)
发现成功写入
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sOEeS1wA-1647761074928)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320151138183.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/2L806c8WXF.png)
附
我们可以看到此时配置文件中为这样![(img-hJW3XIny-1647761074929)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320151247139.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/12F6dc6J45.png)
当mysql查询时,要获取配置文件中UC_APPID的值,而该值只被转义过一次,所以在PHP解析时就是没有转义过的原始内容 造成了二次注入的产生
如下是漏洞触发点,简单调试一下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x6fNQPi1-1647761074929)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320151530527.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/019fa4e51a.png)
再次发包,发现UC_APPID的值确实为最原始的值,没有被转移,这就造成了二次注入
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aPsfBN89-1647761074929)(C:\Users\91136\AppData\Roaming\Typora\typora-user-images\image-20220320151608290.png)]](https://file.cfanz.cn/uploads/png/2022/03/20/7/727Xa3S5Wa.png)
修复建议
对$settingnew[‘uc’][‘appid’]在进行一次addslashes
参考链接
https://www.hacking8.com/bug-web/Discuz/Discuz!-X-系列全版本-后台Sql注入漏洞.html










