跨站脚本(xss)

1. xss介绍

XSS,即跨站脚本攻击,是一种针对网站应用程序的安全漏洞攻击技术,某种意义上也是一种注入攻击,攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,影响用户的浏览。也可以使用xss攻击获得更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

2. xss分类

(1) 反射型XSS
(2) 存储型XSS
(3) DOM型XSS

3. xss原理

(1) 反射型XSS
反射型XSS又称非持久型XSS,这种攻击往往具有一次性
攻击者通过各种方式将包含XSS代码的恶意链接发送给目标用户,当目标用户访问该链接时,服务器接收该目标用户的请求并进行处理,然后服务器把带有XSS代码的数据发送给目标用户的浏览器,浏览器解析这段带有XSS代码的恶意脚本后,就会触发XSS漏洞。

(2) 存储型XSS
存储型XSS又称持久型XSS,攻击脚本将被永久地存放在目标服务器的数据库或文件中,具有很高的隐蔽性
这种攻击多见于论坛、博客和留言板,攻击者在发帖的过程中,将恶意脚本连同正常的信息一起注入帖子的内容中。随着帖子被服务器存储下来,恶意脚本也永久地被存放在服务器的后端存储器中,当其他用户浏览这个被注入了恶意脚本的帖子时,恶意脚本会在他们的浏览器中得到执行

(3) DOM型XSS
DOM全称Document Object Model,使用DOM可以使程序和脚本能够动态访问和更新文档的内容,结构及样式。DOM型XSS其实是一种特殊的反射型XSS,它是基于DOM文档对象模型的一种漏洞。
用户请求一个经过专门设计的URL,它由攻击者提交,而且包含XSS代码,服务器的响应不会以任何形式包含攻击者的脚本,当用户的浏览器处理这个响应时,DOM对象就会处理XSS代码,导致存在XSS漏洞。

4. dvwa实例操作(反射型)

4.1 low level
代码直接引用了参数,并没有任何的过滤与检查,存在明显的XSS漏洞

输入 ,点击提交,弹出提示框
跨站脚本(xss)_第1张图片
这时候,复制链接发送给别人,当别人访问了这个链接时,也会弹出提示框

http://192.168.232.133/dvwa/vulnerabilities/xss_r/?name=%3Cscript%3Ealert(%2Fxss%2F)%3C%2Fscript%3E#

跨站脚本(xss)_第2张图片

4.2 medium level
跨站脚本(xss)_第3张图片
对输入进行了过滤,基于黑名单的思想,使用str_replace函数将输入中的
跨站脚本(xss)_第4张图片

4.3 gigh level
基于黑名单过滤输入,使用preg_replace()函数用于正则表达式的搜索和替换,使得双写绕过、大小写混淆绕过不再起作用,但是我们可以通过img、body等标签的事件或者iframe等标签的src注入恶意的js代码
输入
跨站脚本(xss)_第5张图片

5. 修复建议

1.过滤输入的数据,过滤掉非法字符
2.对输出到页面的数据进行相应的编码转换,包括HTML实体编码,JavaScript编码等

你可能感兴趣的:(靶机)