一、漏洞简介:
程序直接将POST接收到的留言信息保存到数据库中,没有进行任何过滤,导致后台管理员查看留言信息的时候,会触发插入的XSS payload,造成存储型XSS漏洞。
二、漏洞分析过程:
/contact.php:
这里通过POST获取表单内容,然后表单会提交到submit.php进行处理:
定位到:/submit.php:
这里接收参数的过程,基本没有任何的过滤,主要关注$name:
然后直接使用insert将数据插入到数据库中存储,前面接收到的$name值直接拼接到SQL语句进行执行:
SQL语句:
$query = "INSERT INTO interaction (type,xs,cid,name,mail,url,touxiang,shebei,ip,content,tz,date)
VALUES ('$type','$xs','$cid','$name','$mail','$url','$touxiang','$shebei','$ip','$content','$tz',now())";
@mysql_query($query) or die('新增错误:'.mysql_error());
查看后台输出过程:
/admin/index.php:
这里会对刚才的插入的数据:name字段进行展示,所以最终造成xss:
三、漏洞利用:
前台的联系功能,昵称处插入xss payload:
><script>alert(/xss/)</script>
提交后会交给submit.php处理,然后再展示出来
当管理员访问后台的时候,直接就会触发XSS payload:
成功触发xss:
最后查看一下网页源码是怎样的:
代码也是十分的简单,希望每一篇都用心去写的文章能让大家喜欢吧....
点个赞和在看吧,欢迎转发!
点个赞和在看吧,欢迎转发!
点个赞和在看吧,欢迎转发!
本文始发于微信公众号(哈拉少安全小队):[代码审计] xhcms 存储型XSS漏洞分析
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论