xss-labs

第一题

打开页面,我们可以看到第一题为easy xss

第一关的注入点是name 我们可以直接插入一个弹窗

name=<script>alert(1)</script>

很容易便通过了

第二题

来到第二题

我们先试试第一题的语句

发现并不能通过,我们可以通过检查看看源码

我们发现input标签没有闭合,那么可以提前闭合input和value标签

"><script>alert(1)</script>​

也是成功过关

第三题

来到第三题,尝试闭合后依旧无法过关,查看源码发现 < 和 > 符号被过滤了

这里我们可以使用特殊事件执行

'onclick='alert(1)

由于onclick是点击事件,在报错后点击输入框成功过关

第四题

首先还是尝试第一关的语句,发现 < 和 > 符号被过滤了,那我们再尝试特殊事件执行

不过这次要换成双引号包裹

第五题

依旧先尝试输入看看源码

可以看到过滤了script,经过测试发现on也被过滤了

那么我们可以尝试一下伪协议语句,记得提前闭合标签

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

第六题

测试发现script和on依然被过滤,尝试伪协议语句发现href也被过滤了

 

那么既然有过滤我们可以尝试一下是否有限制大小写

"><a Href="javascript:alert(1)">test</a>

成功绕过

第七题

老样子,先测试

发现script直接没了,那就好办了,可以通过双写注入绕过过滤

"><scrscriptipt>alert(333)</scrscriptipt>

第八题

测试发现script,on,href全都被过滤了,并且过滤了大小写

不过我们可以发现数据被传到了href协议中,href在执行时会进行unicode编解码,那么我们可以试试将语句unicode编码后执行

javascript:alert(1)
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

第九题

查看源码我们发现if(false===strpos($str7,'http://'))  http://被注释掉了我们在之前的语句后加一个http://注释掉//http://

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;//http://

第十题

查看网页源码,发现文本框可能被隐藏了,修改type来看是否可以显示文本框

a&t_history=b&t_sort=c" type="text"

之后我们尝试在此基础上加入事件注入

&t_sort=" type='text' onclick=javascript:alert(12)>//

第十一题

第十一题文本框依旧被隐藏了,尝试之前的方法发现没有效果

检查后发现双引号被转义了,我们查看源代码可以看到HTTP_REFERER,这是用来获取referer字段的,那我们可以通过hackbar修改referer字段来注入

aaa"type="text" onclick="alert(1)

第十二题

依旧先查看源码,发现http_user_agent

那么我们依然可以按照第十一题的思路,在user_agent上进行注入

我这里是构建了一个点击事件

" type="text" onclick="alert(1)

第十三题

我们先看html代码,发现还是有四个地方可以进行传参,不过有个地方会引起我们的注意,那就是

cook,会让我们联想到cookie

那么我们可以尝试一下通过cookie注入

user="type="text" onclick="alert(1)

第十四题

第十四题有些问题,可以直接跳到十五题

第十五题

看一下源码,我们发现令人注意的有一个src

可以尝试一下往src里注入一个弹框,会发现我们输入的东西被注入掉了

先尝试闭合注入发现依旧无法执行

大致查了一下,由于ng-include 指令,我们的script标签不会被执行,由于这里包含了之前的html源文件,同样也会包含之前题目的xss漏洞

所以我们可以引用关卡一的漏洞

src='level1.php?name=<img src=1 onerror=alert(1)>'

第十六题

来到第十六题,我们可以看到传送门的截图

我们看一下源码,发现 script, 空格 和 / 都被编码了

那么正常的语句就无法实现了

那么我们就要构建一个不需要使用到被过滤的字符的语句了

首先考虑到 / 被过滤了,那么我们只能使用不需要闭合的标签<img>

之后我们需要构建语句,由于空格被过滤了,我们只能使用回车替代

<img
src=1
​​​​​​​onerror="alert(1)">

但是既然要把语句输入到url中,那必须解决回车的问题

我们可以把回车进行url编码,在加入到语句中去

<img%0Asrc=x%0Aonerror="alert(1)">

成功过关

XSS-labs是一个用于学习和测试跨站脚本攻击(XSS)的平台。根据引用\[1\],在学习了XSS的基础知识并完成了一些简单的XSS测试后,可以开始攻略XSS-labs。不过需要注意的是,对于XSS-labs,我们只需大致了解一些思路即可,因为在实际的应用中,很少会有这种复杂的情况,但在CTF比赛中可能会更常见。 根据引用\[2\],XSS-labs的安装和下载可以通过相关的渗透测试平台或者从官方网站获取。安装完成后,可以开始进行XSS攻击的实践。 在XSS-labs中,可以通过构造特定的payload来触发XSS漏洞。根据引用\[2\]和\[3\]的示例,可以使用ng-include或者src参数来构造包含XSS漏洞的URL。例如,可以构造一个类似于以下的payload来触发XSS漏洞: src='level1.php?name=<a type="text" href="javascript:alert(1)">' 或者 127.0.0.1/xss-labs/level15.php?src='level1.php?name=<a href="javascript:alert(/xss/)">' 通过构造合适的payload,可以利用XSS-labs平台进行XSS攻击的实践和学习。请注意,在实际应用中,XSS攻击是违法行为,请遵守法律法规并仅在合法授权的情况下进行安全测试。 #### 引用[.reference_title] - *1* *2* [渗透学习-靶场篇-XSS-labs(持续更新中)](https://blog.csdn.net/qq_43696276/article/details/127024861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [xss-labs搭建及通关攻略](https://blog.csdn.net/K_ShenH/article/details/122765092)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值