xss-labs全关教程
0x01 Level 1
查看源码,可以看到接收了name参数,并直接嵌入到HTML页面中了

没有任何过滤,而且直接会当作代码执行。

0x02 Level 2
先传入<script>alert(1)</script>观察一下,发现输入的内容被放在了value的值中,被当作值时是不会执行代码的,所以我们要闭合前面的标签。

用">闭合<input>标签,然后开始一条新的标签语句。

0x03 Level 3
首先查看HTML代码闭合前面的标签再写入<script>标签,发现不成功,看起来闭合无效,还是被当作值来解析的。

这是由于源代码中使用了htmlspecialchars()函数对特殊字符进行了HTML实体转义,所以无法发挥字符原来的作用。

既然不能使用<、>这类字符,那么就使用标签的on事件,构造
1' onfocus='alert(1) //通过输入的HTML代码变化,得知这里要使用单引号闭合,执行后点击输入框就会产生弹窗

0x04 Level 4
使用上题的payload,不过这题是使用双引号"闭合

0x05 Level 5
使用第四关的payload进行测试,发现on被转义了

使用">闭合前面的标签,再构造<script>标签,发现script也被转义了,不过好消息是">闭合成功了,可以使用其他标签进行尝试。

传入:"><a href="javascript:alert(1)">click</a>

点击click出现弹窗

0x06 Level 6
使用上一关的payload进行测试,发现对href进行了转义,经过测试发现对on和script都进行了转义。

查看源代码发现它匹配前没有进行大小写统一,只能匹配小写的进行转义

因此,大小写混淆绕过
"><body Onload=alert(1)>

0x07 Level 7
使用"><script>alert(1)</script>进行测试,发现script都变成空

尝试双写绕过
"><scscriptript>alert(1)</scscriptript>

0x08 Level 8
先测试一下,发现输入的内容被传到了两个地方,并且script被转义了

查看源码发现基本上都被过滤了

尝试HTML编码绕过

因为参数的值直接被传入到了href之中,所以可以使用javascript伪协议,构造payload:
javascript:alert(1) //即javascript:alert(1)
点击友情链接,出现弹窗

0x09 Level 9
通过源码发现比上题多了一个条件,就是对输入的内容进行校验,必须含有http://,否则判定“您的链接不合法?有没有!”

