美文网首页
03.XSS基础

03.XSS基础

作者: 新一mghc | 来源:发表于2019-03-02 17:54 被阅读0次

一、成因

程序对输入和输出的控制不够严格,导致“精心构造”的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。

二、分类

1. 反射型

交互的数据一般不会被存在在数据库里面,一次性,所见即所得,一般出现在查询类页面等。

  • GET方式的XSS漏洞更加容易被利用,一般利用的方式是将带有跨站脚本的URL伪装后发送给目标
  • 而POST方式由于是以表单方式提交,

2. 存储型

交互的数据会被存在在数据库里面,永久性存储,一般出现在留言板,注册等页面。

3. DOM型

不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性也属于反射型。

三、跨站脚本漏洞测试流程

  1. 在目标站点上找到输入点,比如查询接口留言板等
  2. 输入一组“特殊字符+唯一识别字符”,点击提交后,査看返回的源码,是否有做对应的处理
  3. 通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合)
  4. 提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在ⅩSS漏洞
TIPS
  1. 一般査询接口容易出现反射型XSS,留言板容易岀现存储型XSS
  2. 由于后台可能存在过滤措施,构造的 script可能会被过滤掉,而无法生效或者环境限制了执行(浏览器)
  3. 通过变化不同的 script,尝试绕过后台过滤机制;

四、环境实操

1.反射型xss(get)

1. 转译过滤判断
提交框.png 返回源码.png

输入一组“<>6666”,点击提交后,査看返回的源码,未对输入信息进行过滤

2. 尝试进行攻击
进行注入.png

发现前端对字符数进行了限制,打开F12调试工具修改前端代码。

前端源码.png

的确进行了限制,将20修改为足够大,输入

<script>alert(1)</script>
弹窗成功.png

注入成功

3. 源码审计
源码.png

在第一个框中对信息进行判断,若信息不为空且不为Kobe,则将参数传入{$_GET['message']},未对信息进行适当过滤

2.存储型型xss

1. 转译过滤判断
提交判断未进行过滤.png 转移判断.png

未进行过滤与转译

2. 进行攻击
尝试攻击.png

成功弹窗,并且在刷新页面后,依然弹窗,储存型xss触发成功

3. 源码审计
语句保存代码.png

将数据存入了后台数据库

<p class="line">留言列表:</p>
  <?php echo $html;
  $query="select * from message";
  $result=execute($link, $query);
  while($data=mysqli_fetch_assoc($result)){
  echo "<p class='con'>{$data['content']}</p><a href='xss_stored.php?id={$data['id']}'>删除</a>";
                    }

查看留言展示节目界面,未对{$data['content']}进行过滤

3.1. DOM型xss

1.攻击前准备
test.png

随便输入,提交出现what do you see?,查看源代码

            <div id="xssd_main">
                <script>
                    function domxss(){
                        var str = document.getElementById("text").value;
                        document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";
                    }
                    //试试:'><img src="#" onmouseover="alert('xss')">
                    //试试:' onclick="alert('xss')">,闭合掉就行
                </script>
                <!--<a href="" onclick=('xss')>-->
                <input id="text" name="text" type="text"  value="" />
                <input id="button" type="button" value="click me!" onclick="domxss()" />
                <div id="dom"></div>
            </div>

str 接收传入值;写入a href标签;最后传入倒数第二行 id="dom";可以考虑在a herf标签构造语句进行攻击

攻击.png

点击what do you see 出现弹窗

3.2. DOM型xss-x

1.查看源代码
 <div id="xssd_main">
                <script>
                    function domxss(){
                        var str = window.location.search;
                        var txss = decodeURIComponent(str.split("text=")[1]);
                        var xss = txss.replace(/\+/g,' ');
//                        alert(xss);

                        document.getElementById("dom").innerHTML = "<a href='"+xss+"'>就让往事都随风,都随风吧</a>";
                    }
                    //试试:'><img src="#" onmouseover="alert('xss')">
                    //试试:' onclick="alert('xss')">,闭合掉就行
                </script>
                <!--<a href="" onclick=('xss')>-->
                <form method="get">
                <input id="text" name="text" type="text"  value="" />
                <input id="submit" type="submit" value="请说出你的伤心往事"/>
                </form>
                <div id="dom"></div>
            </div>

window.location.search:获取url参数

与第一个类似

相关文章

  • 03.XSS基础

    一、成因 程序对输入和输出的控制不够严格,导致“精心构造”的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从...

  • 03.XSS(Cross-Site Scripting 跨站脚本

    0. 检测 手动: jaVasCript:/-//*/'/"/*/(/ */oNcliCk=alert() )//...

  • 机械设备安装技术

    设备基础种类及应用 垫层基础允许产生沉降:大型储罐 浅基础扩展基础联合基础:轧机独立基础 深基础桩基础:适用于需要...

  • 基础,基础,基础

    如果有人现在问我,JAVA该怎么学,我会告诉他不要急于求成,少看视频,多练,多思考。但说到这里有人可能会反...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • 零基础学画画从入门到放弃

    零基础应该怎么学画画?零基础那就从基础开始学啊!基础是什么?造型基础和色彩基础。 造型基础就是用点线面组成起码能让...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • 基础基础还是基础

    这次去面试,还是被基础给打趴下了。 对于PHP7的新特性没有了解。 对于TP的新特性没有了解。 再一个就是独立完成...

  • 零基础学UI设计需要美术基础吗?

    零基础学UI设计需要美术基础吗?零基础学UI设计需要美术基础吗?零基础学UI设计需要美术基础吗?零基础学UI设计需...

网友评论

      本文标题:03.XSS基础

      本文链接:https://www.haomeiwen.com/subject/tdwhuqtx.html