在线XSS-labs靶场:https://xssaq.com/yx/

靶场搭建

靶场是直接使用docker搭建的

docker pull vulfocus/xss-labs

启动靶场

docker run -p 8005:80 vulfocus/xss-labs

浏览器访问IP+8005

windows搭建

使用phpstudy_pro搭建
下载地址:https://github.com/do0dl3/xss-labs

解压文件放入www文件夹下,开启服务

浏览器访问127.0.0.1/xss-labs

level1


仔细观察看到在url栏中传了一个参数,所以在该参数处进行尝试传入其它参数


发现页面有所变化,在 “欢迎用户” 后有一个显示位能对传入的参数进行输出
构造poc

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


源码分析
程序将用户以GET方式提交的参数name赋给$str获取name的值,直接返回前端使用,没有对其进行过滤导致恶意代码可以在前端执行

level2

来到第二关有搜索框,直接使用第一关的poc,没有弹窗,代码原样输出

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

右键查看源码发现<>都被过转义了


回到页面F12定位到搜索框,发现是<input>标签可以利用
利用:闭合<input>标签


构造poc:

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


源码分析
程序没有对value属性使用htmlspecialchars() 函数进行处理,只对<h2>处进行过滤处理
知识补充

level3


先输入字符串test进行尝试,传入的参数和搜索框的一样

查看源代码和第二关差不多

使用第二关的poc

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

没有弹窗

查看源代码,发现两处<>都被HTML实体化,可以推测这两处都使用了htmlspecialchars()函数
<input>标签无法闭合,可以绕开标签去使用新标签,<input>标签的一些特殊事件来执行js代码
使用单引号闭合属性value,添加事件执行js

poc

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

onfocusjavascript中在对象获得焦点时发生的事件,最简单的实例就是网页上的一个输入框,当使用鼠标点击该输入框时输入框被选中可以输入内容的时候就是该输入框获得焦点的时候,此时输入框就会触发onfocus事件.因此点击当前页面的输入框就可以完成弹框了

源代码分析
刚刚的推理正确,这两处都使用了htmlspecialchars()函数

level4


这个和上两关类似,直接丢入poc查看

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

查看源代码发现<h2>(标号1)使用了使用了htmlspecialchars()函数处理
标号2处< >被删除

很明显和第三关差不多,使用事件来触发js,唯一不同的是使用双引号闭合
poc

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

填入poc点击搜索框触发事件

源代码分析
keyword参数的值赋给str变量,然后经过1处理将变量值中包含的<、>符号删除
2处对变量值进行编码处理之后显示在页面之上
最后处将去除特殊符号后的变量值插入到<input>标签的value属性值中

level5

此题和上一关卡变化不大,但不知道服务器端对其是怎么处理的,直接丢入poc查看源代码

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

根据上几题第一处很明显使用htmlspecialchars()函数处理过才返回到浏览器显示的
二处可以看到<script>标签被插入了一个_(下划线)符号
可以简单的推测一下服务器在2处使用了正则匹配,匹配到<script>标签插入_符号

<script>标签无法使用,可以使用其他的标签绕过,使用事件进行绕过测试

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

测试发现没有弹窗,查看源代码onfocus事件也被插入了_(下划线)符号

再次尝试其他的标签:<a>

使用新标签要先闭合<inupt>标签构造poc

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

填入poc,点击链接触发弹窗


源代码分析
1标号处GTE入参数给str,分别对on<script>进行了过滤,,过滤之后再见值传给了srt3

