xss靶场

admin 2025年4月2日23:22:46评论10 views字数 3660阅读12分12秒阅读模式
xss靶场学习
免责声明:仅供参考学习,禁止非法活动,如有违法犯罪,概不追究本人责任。
学完小迪的课程就可以打打这些靶场

xss-labs

如果这些靶场很有疑惑,可以去看b站,天欣师傅的这个靶场讲解,全网最细的讲解

bhttps://www.bilibili.com/video/BV1vQ2WYEEhV/?spm_id_from=333.1387.homepage.video_card.click

xss靶场

第一关  

没有任何防备  直接过 <h1>1</h1>
<script>alert()</script>

第二关

查看源代码  可以看出  利用了 html编码表

htmlspecialchars 这个函数的话是这个东西,只是对 <  >  这两个符号 进行 html编码

htmlspecialchars() 是 PHP 中的一个函数,用于将一些预定义的字符转换为 HTML 实体,以确保这些字符在网页中被正确且安全地显示,而不是被解释为 HTML 标签或实体。这个函数会转义以下五个字符:

  1. < (小于号)被转换为 <
  2. > (大于号)被转换为 >
  3. & (和号)被转换为 &
  4. " (双引号)被转换为 "
  5. ' (单引号)被转换为 ' 或 ' (根据 PHP 版本和配置,早期版本可能使用 ')第三关 不会被过率
  6. 但是这里的靶场 对 单引号 不过率  如果 看到 value的值 是被 单引号 保住的 就可以考虑 单引号 过滤

这些转换有助于防止跨站脚本(XSS)攻击,因为攻击者无法直接在网页中插入执行脚本的HTML标签或JavaScript代码。通过使用 htmlspecialchars(),可以安全地展示用户提供的数据,确保数据被浏览器作为普通文本而非HTML代码解析。

xss靶场
xss靶场

所以如何绕过  闭合标签绕过

xss靶场
"><script>alert(xx)</script>

第三关

闭合过滤

xss靶场

如果还用 第二关的 答案  这个小于大于符号会被实体化 htmlspecialchars 这个函数的话是这个东西,只是对 <  >  这两个符号 进行 html编码

会被实体化 没办法 进行闭合 操作

xss靶场

如何绕过  找到一些 没有  尖括号的 攻击代码就可以

'""" onBlur='Javascript:alert()'

onfocus,onbler,onblick 事件绕过

虽然还是要让 闭合 但是 里面 没有 大于小于 符号  所以 就不会被 html编码   

xss靶场

拿下

xss靶场

第四关

与第三关 基本相同 就是 用到  双引号 闭合 

xss靶场
$str2= str_replace(">","",$str);

:这一行代码的作用是在字符串$str中查找所有的右尖括号(>)并替换为空字符串,也就是删除它们。执行这行代码后,结果保存在新的变量$str2中。

$str3=str_replace("<","",$str2);

:接着,这一行代码对上一步得到的$str2(已经没有右尖括号了)进行操作,查找并移除所有的左尖括号(<),同样替换为空字符串。执行后,最终的结果存储在$str3中。

所以 如果你想用到 第二关的方法  闭合标签,让后写入 攻击代码 是不行的

" onBlur='Javascript:alert()'

拿下

xss靶场

第五关

a_herf 过滤

先看源代码

xss靶场

如何绕过

这一关 可以借鉴第二关

xss靶场

可不是和第二关的攻击代码一摸一样的  要 避免 有  on script  不然 会被 变了

xss靶场

先闭合  后利用 a  href  标签 进行 攻击

拿下

xss靶场

第六关

大小写绕过

xss靶场
xss靶场
"> <aHREF=javascript:alert()>xxx</a> <"

拿下

xss靶场

第七关

双写过滤

xss靶场

双拼写 就是

on   o [on]n   scri[script]pt   这样的就是双拼写  就是 将 完整的插入到 原本拼写 当中

先闭合 因为 没有去除 大于小于号 的函数    然后利用 双写

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

拿下

xss靶场

第八关 

编码过滤

先输入看看啥玩意

xss靶场

输入的值插入了两个地方,第一个是input标签,第二个是href属性,老方法,先看看过滤了啥关键字

" sRc DaTa OnFocus <sCriPt> <ahReF=javascript:alert()>
xss靶场

可以发现,input标签添加了html实体转化函数还把双引号也给实体化了, 添加了小写转化函数,还有过滤掉了src、data、onfocus、href、script、"(双引号),难搞哦,看一下这关的源码

查看源代码

xss靶场

所以这里就可以采用  Unicode 编码

