[size=large][b]XSS全称Cross Site Script,跨站脚本攻击[/b][/size]
它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
[size=large][b]主要途径[/b][/size]
1、对普通的用户输入,页面原样内容输出,(用户的输入包括cookie输入)
如链接:http://www.ingchat.com/projdemo/xss/input.html?name=<script>alert(3);</script>
页面上如果拿到name参数,直接 div.innerHTML = name; 则alert(3)执行,若将其修改为获取用户cookie 或者是转账等操作,则后果不堪设想
2、允许用户输入HTML标签
<img src="javascript:alert('xss');"></img>
3、使用16进制来写(可以在傲游中运行)
<img STYLE=”background-image: /75/72/6c/28/6a/61/76/61/73/63/72/69/70/74/3a/61/6c/65/72/74/28/27/58/53/53/27/29/29″>
以上写法等于<img STYLE=”background-image: url(javascript:alert(‘XSS’))”>
[size=large][b]解决办法:过滤输入和转义输出[/b][/size]
1、对提交的内容进行验证,url、查询关键字、http头、post数据
2、输出方面,对用户输入进行严格控制
3、在脚本执行时,应绝无用户输入(应使用server端校验过的安全内容)
[size=large][b]一些工具[/b][/size]
1.插入HTML的文本
需要将&<>'"等符号更新为&,<...等否则有可能被嵌入<script>脚本并执行。
2.插入HTML标签属性(如src等)
3.插入HTML内容(innerHTML)
参考:
[url=http://www.frostsky.com/2011/10/xss-hack/]XSS漏洞攻击原理与解决办法[/url]
[url=http://hi.baidu.com/vmfaeoilsnbdloq/item/19111afe95eb4f6b3d1485b6]XSS跨站脚本攻击原理[/url]
[url=https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#XSS_Locator]各种xss方式[/url]
处理方法参考:
[url=http://www.hackdig.com/?03/hack-2299.htm]跨站脚本攻击(XSS)的原理、防范和处理方法[/url]
它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
[size=large][b]主要途径[/b][/size]
1、对普通的用户输入,页面原样内容输出,(用户的输入包括cookie输入)
如链接:http://www.ingchat.com/projdemo/xss/input.html?name=<script>alert(3);</script>
页面上如果拿到name参数,直接 div.innerHTML = name; 则alert(3)执行,若将其修改为获取用户cookie 或者是转账等操作,则后果不堪设想
2、允许用户输入HTML标签
<img src="javascript:alert('xss');"></img>
3、使用16进制来写(可以在傲游中运行)
<img STYLE=”background-image: /75/72/6c/28/6a/61/76/61/73/63/72/69/70/74/3a/61/6c/65/72/74/28/27/58/53/53/27/29/29″>
以上写法等于<img STYLE=”background-image: url(javascript:alert(‘XSS’))”>
[size=large][b]解决办法:过滤输入和转义输出[/b][/size]
1、对提交的内容进行验证,url、查询关键字、http头、post数据
2、输出方面,对用户输入进行严格控制
3、在脚本执行时,应绝无用户输入(应使用server端校验过的安全内容)
[size=large][b]一些工具[/b][/size]
1.插入HTML的文本
需要将&<>'"等符号更新为&,<...等否则有可能被嵌入<script>脚本并执行。
function encodeParam(param) {
return param.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/'/g, """).replace(/"/g, "'");
}
2.插入HTML标签属性(如src等)
function encodeAttr(attr) {
return attr.replace(/[&'"<>\/\\\-\x00-\x09\x0b-\x0c\x1f\x80-\xff]/g,
function(r) {
return "&#" + r.charCodeAt(0) + ";"
}).replace(/\r\n/g, "<BR>").replace(/\n/g, "<BR>").replace(/\r/g, "<BR>").replace(/ /g, " ");
}
3.插入HTML内容(innerHTML)
function encodeHtml(html){
return html.replace(/[&'"<>\/\\\-\x00-\x1f\x80-\xff]/g, function(r) {
return "&#" + r.charCodeAt(0) + ";"
});
}
参考:
[url=http://www.frostsky.com/2011/10/xss-hack/]XSS漏洞攻击原理与解决办法[/url]
[url=http://hi.baidu.com/vmfaeoilsnbdloq/item/19111afe95eb4f6b3d1485b6]XSS跨站脚本攻击原理[/url]
[url=https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#XSS_Locator]各种xss方式[/url]
处理方法参考:
[url=http://www.hackdig.com/?03/hack-2299.htm]跨站脚本攻击(XSS)的原理、防范和处理方法[/url]