跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

类型

通过网页插入恶意脚本,如前端的HTML和JavaScript。当用户浏览网页时,浏览器执行用户输入的JS代码实现控制用户浏览器

https://blog.csdn.net/m0_63436163/article/details/1、反射型XSS又称非持久性XSS

这种攻击往往具有一次性。

攻击者通过邮件等形式将包含XSS代码的链接发送给正常用户。当用户点击时,服务器接受该用户的请求并进行处理,然后把带有XSS的代码发送给用户。用户浏览器解析执行代码加发XSS漏洞。

2、存储型XSS又称持久型XSS

攻击脚本存储在目标服务器的数据库中,具有更强的隐蔽性.

攻击者在论坛、博客、留言板中,发帖的过程中嵌入XSS攻击代码,帖子被目标服务器存储在数据库中当用户进行正常访问时,触发XSS代码。

3、DOM型XSS

全称Document Object Modei;使用DOM动态访问更新文档的内容、结构及样式。

服务器响应不会处理攻击者脚本,而是用户浏览器处理这个响应时,DOM对象就会处理XSS代码,触发XSS漏洞。

4、Xss防御

请记住两条原则:过滤输入和转义输出

具体执行的方式有以下几点:
第一、在输入方面对所有用户提交内容进行可靠的输入验证,提交内容包括URL、查询关键字、http头、post数据等

第二、在输出方面,在用户输内容中使用标签。标签内的内容不会解释,直接显示。

第三、严格执行字符输入字数控制。

第四、在脚本执行区中,应绝无用户输入

第五、Cookie防盗

    利用XSS攻击,攻击者可以很方便地窃取到合法用户的Cookie信息。因此,对于Cookie,我们可以采取以下的措施。首先,我们要尽可能地避免在Cookie中泄露隐私,如用户名、密码等;其次,我们可以将Cookie信息利用MD5等Hash算法进行多次散列后存放;再次,为了防止重放攻击,我们也可以将Cookie和IP进行绑定,这样也可以阻止攻击者冒充正常用户的身份。

5、Xss危害

获取用户的cookie,利用cookie盗取用户对该网站的操作权限;

获取用户联系人列表,利用被攻击者的身份向特定的目标群发送垃圾信息

盗取cookie

钓鱼攻击

传播软件

6、绕过方法

常见的防xss代码

$x=preg_repalce(“/script/”,’’’’, $x)

$x=preg_repalce(“/script/i”,’’’’, $x)

$x=preg_repalce(“/alert/i”,’’’’, $x)

第一个意思就是当检测到script这个字段时就会替换为空值。但是他没有限制大小写,我们可以用大小写进行替换绕过比如:alert(/xss/) 即可绕过

第二个在代码后加了个i意思是不区分大小写。这个我们可以采用其他标签比如(这里有onerror显示不出来) 或者采用body标签 (这里的onload显示不出来)即可绕过。

第三种是将alert标签替换,并且不区分大小写,这样就没办法使用alert了,我们可以用它的代码执行对它进行编码,方法:先选中alert(/xss/),然后使用hackbar中的string,fromcharcode也就是第一个选项对它进行编码,然后调用eval+(字符串),如.来进行绕过。

编码:我们可以对我们的语句进行hex编码来绕过xss规则,比如alert(/xss/) 可 以转化为:%3C%73%63%72%69%70%74%3E%6https://blog.csdn.net/m0_63436163/article/details/1%6C%65%72%74%28%2F%78%73%73%2F%29%3C%2F%73%63%72%69%70%74%3E 都有在线工具提供。

“”的转义 \u003c,\u003e就是一个对括号 可以构造:\u003cscript\u003ealert(/xss/)\u003c/scriptu003e.

7、测试方法:

https://blog.csdn.net/m0_63436163/article/details/1.在数据输入界面,输入:alert(/https://blog.csdn.net/m0_63436163/article/details/123/),保存成功后如果弹出对话框,表明此处存在一个XSS 漏洞。

2.把url请求中参数改为alert(/https://blog.csdn.net/m0_63436163/article/details/123/),如果页面弹出对话框,表明此处存在一个XSS 漏洞。