Pikachu靶场--XSS

参考借鉴

Pikachu靶场之XSS漏洞详解_pikachu xss-CSDN博客

一个视频讲清楚XSS跨站脚本(CTF教程,Web安全渗透测试入门)_bilibili

反射型xss(get)

输入payload:<script>alert(123)</script>

解决一:在URL框内输入

解决二:修改最大长度

再次输入payload:<script>alert(123)</script>

成功弹窗

F12打开开发者工具,发现payload被注入

反射型xss(post)

首先登录

输入payload:<script>alert(document.cookie)</script>

成功弹窗

存储型xss

输入payload:<script>alert(document.cookie)</script>

成功弹窗

F12查看一下源代码

复制网址

刷新页面或者用其他浏览器来到本页面,也出现同样的弹框,

说明存储型XSS能危害所有访问该页面的用户

DOM型xss

F12分析源码

利用了DOM将字符串进行了拼接并把值给a标签中的href,然后输出一个what do you see?

可以利用已知条件构建payload

<a href='' οnclick='alert(123)'>'>what do you see?</a>

Payload为:

'οnclick='alert(123)'>

<a href=''><img src=''οnerrοr='alert(123)'/>'>what do you see?</a>

Payload为:

'><img src=''οnerrοr='alert(123)'/>

输入上面的payload

成功弹窗

DOM型xss-x

提交之后的内容跑到URL里面去了(这是和上一关的不同)

F12查看源码

分析可知这题跟上题一样,也是利用了DOM将字符串进行拼接并把值给a标签的href

<a href='' οnclick='alert(123)'>'>what do you see?</a>

Payload为:

'οnclick='alert(123)'>

<a href=''><img src=''οnerrοr='alert(123)'/>'>what do you see?</a>

Payload为:

'><img src=''οnerrοr='alert(123)'/>

成功弹窗

DOM型XSS只在前端,与后端毫无关系。DOM-X型危害更大,它能够像反射型一样在URL中体现,将URL发给了受害者就能进行攻击

xss之盲打

F12查看源码

查看提示

登录

登录成功

输入payload:<script>alert(document.cookie)</script>

成功弹窗

xss之过滤

输入payload:<script>alert(123)</script>

找出被过滤的内容

被过滤的内容是<*script,那就不用< script>标签,尝试使用别的标签

<a herf="#" οnclick="alert(document.cookie)">

成功弹窗

xss之htmlspecialchars

htmlspecialchars函数是 PHP 中的一个内置函数,它将特定的HTML字符转换为HTML实体字符

例如:htmlspecialchars( "<script>") 输出结果为:&lt;script&gt; 因此<script>脚本就不会起作用

Ctrl+U查看源码

验证了htmlspecialchars函数的作用,可以用单引号闭合,PHP8.0之前不会转译单引号

输入payload:' οnclick='alert(1)'

成功弹窗

xss之href输出

输入payload:<script>alert(123)</script>

Ctrl+U查看源码,Ctrl+F搜索关键词,发现输入的payload已经被转译

输入payload:' οnclick='alert(1)'

换成单引号试试,发现还是被转译

<a>标签中href属性值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了<a>标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表

因此可以在<a>标签中添加JS代码段

输入payload:javascript:alert(document.cookie)

成功弹窗

xss之js输出

输入payload:<script>alert(123)</script>

Ctrl+U查看源代码,Ctrl+F查找关键词

刚刚输入的东西跑到<script>标签内了,并且没有被编码

现在只需要插入一条JS语句就好了,用';闭合掉当前的语句,然后插入新语句,然后再用//注释掉老语句遗留下来的';

输入payload:';alert(123);//

成功弹窗

相关推荐
缘友一世16 小时前
漏洞扫描POC和web漏洞扫描工具
网络·安全·web安全
Moshow郑锴16 小时前
CSP 配置指南:SpringBoot/Express 实操 + 多域名适配,防 XSS 攻击超简单
spring boot·express·xss
清风细雨_林木木17 小时前
HttpOnly 是怎么防止 XSS 攻击的?
前端·xss
合作小小程序员小小店19 小时前
Web渗透之身份认证与访问控制缺陷(越权(水平垂直),访问控制(没有验证),脆弱验证(Cookie,JWT,Session等))
安全·web安全·网络安全·asp.net·网络攻击模型
huluang19 小时前
网络安全等级保护要求(10+4 层面)记忆总结
服务器·网络·web安全
kali-Myon1 天前
NewStarCTF2025-Week2-Web
web安全·sqlite·php·web·ctf·文件上传·文件包含
旺仔Sec1 天前
新疆维吾尔自治区第一届“丝路杯”网络安全大赛暨2026年新疆职业院校技能大赛网络安全赛项竞赛样题
安全·web安全
嗨丶王哪跑2 天前
网络安全主动防御技术与应用
运维·网络·安全·web安全
火白学安全2 天前
《Python红队攻防脚本零基础编写:入门篇(一)》
python·安全·web安全·网络安全·系统安全
好家伙VCC2 天前
**发散创新:渗透测试方法的深度探索与实践**随着网络安全形势日益严峻,渗透测试作为评估系统安全的
java·python·安全·web安全·系统安全