0x00 背景
这套系统审了很久了,前台审不出个所以然来。前台的限制做的很死。
入库的数据都是经过mysql_real_escape_string,htmlspecialchars的处理。
二次注入没找到,逻辑漏洞也没找到。抛开实际利用来说,简单讲讲两个任意文件删除漏洞,在拿到后台之后的getshell方法。
0x01 phpshe程序简介
phpshe是一个开源商城程序,程序在前台入库的地方都用了pe_dbhold函数(mysql_real_escape_string,htmlspecialchars过滤),虽然用的是全局变量注册,但是进行了变量的划分。
加上了各自不同请求的前缀。使得变量不能夸请求覆盖,同时底层有入库的参数值都是用单引号进行包含。
所以注入是不可能的了,加上htmlsepcialchars的过滤,连xss都没发现一个。
上传方面用的是白名单,限死了后缀,加上文件名重命名,使用时间加上大范围随机数md5的方法。
前台就介绍到这里,讲讲后台的一些情况。
后台大部分都进行了csrf防御,只有少部分没有(一些查询操作,没有实际作用),几乎所有后台页面都是存在注入,但由于程序是没有开启报错的。
所以是没有办法通过报错的方式拿到绝对路径,后台的注入其实等于没用,也没有越权的情况(通过鉴权文件,加载后台模块)。
看了一下乌云镜像站上关于该程序的历史漏洞也是少的可怜,程序的安全性确实做得很好。
那么下面就讲讲两个后台任意文件删除,与及拿shell。
0x02 后台两处任意文件删除至getshell
1,文件module\admin\db.php( 数据库操作相关)
没有任何过滤,直接拼接路径删除。但是有csrf防御。
2,文件 module\admin\moban.php(模板操作相关)
也是等同于没有任何过滤,有csrf token防御。
再看看安装文件的逻辑。
将配置参数写入到配置文件中,直接写入,没有任何过滤,可以通过重装的方式直接getshell。(动作太大了)
0x03 总结
看了很久这个程序,没有审出什么来,写个总结吧!