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. 面试官:Redis的事务满足原子性吗?

    原创:码农参上(微信公众号ID:CODER_SANJYOU),欢迎分享,转载请保留出处. 谈起数据库的事务来,估计很多同学的第一反应都是ACID,而排在ACID中首位的A原子性,要求一个事务中的所有操 ...

  2. C# 爬虫框架实现 流程_各个类开发

    目录链接:C# 爬虫框架实现 概述 对比通用爬虫结构,我将自己写的爬虫分为五个类实现: Spider主类:负责设置爬虫的各项属性 Scheduler类:负责提供URL到下载类,接收URL并做去重 Do ...

  3. WEB漏洞——RCE

    RCE(remote command/code execute)远程命令/代码执行漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统. RCE漏洞 应用程序有时需要调用一 ...

  4. ABP VNext发布遇到的坑

    本地调试没有问题,发布后通过Token调用其他API时,出现返回JSON中提示:Authorization failed! Given policy has not granted. 需要修改apps ...

  5. Nginx+Tomcat 负载均衡、动静分离集群

    目录: 一.Nginx负载均衡实现原理 二.Nginx动静分离实现原理 三.Nginx+Tomcat 负载均衡.动静分离集群部署 一.Nginx负载均衡实现原理 1.Nginx实现负载均衡是通过反向代 ...

  6. Git 初识和使用

    目录 目录 目录 概念 工作区/暂存区/版本库 master 版本号 常见命令 环境搭建 Linux 下 Git 和 GitHub 环境的搭建 Git 本地操作 本地仓库的创建和使用 查看信息 查看状 ...

  7. docker run配置参数

    Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -d, --detach=false 指定容器运行于前台还是后台,默认为false -i, - ...

  8. 30天自制操作系统(二)汇编语言学习和Makefile入门

    我们继续学习操作系统的相关内容. ; hello-os ; TAB=4 ORG 0x7c00 ; このプログラムがどこに読み込まれるのか ; 以下は標準的なFAT12フォーマットフロッピーディスクのた ...

  9. Windows难民安装docker的注意事项

    Windows下如何安装docker,这个没啥可说的,一直下一步就ok Windows  docker 下载地址: https://download.docker.com/win/stable/Doc ...

  10. Python爬无止境,获得王者荣耀全部高清皮肤

    作为一名热爱王者两年的程序员,早就想爬取所有英雄皮肤的高清照片,在设个幻灯片放映,真香,这次只用16行代码就能实现,对于新手拿这个作为实战练手项目既简单又容易上手,快来尝试下. 百度"王者荣 ...