xss-labs靶场的更多相关文章

  1. XSS - Labs 靶场笔记(下)

    Less - 11: 1.观察界面和源代码可知,依旧是隐藏表单 2.突破点是 $str11=$_SERVER['HTTP_REFERER']; (本题为HTTP头REFERER注入) 3.因此构造pa ...

  2. XSS - Labs 靶场笔记(上)

    上周在网上看到的一个XSS平台,刷一波<doge Less - 1: 1.进入主界面,由图二可知是GET请求,提交name=test,回显在页面 2.查看源代码可知 没有做任何过滤,显然存在反射 ...

  3. XSS Challenge靶场练习

    实验目的 学习xss的基础知识及利用方式. 实验原理 XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写 ...

  4. Sqli - Labs 靶场笔记(一)

    Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...

  5. 如何写一个Xss Bot

    如何写一个Xss Bot 现在的ctf比赛里 xss的出题方式比较特殊,一般使用xss bot,所以借鉴大佬经验尝试弄一个xss题目. xss bot 就是代替管理员去完成点击页面的任务,bot需要能 ...

  6. 常见web漏洞整理之进击吧xss!!!

    XSS在线测试环境: http://xss-quiz.int21h.jp/ https://brutelogic.com.br/xss.php 这两个站对xss的理解很有帮助!!! 参考链接: htt ...

  7. Vulnhub之Credit_Card_Scammers靶场渗透

    前言 一次"夺旗"练习,涵盖了许多不同的技巧. 背后的故事:骗子正在利用人们,各种假冒购物网站已经建立起来,但人们发现他们的订单从未到达.我们发现了一个诈骗网站,我们认为该网站正在 ...

  8. PHP反序列化 - Pikachu

    概述 序列化serialize()序列化说通俗点就是把一个对象变成可以传输的字符串,比如下面是一个对象: class S{ public $test="pikachu"; } $s ...

  9. webug4.0 打靶笔记-02【完结】

    webug4.0打靶笔记-02 3. 延时注入(时间盲注) 3.1 访问靶场 3.2 寻找注入点 貌似一样的注入点: ?id=1' --+ 3.3 判断输出位置 同前两关一样的位置,时间盲注应该不是这 ...

  10. (未完)XSS漏洞实战靶场笔记

    记录下自己写的XSS靶场的write up,也是学习了常见xss漏洞类型的实战场景

随机推荐

  1. 2020-01-20:mysql中,一张表里有3亿数据,未分表,要求是在这个大表里添加一列数据。数据库不能停,并且还有增删改操作。请问如何操作?

    2020-01-20:mysql中,一张表里有3亿数据,未分表,要求是在这个大表里添加一列数据.数据库不能停,并且还有增删改操作.请问如何操作?福哥答案2020-01-20: 陌陌答案:用pt_onl ...

  2. 2022-05-21:给定一个数组arr,长度为n, 表示n个服务员,每个人服务一个人的时间。 给定一个正数m,表示有m个人等位。 如果你是刚来的人,请问你需要等多久? 假设:m远远大于n,比如n<=

    2022-05-21:给定一个数组arr,长度为n, 表示n个服务员,每个人服务一个人的时间. 给定一个正数m,表示有m个人等位. 如果你是刚来的人,请问你需要等多久? 假设:m远远大于n,比如n&l ...

  3. SQL Server 2014 英文版安装教程

    安装过程如下 1. 点击setup开始安装. 2. 选择如下的全新安装. 3. 自动生成产品密钥,然后点击下一步. 4. 勾选接受条款,然后点击下一步. 5. 自动更新根据实际情况进行选择,点击下一步 ...

  4. 7-8 切分表达式——写个tokenizer吧 (20 分)

    1.题目描述: [先说点出题背景] 这个题是为低年级同学.学C语言的同学准备的,因为,对这部分同学,这个题目编写起来略有一点复杂.如果是高年级.学过了正则表达式(Regular Expression) ...

  5. 终极指南!Terraform的进阶技巧

    如果您已经对 Terraform 了如指掌,并期望自己的 IaC 技能有进一步提升的话,这篇文章很适合您!在本文中,我们将分享一些 Terraform 的高级使用技巧.从使用模块(module).工作 ...

  6. 在 Linux 和 Windows 下源码安装 Perl

    Perl 是一种功能丰富的计算机程序语言,运行在超过 100 种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发.在生物信息分析领域,Perl 主要是做数据预处理.文本处理 ...

  7. 自然语言处理 Paddle NLP - 快递单信息抽取 (ERNIE 1.0)

    文档检索:需要把业务问题拆解成子任务.文本分类 -> 文本匹配 -> 等任务 -> Panddle API 完成子任务 -> 子任务再拼起来 介绍 在2017年之前,工业界和学 ...

  8. 一致性hash算法原理及实践

    大家好,我是蓝胖子,想起之前学算法的时候,常常只知表面,不得精髓,这个算法到底有哪些应用场景,如何应用在工作中,后来随着工作的深入,一些不懂的问题才慢慢被抽丝剥茧分解出来. 今天我们就来看看工作和面试 ...

  9. 前端Vue自定义简单实用中国省市区三级联动选择器

    前端Vue自定义简单实用中国省市区三级联动选择器, 请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13118 效果图如下: 使用方法 < ...

  10. 3. AOP

    1. 代理模式 1.1 概念 ① 介绍 二十三种设计模式中的一种,属于结构型模式.它的作用就是通过提供一个代理类,让我们在调用目标方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用.让不 ...