竹笋

首页 » 问答 » 环境 » web漏洞挖掘指南XSS跨站脚本攻击
TUhjnbcbe - 2024/4/28 17:13:00
北京中科白癜风医院科学大讲堂 https://news.39.net/bjzkhbzy/211125/9934570.html

一、漏洞原理

跨站脚本英文全称(CrossSiteScripting跨站脚本),为了不和css层叠样式表(英文全称:CascadingStyleSheets)混淆,因此将跨站脚本缩写为XSS。产生XSS漏洞根本原因其实是web应用未对用户的输入进行严格的过滤和转义,导致攻击者可从正常的输入功能注入脚本代码,我常将xss攻击理解为一种javascript注入,当带有xss恶意代码的页面被其他用户访问到时,js便会被执行,js脚本可以执行很多操作,比如:窃取用户cookie,读取用户键盘记录,截屏,恶意跳转等,甚至可以结合BEEF的hook.js钩子劫持用户浏览器。

二、XSS漏洞检测

1.公认XSS有三种类型:反射型、存储型、dom型。根据字面意思很好区分三者,反射型即服务器根据用户当前输入做出的响应,只能触发一次,这个过程就像一次反射。因此市面上大多self-xss都来自反射型xss,攻击者输入xss脚本,输出仅自己看到,仅xss到自己,常在查询、搜索等功能出现。

存储型xss即页面保存了攻击者输入的恶意代码,除非对应记录被删除,否则可以一直触发xss,常在留言、个人信息登记等功能出现。

dom型xss比较独特,它涉及的两个层次不是服务器端和浏览器端,而是浏览器端的JavaScript层和HTML层。换种更好理解的说法也就是:从服务器脚本变成了客户端脚本,domxss的payload不需要服务端解析响应,而是靠浏览器的dom解析,因此dom-xss的触发是抓不到请求包的。漏洞示例xss.html:

htmlbodydivid="tr1"/divscriptdocument.getElementById("tr1").innerHTML=unescape(location.hash);/script/body/html

xss漏洞检测用弹窗进行测试即可,常见的几种弹窗方法:alert()、confirm()、prompt()、console.log()。测试时,尽量结合各种xss类型的特征对功能点进行验证,除了大家常说的“有框即插(看见输入框就盲插xsspayload)”,还需注意请求中的各种参数,是否可以原样输出或者以html代码的形式保存到了另一个页面。

三、XSS漏洞利用

上文提到过,xss的本质其实是js代码的注入,所以XSS漏洞的危害来源于js代码执行,最常见的就是盗取用户cookie,但是在实际场景中我们经常会遇到cookie设置

1
查看完整版本: web漏洞挖掘指南XSS跨站脚本攻击