xss-labs 1-10

level 1

观察返回的页面

发现向服务器提交了一个name参数,值为test

从页面回显来看,将name参数的值显示在了页面上,并且显示了name参数值的字符长度

 查看页面源码,发现将name的参数值插入到了<h2></h2>标签之间

属于反射型xss

但是由于不知道服务器端对于提交的敏感字符有没有过滤,所以这里直接在name参数

中赋值一个简单的弹窗来进行测试。

将name参数重新赋值:<script>alert('xss')</script>

成功  用于js弹窗的代码顺利执行了

level 2 

查看页面源码

从源码来看,它的功能就是通过点击“搜索”按钮,将输入框内的内容以get方式提交给

服务器上的level2.php

经过服务器的动态处理之后又会将参数keyword的值插入到<h2> </h2>标签之中以及

添加到<input>标签中的value属性的值内。

 尝试使用上一关的恶意语句操作进行弹窗  <script>alert('xss')</script>

报错

查看源码

可以看到在<h2> </h2>标签之中的恶意代码被编码了,其中<>都被编码成了html字符实体。

猜测在服务器端用htmlspecialchars()函数对keyword参数的值进行了处理。

往下看发现插入到value参数值中的恶意代码并没有被编码而是直接原样返回

但是问题是这里的js代码在标签属性值中,浏览器是无法执行的

既然上面的恶意代码被编码了,那么只能从属性值中的恶意代码处进行突破了

要想浏览器执行这里的弹窗代码,只需要将属性的引号和标签先闭合就可以了

 将keyword的参数值重新赋值"><script>alert('xss')</script>//

左边的">闭合原先的"   右边的//注释原先的">

成功

看一下level2的源码

因为value处没有对敏感字符进行编码和过滤,所以可以通过构造实现XSS攻击。 

level 3

输入test,查看页面源码

感觉与第二关相似

 不确定有没有敏感字符过滤,编码等操作

构造弹窗测试一下   <script>alert('xss')</script>

失败,查看页面源码

两处都将<>这样的敏感字符编码成了html字符实体

猜测服务器端在这两处都用htmlspecialchars()函数进行了处理

确认猜测

构造代码:'οnmοuseοver='alert(/xss/)

源代码:<input name=keyword  value='".htmlspecialchars($str)."'>
所以:<input name=keyword  value=''οnmοuseοver='alert(/xss/)'>
成功

level 4

查看源码

将<和>转为空格,对第一个str输出也做过滤

同上题类似,仍然可以在input标签内value处闭合,但是value处要用"闭合

"οnmοuseοver="alert(/xss/)

 <input name=keyword  value=""οnmοuseοver="alert(/xss/)">

成功

 level 5

查看源码

对标签(<script>)进行了过滤,对on进行了过滤

strtolower()将输入的量全转为了小写,因此无法实现大小写绕过

方法:构造a标签,再尝试利用a标签的href属性执行javascript:伪协议,">  (没有发现对javascript进行的过滤)

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

源码:<input name=keyword  value="'.$str3.'">

<input name=keyword  value=""><a href=javascript:alert()>xxx</a> <"">

 点击xxx,成功

level 6

查看源码

过滤了很多,但是没有过滤大小写

payload:"><ScRipt>alert(1)</ScRipt>

源码:<input name=keyword  value="'.$str6.'">

<input name=keyword  value=""><ScRipt>alert(1)</ScRipt>">

输入,搜索,成功

level 7

查看源码

过滤了大小写,把一些关键字替换为了空格 

我们可以双写绕过

payload:"> <a hrehreff=javasscriptcript:alert()>x</a> <"

源码:<input name=keyword  value="'.$str6.'">

<input name=keyword  value=""> <a hrehreff=javasscriptcript:alert()>x</a> <"">

成功

level 8

Unicode 给所有的字符指定了一个数字用来表示该字符。

查看源码

将字符转为小写,过滤特殊字符和"

添加友情链接处是突破点,在输入字符提交后,友情链接处会载入一个拼接后的a标签,因为javascript被过滤,所以进行编码绕过再点击友情链接

我们利用href的隐藏属性自动Unicode解码

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

成功

level 9

查看源码

在上一题的基础上加入了strpos()函数

strpos()函数用于在字符串内查找一个字符或一段指定的文本,如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置,如果未找到匹配,则返回FALSE 

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

成功

level 10

查看源码,发现有隐藏表单

 F12打开查看器

 改为如下内容

 成功

 或者url后加如下内容,成功

 查看器内容如下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值