首页 > 其他分享 >xsslabs通关教程

xsslabs通关教程

时间:2022-11-18 14:22:29浏览次数:49  
标签:xss 教程 XSS xsslabs javascript alert &# payload 通关

通过练习xsslabs可以熟练掌握XSS攻击的技巧 有助于更加深刻的理解XSS攻击的运用与流程

xsslabs下载地址:https://codeload.github.com/do0dl3/xss-labs/zip/refs/heads/master

无需安装 将之解压到WWW目录之后直接访问就可开始学习之旅

环境:Windows11

   PHPstudy2018

背景知识:

跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击!

XSS分为:存储型 、反射型 、DOM型XSS

 

存储型XSS:存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie
反射型XSS:非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。反射型XSS大多数是用来盗取用户的Cookie信息。
DOM型XSS:不经过后端,DOM-XSS漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,DOM-XSS是通过url传入参数去控制触发的,其实也属于反射型XSS。

 

Level1:不使用过滤器

 

简单观察知道是反射型XSS 通过get传参然后显示在页面

在name参数后面写上payload:<script>alert("XSS")</script>

 

 

 

 Level2:闭合标签

这一关依旧正常输入 可以看到没有成功 F12

 

 

 

 这里是将输入的文字添加到了value这个属性中,可以采用闭合input标签完成XSS攻击

payload:"><script>alert("xss")</script>

因为">闭合了input标签  最终的语句为 <input name="keyword" value=""> <script>alert("xss")</script>

 

Level3:单引号闭合并添加事件

输入text,查看网页源码

 

 与Level2感觉相同 输入level2的payload 发现没有反应 查看源码

 

关键字符被编码成了html字符实体  这里可以通过<input>标签的一些特殊事件来执行js代码

payload: ' onfocus=javascript:alert('xss') >

     ' onfocus=javascript:alert('xss')//

输入之后发现没有反应 因为这个属性是要光标接触才发生,将光标移动到输入框然后点击就完成level3

 

Level4:双引号闭合并添加事件

第四关与第三关相同 只不过闭合引号变成了双引号

payload: " onfocus=javascript:alert('xss')//

     " onfocus=javascript:alert('xss') "

Level5:javascript伪协议

随便输入:xss看源代码

 

在输入payload:<script>alert('xss')</script>

 

 

 <  > 被编码 script被替换 改用上一关的方法

 

 

onfocus 也被替换 这个时候采取另外一种html标签进行攻击

 

 payload:"> <a href=javascript:alert('xss')>xss</a>//

出现链接 点击就可以完成挑战

 

 Level6:大小写绕过

采用上一关的payload 发现href被替换   采取大写绕过

payload:"> <a Href=javascript:alert('xss')>xss</a>//

 

Level7:双写绕过

这一关过滤了关键词 script on href等 采取双写绕过

payload:" oonnfocus=javascscriptript:alert('xss')//

       "><scscriptript>alert("xss")</scscriptript>//

     "> <a hhrefref=javascscriptript:alert('xss')>xss</a>//

 

 

Level8:字符实体

这一关采取大小写 双写都无法绕过

javaSCscriptript:alert('xss')

 

 使用编码绕过概念,就是将所有字符编码为HTML实体

HTML字符实体转化:https://www.qqxiuzi.cn/bianma/zifushiti.php

将 javascript:alert('xss') 转化为实体字符

payload:&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3A;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x27;&#x78;&#x73;&#x73;&#x27;&#x29;

 

 

Level:9  检测关键字存在

利用前几关的payload发现都不行 查看源码

分析:我们发现这里多了一个strpos函数,这个函数是用来查找指定文本在字符串中第一次出现的位置,这时候我们就不得不在代码里加入http://,但是并没有过滤HTML实体编码,所以我们还是使用编码绕过

方法:使用过滤HTML实体编码,但是由于需要加入http://,肯定不能在http://后面加代码,必须在前面,并且将http://注释掉才能执行

payload:&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3A;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x27;&#x78;&#x73;&#x73;&#x27;&#x29;&#x2F;&#x2F;http://

 

 

 Level10:隐藏信息

分析:这一关将之前的方法全部尝试 发现没有用  查看表单元素 发现有三个被隐藏的表单

 

 

 

方法:可以尝试构造文本框来攻击 随机将三个输入框的其中一个type属性值更改为text  然后增加onclick=alert('xss') 属性

payload:

 

 

 

Level11:Referer信息

PS:这一关也可以用level10的方法完成 但是这样也就无法体验xsslabs的价值

 

 

