nikiss

XSS漏洞

XSS(跨站脚本),全称:Cross-Site Scripting 简称为“CSS”

为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;
XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

 

1.反射型XSS

(get型)

攻击者构造一段含有恶意代码的链接发给用户

用户点击了那个网站并携带着其中的恶意代码发送给服务器

然后服务器解析了恶意代码并返回给客户浏览器

客户浏览器就执行了其中的恶意代码

(post型)

攻击者编写一个钓鱼网站并把该网站链接发给用户

用户点击那个网站,触发其中的恶意代码

pikachu靶场实例

输入123的请求链接和返回的数据

http://localhost/pikachu/vul/xss/xss_reflected_get.php?message=123&submit=submit

输入<svg onload=alert(1)>的请求链接和返回的数据

http://localhost/pikachu/vul/xss/xss_reflected_get.php?message=%3Csvg+onload%3Dalert%281%29%3E&submit=submit

 js代码被执行,弹出了警告

 

2.存储型XSS

黑客将恶意代码写入网站的网页,并被存入了数据库

其他用户只要访问这个网页,就会执行了藏在其中的恶意代码

pikachu靶场实例

 将含有恶意代码的信息提交

 每次访问这个网页都会弹出执行其中的js代码

 

3.DOM型XSS

关于DOM的文档 https://www.w3school.com.cn/htmldom/index.asp

跟反射型XSS类似,但解析恶意代码的位置不同

反射型XSS的恶意代码是由服务器解析,就是需要和服务器进行交互的

DOM型XSS的恶意代码是由用户浏览器解析,并不和服务器交互,利用DOM结构的漏洞,改变了DOM树的结构,执行恶意代码

pikachu靶场实例

输入123,出现下方超链接

检查元素

 

 点击这个超链接,多了一个超链接

 

 

 检查元素

 尝试构造闭合,给这个超链接a元素增加一个属性

 

 

 再次提交

 检查元素

点击成功弹窗

 

posted on 2021-03-28 10:55  nikiss  阅读(213)  评论(0编辑  收藏  举报