在alert()中加入http://
javascript:alert(1http://)

0x10 Level 10
查看HTML代码,看到三个<input>标签的类型是隐藏类型

测试一下哪些标签是可以传值的
?keyword=well%20done!&t_link="type="text&t_hidden="type="text&t_sort="type="text
可以看到名为t_sort的输入标签的类型变成了text型,证明是可以传值的

可以看源码验证一下

构造payload:
?keyword=1&t_sort=" autofocus onfocus="alert(1)

0x11 Level 11
查看HTML代码,发现有四个隐藏标签

使用之前的方法测试,发现t_sort参数还是能传入值的
&t_link="type="text&t_hidden="type="text&t_sort="type="text&t_ref="type="text

查看源代码,看到$_SERVER['HTTP_REFERER']字段,HTTP_REFERER是用来获取请求中的Referer字段。

传入Referer值进行测试
" onfocus="alert(1)" type="text

可以看到Referer的值被传入了t_ref的标签中,弹窗成功

0x12 Level 12
查看HTML代码,第四个标签中的value值一看就是User Agent的内容

直接构造payload:
user-agent" onfocus="alert(1)" type="text

弹出窗口

0x13 Level 13
查看HTML代码,看到t_cook结合前几关会不会想到cookie

传入Cookie值进行测试,发现Cookie并没有被传入HTML标签中

使用burpsuite抓个初始包看看,发现Cookie有一个键名user,忘记了必须给键名赋值才行

更改数据包的Cookie值后,Forward放包

Cookie值被传到了HTML标签中,并且弹出了窗口

0x14 Level 14
这题是关于Exif的,Exif叫做可交换图像格式,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。
这题比较冷门,暂时不想做,有兴趣的自行了解。
0x15 Level 15
查看HTML源码发现有一个ngInclude。
通过查询发现ng-include 指令用于包含外部的 HTML 文件;
包含的内容将作为指定元素的子节点;
ng-include属性的值可以是一个表达式,返回一个文件名;
默认情况下,包含的文件需要包含在同一个域名下。

构造payload:
?src='level1.php?name=<a href="javascript:alert(1)">'

0x16 Level 16
使用<script>标签进行测试,发现script被替换成了空字节

查看源码,可以看到代码对空格进行了实体转义
、
使用%0a代替空格,构造payload:
<body%0aonload=alert(1)>
// 绕过空格的方法还有很多,比如%0b,%0c,%0d,%09等等

0x17 Level 17
查看HTML源码

看起来像参数拼接,构造payload:
arg01=%20onfocus&arg02=alert(1)

0x18 Level 18
和上题一样的方法
arg01=%20onfocus&arg02=alert(1)

0x19 Level 19
我的谷歌和火狐都不支持,不做了
放个答案
version&arg02=<a href='javascript:alert(/xss/)'>xss</a>
0x20 Level 20
看到AngularJS想到了它存在模板注入

测试了一下没成功

贴上别人的payload:
arg01=id&arg02=\"))}catch(e){}if(!self.a)self.a=!alert(1)//%26width%26height
暂时不懂,等会了再补吧,如果想知道的话自行去了解吧!
xss-labs全关教程的更多相关文章
- XSS高级实战教程
1.[yueyan科普系列]XSS跨站脚本攻击--yueyan 2.存储型XSS的成因及挖掘方法--pkav 3.跨站脚本攻击实例解析--泉哥 4.XSS高级实战教程--心伤的瘦子 5.XSS利用与挖 ...
- DVWA XSS (Reflected) 通关教程
XSS 介绍XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器上执行,需 ...
- DVWA XSS (Stored) 通关教程
Stored Cross Site Scripting 存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户 ...
- DVWA XSS (DOM) 通关教程
DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容.结构以及样式. DOM型XSS其实是一种特殊类型的反射型XSS,它是 ...
- XSS - Labs 靶场笔记(下)
Less - 11: 1.观察界面和源代码可知,依旧是隐藏表单 2.突破点是 $str11=$_SERVER['HTTP_REFERER']; (本题为HTTP头REFERER注入) 3.因此构造pa ...
- XSS - Labs 靶场笔记(上)
上周在网上看到的一个XSS平台,刷一波<doge Less - 1: 1.进入主界面,由图二可知是GET请求,提交name=test,回显在页面 2.查看源代码可知 没有做任何过滤,显然存在反射 ...
- 2017-2018-2 20155315《网络对抗技术》Exp8 :Web基础
实验目的 理解HTML,学会Web前端.Web后端和数据库编程及SQL注入.XSS攻击测试 教程 实验内容 操作程序规律 运行脚本或可执行文件 查看配置文件 出错找日志 Web前端HTML 能正常安装 ...
- 2018-2019-2 网络对抗技术 20165230 Exp8 Web基础
目录 实验目的 实验内容 实验步骤 (一)Web前端HTML Apache HTML编程 (二) Web前端javascipt 基础知识理解 JavaScript编程 (三)Web后端:MySQL基础 ...
- 有关XSS的一个系列教程
在乌云发现了一个有关XSS的教程,目前有21篇,够我慢慢儿学的了. 这个系列教程的地址:http://www.wooyun.org/whitehats/心伤的瘦子/page/1 几个常见的语句 < ...
随机推荐
- docker启动ubuntu的桌面环境
一.概述 由于最近一段时间在家办公,国内服务器在阿里云,国外站点在aws.家里的移动宽带比较差,无法访问aws. 所以尝试在阿里云启动docker,找到一个lxde桌面环境的ubuntu镜像. 二.启 ...
- 使用windbg定位内存问题【入门级】
1. 背景 在开发过程中,我们可能遇到应用程序线程占用过大的问题,可以通过windbg命令去定位哪些类型,哪些内存一直占用堆资源,从而查出问题,解决问题. 2. 准备工作 工具: 抓取DUMP文件的工 ...
- HDOJ-1074(动态规划+状态压缩)
Doing Homework HDOJ-1074 1.本题主要用的是状态压缩的方法,将每种状态用二进制压缩表示 2.状态转移方程:dp[i|(1<<j)]=min(dp[i|(1<& ...
- 【老孟Flutter】Flutter 2.0 重磅更新
老孟导读:昨天期待已久的 Flutter 2.0 终于发布了,Web 端终于提正了,春季期间我发布的一篇文章,其中的一个预测就是 Web 正式发布,已经实现了,还有一个预测是:2021年将是 Flut ...
- 漏洞复现-CVE-2018-8715-Appweb
0x00 实验环境 攻击机:Win 10 0x01 影响版本 嵌入式HTTP Web服务器,<7.0.3版本 0x02 漏洞复现 (1)实验环境: 打开后出现此弹框登录界面: (2) ...
- 自己挖的坑自己填--Mybatis mapper文件if标签中number类型及String类型的坑
1.现象描述 (1)使用 Mybatis 在进行数据更新时,大部分时候update语句都需要通过动态SQL进行拼接.在其中,if标签中经常会有 xxx !='' 这种判断,若 number 类型的字段 ...
- android分析之智能指针
智能指针是一个包装类,该类有一个指针指向真正的类对象 引用计数型智能指针,该引用计数是在应该被真正类所持有,而非包装类(智能指针) 为了方便,会将引用计数单独实现在一个类中,这样所有继承它的类都有计数 ...
- 总结数据科学家常用的Python库
概述 这篇文章中,我们挑选了24个用于数据科学的Python库. 这些库有着不同的数据科学功能,例如数据收集,数据清理,数据探索,建模等,接下来我们会分类介绍. 您觉得我们还应该包含哪些Python库 ...
- sqlmap在https下的一种错误 - ssl连接失败
在昨天与师傅的交流中师傅考了我一个问题,在用sqlmap跑的时候遇到ssl爆红该怎么办,因为在实战中并没有遇到过这种情况,所以今天补一下知识. 首先查询了ssl的概念,通俗来说,如果一个网站没有安装s ...
- html Ajax连接.NET Ashx
Html代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <m ...