参考资料:
http://www.freebuf.com/column/165934.html
http://www.freebuf.com/column/166525.html
看到代码审计的文章,最好还是自己做一遍,不要眼高手低。
后台存储型XSS漏洞:
漏洞位置:D:\phpStudy\WWW\zzcms\user\zxsave.php
content参数跟着追踪一下content。
getimgincontent方法使用了stripfxg方法进行过滤后再调用。
function.php可以看到该方法进行数据的实体化,但是并没有进行过滤和转义。
漏洞由此产生。
漏洞利用:
进入后台,点击发布资讯信息。尝试在content参数构造payload
forward<img src=a onerror=alert(1)>
点击forward,放行。
ok可以看到payload已经存储进数据库中。
点击预览,即可触发XSS。
successSQL注入漏洞
漏洞位置:D:\phpStudy\WWW\zzcms\user\del.php
del.phptablename参数可控,id不可控,在/inc/function.php文件进行了过滤。
最主要的恰好不需要单引号等字符的闭合,这样过滤的机制也是不生效的。
漏洞利用:
进入后台点击管理进行删除的操作,进行抓包拦截
del.php修改tablename参数进行SQL注入测试。
ok可以看到SQL语句在数据库汇总得到执行。
此时有两种方案,来获取数据库的一些敏感信息。
构造payload进行注入或者使用SQLMAP进行测试。
为了更好测试该漏洞获取数据库的信息,将delete语句进行了屏蔽。
del.php再次进行拦截数据包,标记后并保存为post.txt文件。
post.txtsuccesssqlmap.py -r "post.txt" -v 3
任意文件删除漏洞:
漏洞位置:D:\phpStudy\WWW\zzcms\user\zssave.php
zssave.php图片进行上传更新的时候,使用unlink函数进行删除后替换。对上传的图片地址可以进行控制,通过删除的正常功能达到任意文件删除。
漏洞利用:
在该目录在创建test.php文件,内容为123456
test.php在发布招商处进行上传正常的图片。
抓取数据包进行修改img参数。
img ok预览现在上传的这张图片。
test.txt ok点击删除
ok ok即可达到任意文件删除。
getshell也就简单啦,只需要删除/install/install.lock文件,进行重装即可。
网友评论