跟着Y4师傅学代码审计-emlog_6.0.0
最后更新时间:
写在前面
这是代码审计练习的第七篇。上一篇感觉难度有些大,虽说没有框架但是自己设计的WAF防不胜防。这一篇练习emlog 6.0.0,希望能来点惊喜
漏洞分析
sql注入1
位于admin/comment.php
下,对ip并没有进行过滤
并且值得注意的是,这里离checkToken会去校验一下用户认证,token可以通过用户传参进来验证
本身token的生成其实没有问题,想要爆破很困难
但是其token值却被放到了表单这些地方,势必存在安全隐患,例如XSS可以偷
继续看注入部分,跟进可以看到ip直接拼接
文件上传
位于后台插件功能处
定位路由至/admin/plugin.php?action=upload_zip
如果我上传一个恶意的zip包,可以看到出现回显
定位至view视图
对应之前的分支为-1
跟进emUnZip()
看看为啥是-1
首先可以看到回显获取一个dir作为目录(第一个条目的名字)并拼接/
之后会拼接plugin_name,后者是截取的dir全部名字,最后带上php。
最后会将抽离的文件移动到../content/plugins/
处
因此我们需要一个同名文件夹用来承载恶意文件,最后压缩上传即可
访问即可验证
任意文件删除1
还是在刚才的admin/data.php
处,没啥好说的,提交就删
任意文件删除2
位于后台插件删除处,对应路由/admin/plugin.php?action=del&plugin=tips/tips.php
可以看到如果能成功删除文件的话就会回显302./plugin.php?activate_del=1
关键在与能否绕过正则匹配
经过测试只要开头是/
则可以绕过正则替换
1 |
|
这样也就是会拼接得到../content/plugins//../../robots.txt
linux下则可以顺利删除掉根目录下的robots.txt文件
无惊喜,洞蛮多的,不过都被挖干净了