XSS-labs靶场(1-20)

开始通关!

 

0x01 (直接漏洞注入)

反射型xss注入
1、遇到?name=text,尝试参数注入
注入语句:
<script>alert(‘xss')</script>

 

0x02(闭合符号)

从url入手开始看,依然是get方式传递参数,应该还是反射型xss
闭合" "> 使用"> ….//

 
<script>alert(‘xss')</script>
其中<和>都被编码成了html字符实体
1、猜测在服务器端用htmlspecialchars()函数对keyword参数的值进行了处理
2、但是问题是这里的js代码在标签属性值中,浏览器是无法执行的

htmlspecialchars()编码 “<” “>”
&lt;代表小于号(<)
&gt;代表大于符号(>)
&le;表示小于或等于符号(<=)
&ge;表示大于或等于符号(>=)

思路:

  1. 既然上面的恶意代码被编码了,那么只能从属性值中的恶意代码处进行突破
  2. 要想浏览器执行这里的弹窗代码,只需要将属性的引号和标签先闭合就可以

漏洞代码:

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

1、左边的">去闭合原先的"
2、右边的//去注释原先的">

查看源码后

 

0x03(使用不带有<>的事件代码,例如:onfocus、onmouseover)

首先使用<script>alert("xss")</script> 进行测试

 
这里可以通过<input>标签的一些特殊事件来执行js代码
特殊事件:onfocus
onfocus 事件在对象获得焦点时发生。
onfocus 通常用于 <input>, <select>, 和<a>
最简单的实例就是网页上的一个输入框,
当使用鼠标点击该输入框时输入框被选中可以输入内容的时候就是该输入框获得焦点的时候,
此时输入框就会触发onfocus事件.因此点击当前页面的输入框就可以完成弹框了。
 
1、通过onfocus去绕过< >被编码的情况
2、'onfocus=javascript:alert('xss') >
构造代码:level3.php?keyword='onfocus=javascript:alert('xss') > //&submit=搜索
 

0x04

首先使用<script>alert("xss")</script> 进行测试

箭头1处直接将<和>编码转换了
箭头2处却是把<和>删除了
但是,事件触发却不需要使用这两个符号。
用上一关的代码:level4.php?keyword="onmouseover="alert(/xss/)

 

0x05(<a>标签绕过)

1、首先使用<script>alert("xss")</script> 进行测试

2、使用”onfocus=javascript:alert(“xss”)”>

 
观察:
1、<script>标签会被替换成<scr_ipt>
2、onfocus事件会被替换成on_focus
 

 

0x06(<a>标签的大小写绕过)

首先使用<script>alert("xss")</script> 进行测试

 

 

0x07(双写关键字绕过)

1、首先使用<script>alert("xss")</script> =>中的<script>被过滤掉
2、使用onfocus=javascript:alert("xss”) =>中的onfocus被过滤成focus
3、使用"><a href=javascript:alert("xss")>xss</a>// =>中的href被过滤掉
尝试双写关键字绕过

 

0x08(将ri编码十六进制绕过)

首先尝试<script>alert("xss")</script> =>script中的ri被替换过滤成r_i,所以尝试编码绕过

 
并且发现我们输入的payload漏洞代码,是被传输到友情链接的<a>标签中
所以下一步测试<a>标签
*经过测试,html实体编码和hex编码都可以绕过

漏洞代码:javascript:alert(/xss/)

0x09

首先使用之前关卡的漏洞代码:
<script>alert("xss")</script>
javascript:alert(/xss/)

 
查看源码发现:

漏洞代码:javascript:alert('http://')

 
 

0x0A(更改from标签中input的type属性)

首先使用之前关卡的漏洞代码:
<script>alert("xss")</script>
javascript:alert(/xss/)

解题技巧是:
1、将input标签的type类型的hidden改为text
2、将漏洞代码填写到value中

 

0x0B(前端代码更改,加入onmouseover)

延续上一题解法:

另一种解法:
看着参数t_ref是用于接收Referer参数的
 

0x0C(使用brup更改User_Agent)

延续上一题的解法

另一种解法:
查看参数t_ua传的值,就可以判断该参数就是传递User_Agent

使用brupsuite抓包传递漏洞代码

 

0x0D(使用brup更改Cookie)

延续上一关技巧,直接更改前端代码

 
第二种解法,通过brupsuite抓包重构数据包

 
 

0x0E(Exif隐写)

 
 

0x0D(ng_lnclude调用外部URL)

查看源码后

 
ng_lnclude的用法:
1、ng-include 指令用于包含外部的 HTML文件。
2、包含的内容将作为指定元素的子节点。
3、ng-include 属性的值可以是一个表达式,返回一个文件名。
4、默认情况下,包含的文件需要包含在同一个域名下。
 
值得注意的是:
1. ng-include,如果单纯指定地址,必须要加引号
2. ng-include,加载外部html,script标签中的内容不执行
3. ng-include,加载外部html中含有style标签样式可以识别
 
ng_lnclude的作用就是加入一个外部的url链接地址
随后去查看源码

 
漏洞代码:?src='level1.php?name=<a href="javascript:alert(/xss/)">xss<a/>'
 
 

0x0E(空格解析绕过)

尝试空格解析
<img src="" onerror=alert("xss")> 
onerror事件:当img图片加载失败会触发的事件

 

0x0F(两个参数自动拼接)

因为谷歌和火狐浏览器插件的原因,弹窗没办法正常弹出,推荐使用猎豹浏览器
 

0x0G

与上关一致payload
?arg01="onmouse&arg02="alert(/xss/)

持续更新...end#

 

XSS_Labs靶场通关的更多相关文章

  1. Upload-labs 文件上传靶场通关攻略(上)

    Upload-labs 文件上传靶场通关攻略(上) 文件上传是Web网页中常见的功能之一,通常情况下恶意的文件上传,会形成漏洞. 逻辑是这样的:用户通过上传点上传了恶意文件,通过服务器的校验后保存到指 ...

  2. Pikachu靶场通关之XSS(跨站脚本)

    一.XSS(跨站脚本)概述 Cross-Site Scripting 简称为"CSS",为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS.一般XSS可以 ...

  3. Web文件上传靶场 - 通关笔记

    Web应用程序通常会提供一些上传功能,比如上传头像,图片资源等,只要与资源传输有关的地方就可能存在上传漏洞,上传漏洞归根结底是程序员在对用户文件上传时控制不足或者是处理的缺陷导致的,文件上传漏洞在渗透 ...

  4. Upload-labs 文件上传靶场通关攻略(下)

    Upload-Labs靶场攻略(下) Pass-11 GET型传参,上传目录可设置,考虑00截断,在/upload/后添加1.php%00,即可上传 Pass-12 POST型传参,上传目录可设置,P ...

  5. 内网渗透DC-5靶场通关

    个人博客地址:点我 DC系列共9个靶场,本次来试玩一下一个 DC-5,只有一个flag,下载地址. 下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题.靶 ...

  6. 内网渗透DC-4靶场通关

    个人博客:点我 DC系列共9个靶场,本次来试玩一下DC-4,只有一个flag,下载地址. 下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题.靶场推荐使用 ...

  7. 内网渗透DC-3靶场通关

    个人博客:点我 DC系列共9个靶场,本次来试玩一下DC-3,只有1个flag,下载地址. 下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题.靶场推荐使用 ...

  8. 内网渗透DC-2靶场通关(CTF)

    为了更好的阅读体验,请在pc端打开我的个人博客 DC系列共9个靶场,本次来试玩一下DC-2,共有5个flag,下载地址. 下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware ...

  9. 内网渗透DC-1靶场通关(CTF)

    最新博客见我的个人博客地址 DC系列共9个靶场,本次来试玩一下DC-1,共有5个flag,下载地址. 下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题. ...

随机推荐

  1. hibernate01

    什么是hibernate ORM框架/持久层框架 jdbc的一个框架 object reference mapping 通过管理对象来改变数据库中的数据 通过管理对象来操作数据库 hibernate的 ...

  2. Linux--MySQL 日志管理、备份与恢复

    MySQL 日志管理.备份与恢复一.MySQL 日志管理二.数据库备份的重要性与分类  1.数据备份的重要性  2.从物理与逻辑的角度,备份分为  3.从数据库的备份策略角度,备份可分为三.常见的备份 ...

  3. rtsp->rtmp 推流直播 Plan B

    上篇文章我们谈到使用 EasyDarwin 推流后 前端HTML播放器 播放无画面的情况,找了各种播放器都服务正常解决,但使用VLC却能正常播放的问题,我们尝试了很久最后另辟蹊径,找到 nginx安装 ...

  4. QT程序打包成多平台可执行文件

    一.简述 QT项目开发完成后,需要打包发布程序,在实际生产中不可能把源码发给别人,所以需要将源码打包正可执行文件或者安装程序. 二.设置应用图标 把 ico 文件放到源代码目录下,在QT项目中的'.p ...

  5. Appium自动化(11) - 详解 Applications 类里的方法和源码解析

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 Applications 类 ...

  6. 安全测试工具(1)- Burp Suite Pro的安装教程

    啥是Burp Suite 用于攻击web 应用程序的集成平台 程序员必备技能,不仅可以拿来做渗透测试.漏洞挖掘还能帮助程序员调试程序 Bug 它包含了许多Burp工具,这些不同的burp工具通过协同工 ...

  7. IPSec协议框架

    文章目录 1. IPSec简介 1.1 起源 1.2 定义 1.3 受益 2. IPSec原理描述 2.1 IPSec协议框架 2.1.1 安全联盟 2.1.2 安全协议 报文头结构 2.1.3 封装 ...

  8. openswan中ISAKMP交互过程关键函数接口

    1. ISAKMP交互过程中关键函数接口 下面分别说明不同的阶段和模式下的函数接口以及对应的报文. 2. 第一阶段(Phase I)主模式函数接口 发送端 响应端 main_outI1 主模式第一包 ...

  9. C# Dapper基本三层架构使用 (一、架构关系)

    Dapper是一款轻量级ORM工具.如果你在小的项目中,使用Entity Framework.NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀.你又觉得ORM省时省力,这时Dapp ...

  10. dotnet 读 WPF 源代码笔记 渲染收集是如何触发

    在 WPF 里面,渲染可以从架构上划分为两层.上层是 WPF 框架的 OnRender 之类的函数,作用是收集应用程序渲染的命令.上层将收集到的应用程序绘制渲染的命令传给下层,下层是 WPF 的 GF ...