2019年09月23日 09:41 阅读量:4698
请求方式 GET
http://www.qqqao.com/canyou/default.html?url=http://www.qqqao.com/index2.html
问题参数 url
参考(验证)
http://www.qqqao.com/canyou/default.html?url=javascript:alert('<1>')
详细描述
基于DOM的跨站脚本漏洞属于跨站漏洞的一种分类。造成跨站的原因是客户端脚本(一般是javascript)处理用户输入时,没有做充分的过滤,并且将用户的输入赋给DOM树中某些对象的属性,比如通过document.write,window.location等。这些操作支持执行javascript,造成用户的输入被执行。
比如:
<HTML>
<TITLE>Welcome!</TITLE>
Hello,
<SCRIPT>
var pos=document.URL.indexOf("name=")+5;
document.write(document.URL.substring(pos,document.URL.length));
</SCRIPT>
<BR>
Welcome!!!
</HTML>
这个HTML页面显示欢迎信息。
当请求http://[SERVER]]/welcome.html?name=<script>alert(document.cookie)</script>
,服务器的响应内容并没有包含<script>alert(document.cookie)</script>
,但是通过document.write修改DOM树,导致用户的输入被执行,造成跨站脚本漏洞。
解决办法
请分析并加强客户端 (JavaScript) 代码。 处理攻击者所能影响的输入源,通常是url,例如:document.URL,document.URLUnencoded,document.location(及其许多属性),document.referrer ,window.location(及其许多属性)
检查页面中是否使用了以下代码作为输出:
2019-09-20 信息无障碍工具条V1.6版本升级说明
修复 URL(/canyou/default.html?url=)存在基于DOM的跨站脚本漏洞
修复 URL(/canyou/default.html?url=)存在跳转漏洞
请大家下载最新版本,替换掉canyou文件夹即可解决此问题
https://gitee.com/tywAmblyopia/ToolsUI
https://github.com/gemgin/AmblyopiaTool