在属性值里面的利用 Unicode编码 服务器 就能认识 ,但是如果 是属性,用这些 编码 ,浏览器可是不认识的

Unicode 编码是一种可以让服务器不认识但浏览器能正常解析的编码方式,这在XSS编码绕过中较为常见。

服务器不认识就不能 进行过滤 ,再通过浏览器能正常解析  所以 就很可以 

在线Unicode 编写工具  在线Unicode编码解码 - 码工具 (matools.com)

只用 将 javascript:alert()用 Unicode 编码编码  然后插入到 herf 标签里面就行

也可以使用 ASCII编码 使用 。

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;
xss靶场

拿下

xss靶场

第九关 

要求格式过滤

看一看先过滤什么

xss靶场

查看源代码

xss靶场

所以 在构建 攻击代码的时候 就需要 有http:// 才行    所以怎么构建呢

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

这个攻击代码中包含 了  http://     在前端页面解析的时候 http:// 两边是 注释符会把 中间给注释掉 这样 攻击代码 就 等同于 与第八关的 攻击代码一样

xss靶场

第十关 

隐藏过滤

看一看都过滤什么

" sRc DaTa OnFocus <sCriPt> <ahReF=javascript:alert()> &#106;
xss靶场

而且 可以看到 三个input 标签 会被隐藏了

查看源代码

xss靶场
'" type="text" onclick='alert(123)'

前面的 单引号 双引号  闭合钱买你的 value  值  然后 加上 type 的话  浏览器默认 就会 执行 前面 tpye 属性值  显示为 text 文本框的格式 不会被隐藏  , 然后 加入 onclick  事件 就拿下了

xss靶场

第十一关

利用前一个跳转之前的地址攻击

xss靶场

源码查看

xss靶场

操作

xss靶场

攻击代码

'" type="text" onclick='alert(123)'
xss靶场

拿下

xss靶场

第十二关

UA头攻击

xss靶场

源码

xss靶场

攻击代码

'" type="text" onclick='alert(123)'

拿下

xss靶场

第十三关

xss靶场

源码

xss靶场

这几关 主要是 告诉我们  xss 可能在 哪些位置

攻击代码

'" type="text" onclick='alert(123)'

拿下

xss靶场

第十五关

xss靶场

ngInclude 是 AngularJS 框架中的一个指令,用于将外部HTML文件包含到当前页面中。由于它允许动态加载和渲染外部内容,如果没有恰当的安全控制,

ngInclude 可能成为XSS(跨站脚本攻击)的潜在入口点。以下是一些可能的XSS利用方式和防范措施

意思就是说 这个 ngnclude  后面写入网址(需要加单引号) ,该网站 会加载 网址页面的内容  演示 :

xss靶场

源码展示 

xss靶场

有人会觉得 我都这样整,我自己攻自己是不是太sb了

其实不然  如果 leve15 是一个大型网站的域名 后面的 leve1 是攻击者的一个攻击载荷地址,后面刚好包含攻击代码 

如果你刚好 要点这样的链接就点 leve15 忽略了后面的链接的书写方式,当点进去同时,就会 实施攻击  

你的leve 15 的 cooke  session 什么的 重要的 身份验证信息是不是就会丢失

http://127.0.0.1/xss1/xss/level15.php?src=%27http://127.0.0.1/xss1/xss/level1.php?name=%3Cimg%20src=1%20onmouseover=alert()%3E%27
xss靶场

拿下

xss靶场

第十六关

看什么过滤

?keyword=" ' sRc DaTa OnFocus OnmOuseOver OnMouseDoWn P <sCriPt> <ahReF=javascript:alert()> &#106;
xss靶场

源码

xss靶场

果然给过掉了,如果 空格不会被识别出来 再用第十五关的触发机制 是不是就能过,但是我如何不会识别  这里想到空格可以用回车来代替绕过 所以回车url编码代替空格的url编码  %0a是回车的url编码

操作 

攻击代码

<img%0asrc=1%0aonmouseover=alert()>
xss靶场

拿下

xss靶场

第十七关

xss靶场

源码

xss靶场

攻击代码

" onmouseover=alert("123")

拿下

xss靶场

第十八关

攻击原理与上一关一样

xss靶场

第十九,二十关需要用到插件 但是插件已经过时 基本不用 这里就不讲了 

burp靶场

这个打完消化完就可以尝试打打这个靶场

尽量消化原理,而不是插入payload,有视频讲解,但是需要挂个魔法。内容挺好的

All labs | Web Security Academy

xss靶场

原文始发于微信公众号(嵩艺):xss靶场

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

发表评论

匿名网友 填写信息