分析:根据返回的html判断refer字符为Web页面的自定义变量 可能存在XSS

payload:利用BP或者Hackbar修改Referer的值 这里我使用的Hackbar

 

 

 

 

 

Level12:user-agent信息

PS:我与上一关相类似 只不过从Referer换成了user-agent

 

 

 

 payload:

 

 

" type="text" onm ouseover=alert('xss')//

" type="text" onm ouseover="alert('xss')"

 

Level13:Cookie信息

PS:与前两关相类似 只不过换成了Cookie

payload:user=" type= "text" onclick="alert('xss')"

 

Level14:exif xss

网上查找发现题有问题 此关略过

 

Level15:ng-include属性

payload:'level1.php?name="><a href="javascript:alert(/xss/)">xss</a>'

 

 

Level16:%0A或%0D作为空格使用

空格、/、script都被str_replace函数替换成 了,但是在HTML中可以将%0a或者%0D当成空格使用

在keyword后面输入payload

payload:<a%0Ahref='javas%0Acript:alert("xss")'>xss

     <input%0Atype="text"%0Aonclick="alert('xss')">

 

Level17:参数拼接

PS:这一关不能使用火狐浏览器 我尝试多次无法完成 换其他的就好Edge

根据返回的代码判断,arg01和arg02提交的变量存在注入点

 

 

 

#注意在arg01这里要添加空格,不然就是将属性与之前的xsf01.swf?进行连接了

payload:arg01= onm ousemove&arg02=javascript:alert(/xss/)

     arg01=q&arg02= onm ouseover=alert("xss")

 

Level:18

与17关一模一样 相同的payload

 

Level:19——20

PS:涉及反编译 未完成

 

标签:xss,教程,XSS,xsslabs,javascript,alert,&#,payload,通关
From: https://www.cnblogs.com/SmallVoter/p/16893103.html

相关文章

  • Win10系统安装U盘,安装纯净版Win10的通用教程
    安装前准备:1、准备8G或8G以上U盘(32G以内)。2、制作U盘会格式化U盘,U盘内的重要文件也要事先备份好。操作步骤:1、打开微软下载WIN10网址:(如果网址无法打开,可以下载解压运行附件......
  • Stable Diffusion的入门介绍和使用教程
    StableDiffusion是一个文本到图像的潜在扩散模型,由CompVis、StabilityAI和LAION的研究人员和工程师创建。它使用来自LAION-5B数据库子集的512x512图像进行训练。使用这个......
  • 乌蒙滴叉自制谱上机教程
      RT,本文将分享博主对Unity游戏第三方修改技术的一些探索,仅限于学习研究,若本文冒犯了您的权益请及时通知我。 本自制谱上机教程将会以乌蒙地插(UNiVERSEPlusSDE......
  • win11不更新系统设置教程
    https://pcedu.pconline.com.cn/1501/15015038.html有用户不想更新自己的win11系统,但是不知道win11不更新系统如何设置,其实我们可以通过服务或者组策略来关闭更新。方法......
  • ASP.NET Core教程-Services(服务)
    更新记录转载请注明出处:2022年11月17日发布。2022年11月16日从笔记迁移到博客。服务(Services)说明服务是什么服务是Web应用程序中提供功能的对象,为应用程序添加......
  • Burpsuite验证码识别插件的配置教程
    微信公众号文章更新于微信公众号:苏雅图的雨简介插件名称:captcha-killer插件说明:一款适用于Burp的验证码识别插件 项目地址:https:/......
  • windows--cmake与c++的使用教程(10)
    1概述本文基于前文环境本节目标:复用cmake脚本文件2编写复用脚本2.1前言多个项目之间,很多cmake设置大相径庭。比如修改输出路径、编写适用与自己的宏或者函数......
  • cobra 2022 简明教程 - 8 个知识点快速上手
    cobra是命令行程序开发的辅助工具,官方源码在​​https://github.com/spf13/cobra​​,知名程序k8s/githubcli/hugo均使用其开发,但由于网上大多数教程过时且繁琐,提......
  • Oracle 12C卸载图文教程
    第一步:找到自己的Oracle安装目录。我的目录是:D:\app\u01\product\12.1.0\dbhome_1\deinstall,第二步:1、然后点击bat文件。出现如下等待画面。2、耐心等待一段时间,出现如下画......
  • sql-lab 通关笔记
    sql-labless1-4加单引号报错得到报错信息根据报错信息判断闭合条件orderby找字段数unionselect找回显位置找到回显位置正常爆数据相同类型其他关卡......