当前位置: 首页 > news >正文

xsschallenge1~13通关详细教程

文章目录

  • XSS 挑战靶场通关
    • level1
    • level2
    • level3
    • level4
    • level5
    • level6
    • level7
    • level8
    • level9
    • level10
    • level11
    • level12
    • level13

XSS 挑战靶场通关

level1

通过观察发现这个用户信息可以修改

image-20230825112715130

那么我们直接输入攻击代码

<script>alert(/wuhu/)</script>

image-20230825112631264

弹框如下:

image-20230825112639569

level2

发现一个输入框,输入攻击代码观察页面反应

image-20230825113247834

页面将我们的攻击代码进行了打印。

查看网页源代码,发现将我们输入的尖括号进行了转义。

image-20230825113348614

源码

image-20230825163521369

htmlspecialchars(string): 把预定义的字符: “<” (小于)、 “>” (大于)、& 、‘’、“” 转换为HTML实体,防止浏览器将其作为HTML元素。

impossible级别的代码先判断name是否为空,不为空的话然后验证其token,来防范CSRF攻击。然后再用htmlspecialchars函数将name中的预定义字符 “<” (小于)和 “>” (大于)转换成html实体,这样就防止了填入标签。

预定义的字符如下:

& 成为 &amp
" 成为 &quot
' 成为 &#039
< 成为 &lt
> 成为 &gt

这里我们可以闭合该value参数,添加一个onclick属性

onclick 是一个 HTML 属性,用于在用户点击(或触摸)指定的 HTML 元素时触发相应的 JavaScript 代码。

image-20230825114118963

那么我们可以构造其他攻击代码

" οnclick="alert(99)"

image-20230825114044659

闭合input标签,将语句独立出来

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

image-20230825165638485

image-20230825114019684

level3

查看网页源代码,发现该闭合方式是单引号

image-20230825115155169

构造我们的攻击代码

' onclick='alert(/wuhu/) 

image-20230825115406223

level4

查看页面源代码

image-20230825115531652

发现闭合方式是双引号闭合。

构造我们的攻击代码

" onclick="alert(/wuhu/)

image-20230825115559585

level5

注入我们的攻击代码

" οnclick="alert(/wuhu/)

页面没有反应

image-20230825115740187

查看页面源代码

image-20230825145716156

这里将我们输入的事件onclick的on之间添加了下划线。

试一下<script>标签是否可以

<script>alert(/wuhu/)</script>

同样页面没有弹框,查看页面源代码,发现<script>标签也被添加了下划线。

image-20230825172029784

这里就无法使用事件了,可以使用伪协议,闭合方式为双引号。

构造攻击代码如下:

先将input标签闭合,然后构造超链接标签

"> <a href="javascript:alert(/xss/)">芜湖</a>

image-20230825172617210

成功弹框

image-20230825151428802

level6

先输入攻击代码查看页面响应

<script>alert(/wuhu/)</script>

image-20230825172936196

查看页面源码,发现script标签被添加了下划线。

image-20230825173002868

使用响应事件来构造攻击代码

<a href = "#"  onclick = 'alert(/wuhu/)'>click me!</a>

同样页面没有响应,查看页面源代码,发现响应事件被添加了下划线。

image-20230825173634872

使用伪协议来构造攻击代码

<a href = "javascript:alert(/xss/)">click me!</a>

同样页面没有响应,查看页面源代码,发现href被添加了下划线。

image-20230825173343773

image-20230825174615593

采用大小写绕过的方式构造攻击代码:

"> <SCRIPT>alert(/wuhu/)</SCRIPT>

image-20230825174456572

level7

先输入攻击代码查看页面响应

<script>alert(/wuhu/)</script>

页面没有响应,查看页面源代码,发现我们的script标签被替换为空了。

image-20230825174808833

查看源码

image-20230825185811433

源码中将script,on,src,data,href标签及属性转换为空。这里可以先使input便签进行闭合,再双写script进行绕过。

构造攻击代码:

"> <scrscriptipt>alert(/xss/)</scrscriptipt>
" oonnclick="alert(/wuhu/)

image-20230825185739454

level8

先输入攻击代码查看页面响应

<script>alert(/wuhu/)</script>

页面没有响应,查看页面源代码

image-20230825190449029

发现将我们构造的攻击代码放到了a标签中,并且给script标签添加了下划线。

查看源码

image-20230825190943469

这里将script,on,src,data,href,“进行了过滤,并且在尝试的时候关键字双写不管用。那么这里直接选择不去闭合标签,直接使用伪协议,但是发现javascript也被拆开了。这里可以对伪协议中的字母进行转码。

构造攻击代码:

javasc&#x72;&#x69pt:alert(/xss/)

image-20230825191629996

level9

