记一次代码审计与获得CVE漏洞实践
本文由
创作,已纳入「FreeBuf原创奖励计划」,未授权禁止转载
计算机实验室管理系统代码审计(Computer Laboratory Management System)
环境搭建
源码在本文文末给出。
该系统的介绍里有非常详细的搭建过程,直接用 phpstudy 照着搭,
搭建后好后用默认账号密码登录后台即可,可以简单看看功能点。
工具使用
白盒审计肯定不是光看功能点的,用 seay 扫描:
昆仑镜扫描结果:
看到漏洞类型还是挺多的,其中 sql 注入存在最多。
漏洞分析
文件包含
看见上方扫描结果显示在文件/admin/index.php 中存在 include 函数并且有可控参数。
简单看看逻辑,会先判断文件是否存在或者是否为目录,如果都不满足就会包含404.html
文件,满足条件的话就会进行相应的文件包含。
传入/admin/index.php?page=../config
进行测试,包含/config.php
文件
看到已经成功包含,只是该 php 文件中没有输出什么的。
但是问题又来了如果只是文件包含我们也没法利用,因为原 php 文件中也不存在什么危险函数。于是我又去找了是否存在文件上传的点,发现是白名单,尝试了绕过无果。那么寻找有没有什么文件修改或写入内容的地方。
最后在文件/classes/SystemSstings.php
中确实存在文件修改,不过依然有限制
就是把 post 传入的 content 数组内容写入 html 文件,但是上面不是只能包含 php 文件吗。注意到当文件不存在时会包含 404.html 文件,那么是否可以通过修改 404.html 文件内容配合文件包含实现代码执行。
抓包传参测试一下
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录