XSS攻击原理解析

[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>脚本并执行。

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]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值