xss-labs挑战(一)

前言:前一段时间我们已经研究了sqli-labs-master,现在我们挑战xss-labs,关于xss漏洞攻击我之前已经博客已经做了简单的讲解。我们开始吧

xss-labs的安装非常简单,由于我们之前有了环境直接把xss-labs的文件放在网站文件夹下
在这里插入图片描述
第一关
在这里插入图片描述
我们仔细观察一下url地址的构造就可以发现这里是向服务器提交了一个值为”test”的name参数。并且从页面回显可以看到不仅将name参数的值显示在了页面当中
我们看下网页源代码:
在这里插入图片描述从网页源码来看这里是将name参数的值直接插入到了<h2></h2>标签之中。那么这样看来这一关主要就是考察反射型XSS咯
所以这里直接在name参数中赋值一个简单的弹窗来进行测试。操作如下:
在这里插入图片描述
可以看到服务器是将我们提交的恶意代码原封不动的返回了,因此浏览器才能成功的弹窗
我们看下服务器源代码:
在这里插入图片描述红色箭头1处是服务器将通过get方式传递过来的name参数的值赋给了str变量,然后在箭头2处又将str变量直接插入在了<h2></h2>标签之中。因此服务器并没有对name参数的值进行严格处理,并且这个参数的值又是用户可控的,所以此处存在了反射型的XSS漏洞
小总结:

1、php的代码仅仅在服务器端解析执行
2、服务器将执行完成的最终网页代码(不包含源文件中属于php语言的 部分)返回给浏览器,然后浏览器对网页代码进行解释显示
3、在浏览器端查看源代码是无法看到对参数进行具体操作的php代码,只能看到结果

第二关
在第一关成功弹窗之后,点击“确定”按钮页面就会自动跳转到下一关的页面
在这里插入图片描述
从url地址来看,依然是get方式传递参数,所以猜测考察的还是反射型XSS
我们看下网页源代码:
在这里插入图片描述
从源码来看该页面大致的功能就是通过点击“搜索”按钮可以将填入输入框中的内容以get方式提交给服务器上的level2.php。经过服务器的动态处理之后又会将参数keyword的值插入到

标签之中以及添加到标签中的value属性的值内
我们用代码进行测试

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

但是并没有弹窗出现,我们在看下网页源代码:
在这里插入图片描述
可以看到在

标签之中的恶意代码被编码了。其中<、>都被编码成了html字符实体
看可以看到插入到value参数值中的恶意代码并没有被编码而是直接原样返回的。但是问题是这里的js代码在标签属性值中,浏览器是无法执行的

我们看下服务器源代码:
在这里插入图片描述
由上图可知

既然上面的恶意代码被编码了,那么只能从属性值中的恶意代码处进行突破了。要想浏览器执行这里的弹窗代码,只需要将属性的引号和标签先闭合

http://192.168.89.139/xss/level2.php?keyword="><script>alert('xss')</script> //

在这里插入图片描述
可以看到浏览器成功弹窗了,说明我们提交的恶意代码被浏览器执行了
在我们构造的恶意代码中最后的//是为了将后面的">注释掉。

第三关:
在这里插入图片描述
我们先输入test进行尝试
在这里插入图片描述
从这里我们并没有看出什么问题,继续看网页代码
在这里插入图片描述
看起来跟第二关时没什么区别,所以还无法确定在服务器端是否对敏感字符进行了过滤、编码等操作

http://192.168.89.139/xss/level3.php?keyword=<script>alert('xss')</script>&submit=搜索

但是浏览器并没有成功弹窗
在这里插入图片描述
原来这两处都将<、>这样的敏感字符编码成了html字符实体。猜测服务器端在这两处都用htmlspecialchars()函数进行了处理。既然关键的<、>字符被编码了
我也查阅了一些资料,这里可以通过标签的一些特殊事件来执行js代码

http://192.168.89.139/xss/level3.php?keyword='οnfοcus=javascript:alert('xss') > //&submit=搜索

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

在这里插入图片描述
为了验证我们的猜想我们看下源代码:
在这里插入图片描述
可以看到服务器端在页面显示的位置对参数值都用htmlspecialchars()函数进行处理了

第四关
显示页面如下
在这里插入图片描述
可以看到这一关还是采用get方式传递参数,我们依然用弹窗代码进行测试
在这里插入图片描述
可以看到浏览器并没有成功弹窗,第一个显示位直接将参数值显示出来了,但是在输入框中显示却跟我们提交的参数值有点出入

我们还是看看网页代码
在这里插入图片描述
从上图不难看出在箭头处将参数值中的<、>字符进行编码显示了,在箭头2处直接将<、>字符给删除了
用上一关的事件触发弹窗代码测试看看,因为这里只是删除了<、>符号,事件触发却不需要使用这两个符号

http://192.168.89.139/xss/level4.php?keyword="οnfοcus=javascript:alert('xss') "

在这里插入图片描述
我最后还是看下源代码
在这里插入图片描述
第五关
看到第五关页面
在这里插入图片描述
同之前一样,这一关看起来还是反射型的XSS。但是由于不知道服务器端到底做了什么样的操作,所以用弹窗代码测试
在这里插入图片描述
我们还是看网页代码
在这里插入图片描述
从图中看到在第一处显示位应该还是被htmlspecialchars()函数处理过才返回到浏览器显示的。而在第二处显示位可以看到在第一个<script>字符中插入了一个_符号。

从这么来看的话,之前通过事件触发的代码应该依然可以奏效,测试一下看看

http://192.168.89.139/xss/level5.phpkeyword="οnfοcus=javascript:alert('xss') "

在这里插入图片描述
但是这一次并没有成功触发弹窗。看看网页源码
在这里插入图片描述
果然没有那么简单,这里居然对onfocus这一类的事件字符也进行了防范
从刚才的响应来看提交的javascript字符并没有被过滤或者转义等,所以此处既然无法通过<script>标签或触发事件来执行js代码的话,那么可以换一个标签来执行js代码。我们可以构造如下
在这里插入图片描述
我们点击xss字样链接
在这里插入图片描述
最后看下源代码
在这里插入图片描述
从源码来看,服务器端先是将传递过来的参数值转换为全小写之后赋值给变量str,接着就是通过str_replace()函数来破坏变量值中的敏感字符的语义。最后在箭头4处通过htmlspecialchars()函数处理之后显示到网页上,在箭头5处直接将进行敏感字符处理之后的变量值插入到<input>标签的value属性值中。

本文章为自己搭建实验环境做过的,参考过一些资料,希望对你有帮助

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

余额充值