发现这关和上一关中的页面差不多,使用上一关构造的攻击代码

javasc&#x72;&#x69pt:alert(/xss/)

页面没有任何响应,查看页面源代码

image-20230825193154712

查看源码

image-20230825192322280

先写一个正确的链接,然后点击友情链接,页面可以正常跳转

image-20230825193718767

查看页面源代码,这里显示出正常了链接地址。

image-20230825193835682

源代码

image-20230825194442563

这里查看我们注入的代码中是否有http://,如果包含则执行else中的语句,将我们构造的攻击代码输入到href中,如果不包含则在a标签中的href显示指定字符串。

strpos — 查找字符串首次出现的位置。

构造攻击d代码,将http://加入到alert的()中。

javasc&#x72;&#x69pt:alert('http://')

image-20230825194306352

level10

先输入攻击代码查看页面响应

http://127.0.0.1/xsschallenge/level10.php?keyword=<script>alert(/wuhu/)</script>

image-20230825195538217

页面没有任何反应,查看网页源代码,发现了三个隐藏的输入框参数分别为t_link,t_history,t_sort。

image-20230825201321062

尝试给这三个参数赋值

image-20230825202843388

发现只有t_sort有值

image-20230825202902647

查看源代码

image-20230825203102415

这里对左右尖括号进行了过滤

那么我们采用给t_sort赋值的方式注入攻击代码:

t_sort=" type="text" onclick = "alert(/xss/)

image-20230825203713782

查看页面源代码,将之前隐藏的输入框显示出来,并且添加了一个数据鼠标点击事件。

image-20230825203942686

然后点击输入框后弹框

image-20230825203733373

level11

image-20230825204534435

和level10相似,直接查看网页源代码

image-20230825204627076

分别给t_link,t_history和t_sort赋值

image-20230825205259915

发现还是只有t_sort有值

按照上一关的思路进行构造攻击代码

t_sort=" type="text" onclick = "alert(/xss/)

页面还是没有反应,查看源代码

image-20230825205430630

发现提交给t_sort的参数被过滤了。

查看源码,既然t_sort不行,这里尝试使用t_ref参数。

image-20230825210732688

t_ref中的value参数获取的是 s t r 33 , str33, str33str33变量获取的是 s t r 22 , str22, str22str22变量获取的是 s t r 11 , str11, str11str11变量获取的是HTTP_PEFERER参数。

修改Referer字段,在该字段构造我们的攻击代码

" type="text" onclick = "alert(/xss/)

image-20230825211959390

点击输入框

image-20230825212645972

弹框如下

image-20230825212653017

level12

查看源代码

image-20230825212924543

发现这次传递的是USER_AGENT参数

修改USER_AGENT字段,在该字段构造我们的攻击代码

" type="button" onclick = "alert(/xss/)

image-20230825213109998

点击页面中的按钮,弹框如下

image-20230825213125088

level13

查看源代码

image-20230825213211120

发现这次传递的是COOKIE参数

修改COOKIE字段,在该字段构造我们的攻击代码

" type="button" onclick = "alert(/xss/)

image-20230825213400285

点击页面中的输入框,弹框如下

image-20230825213410007

http://www.lryc.cn/news/147827.html

相关文章:

  • 考生作弊行为分析算法
  • Python 操作 Redis 数据库介绍
  • 十年JAVA搬砖路——软件工程概述
  • 前后端项目部署上线详细笔记
  • Android 蓝牙开发( 二 )
  • C#调用barTender打印标签示例
  • Spring——Spring读取文件
  • 这是一条求助贴(postman测试的时候一直是404)
  • 信号完整性分析基础知识之有损传输线、上升时间衰减和材料特性(四):有损传输线建模
  • elk日志收集系统
  • perl 语言中 AUTOLOAD 的用法
  • 服务器放在香港好用吗?
  • C++设计模式_01_设计模式简介(多态带来的便利;软件设计的目标:复用)
  • Docker技术--WordPress博客系统部署初体验
  • 提高代码可读性和可维护性的命名建议
  • Docker基础入门:Docker网络与微服务项目发布
  • Docker安装详细步骤
  • 十六、pikachu之SSRF
  • 最新PHP短网址生成系统/短链接生成系统/URL缩短器系统源码
  • 漱玉平民大药房:多元化药店变革的前夜
  • 如何实现AI的矢量数据库
  • Java与Modbus-TCP/IP网络通讯
  • 音视频 ffmpeg命令图片与视频互转
  • C++的基类和派生类构造函数
  • C语言中对json格式数据的解析和封装
  • RT-Thread自动初始化机制
  • 在本地搭建Jellyfin影音服务器,支持公网远程访问影音库的方法分享
  • 强盛集团面试题实战(持续更新)
  • golang 协程的实现原理
  • go gin 参数绑定常用验证器