Pikachu靶场XSS(跨站脚本)演示(含代码审计)

本文详细介绍了XSS(跨站脚本)的三种类型:反射型、存储型和DOM型XSS,并通过实例展示了如何测试和利用这些漏洞。在每个类型的讨论中,包括了构造Payload、源代码分析和漏洞验证等关键步骤,帮助读者深入理解XSS的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:此文章为学习XSS原理,内容繁多


XSS概述

Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;

XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。


一、反射型XSS

特征:一次性、前端执行、不会存储在后端数据库

1、测试特殊字符

首先在输入框输入,'(单引号)、"(双引号)、<>(左右尖括号)、666(数值),目的是为了测试在点击提交时是否被过滤掉,因为输入的内容含有特殊字符。
然后再验证输入的内容有没有被正常输出

在这里插入图片描述

2、分析源代码

右键查看网页源代码,Ctrl+F查询输入的内容666,显示刚刚输入的内容被正常的输出到< html >的< p >标签的原码里面
也就意味着我们输入正确的JavaScript代码它也会原封不动的输出呢?

在这里插入图片描述

3、构造Payload

输入框里构造一个简单的Payload(有效载荷),< script>alert(‘xss’)</ script>(这里因为网站的原因在俩个<>尖括号后面多打了个空格,练习的小伙伴要把空格去掉!)
当我输入一半发现有长度限制,只能输入长度以内的字符
处理方法右键检查,将最大长度"20"改为"200"这样就能输入更多的内容

在这里插入图片描述

4、验证漏洞

继续输入Payload(有效载荷),< script>alert(‘xss’)< /script>,点击提交按钮
发现我刚刚提交的JavaScript代码在浏览器里面输入输出后,成功执行,按照我的预期弹出XSS的字符。这个就是一个反射型XSS

在这里插入图片描述


二、存储型XSS

1、留言测试

特征:持久性的、前端执行、存储在后端数据库
切换到存储型XSS栏目,能看到界面有一个留言板,在留言板输入,111、'"<>!666(含有特殊字符的内容),点击提交,发现留言会存储在页面上,点击刷新能看到留言会一直存在,也就是说我们提交的留言是被后台存储在数据库里面
在这里插入图片描述

2、分析源码

查看网页源代码,我们输入带有特殊符号的字符,输出在< p>标签里面,和反射型XSS输出的方式是一样,看样子也是没有任何过滤和转义的处理

在这里插入图片描述

3、测试

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值