0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一次授权测试引起的全域名沦陷

jf_hKIAo4na 来源:菜鸟学安全 2023-07-03 09:57 次阅读

0x00 前言

本次渗透测试为授权渗透测试,为此笔者还与开发人员交了个好朋友。

要求:不许危害到任何用户,盗取任何人的密码信息,以及不允许危害到服务器权限。

PS:该次渗透测试为师生关系。

82f99132-1939-11ee-962d-dac502259ad0.jpg

好像是因为企业入驻学校的原因,班里所有人被安排上了一门培训课程,给学生们在线学习Python

0x01 草率的信息收集

因为班长只发了一个域名,提供给我们进行学习Python,所以此时笔者首先使用layer进行爬取域名。

8310703c-1939-11ee-962d-dac502259ad0.jpg

在这里笔者发现几个敏感的点如下:

A域名泄露源码问题

831fe01c-1939-11ee-962d-dac502259ad0.jpg

可以看到,这种站点模拟了github,笔者在想,会不会这些站点里的源代码搭建到目前收集到的某些域名?

结果发现这些都是go语言编写的,这是在劝退笔者。如图:

83305226-1939-11ee-962d-dac502259ad0.jpg

不过这里话同时记录了用户名。

8341e6bc-1939-11ee-962d-dac502259ad0.jpg

**le5,为此笔者进行收集了一些用户名。

83526ab4-1939-11ee-962d-dac502259ad0.jpg

观察到登录接口,没有验证码。那么进行爆破操作。

如图:

83699fa4-1939-11ee-962d-dac502259ad0.jpg

观察HTTP请求包,发现有csrf验证token,但是token在cookie中,如图:

837719f4-1939-11ee-962d-dac502259ad0.jpg

这样就不需要特地的去准备python脚本了。爆破之:

83863588-1939-11ee-962d-dac502259ad0.jpg

这里因为web有记录时间戳的功能,影响了BurpSuite包返回长度,那么爆破就需要特意的编写python脚本,并且爆破的效率看起来也一般般,先把这条路放到最后。

B域名一处未授权访问

在B站点中,笔者访问一下第一眼显示管理界面,然后突然就发生了跳转,查看源代码:

8394bfa4-1939-11ee-962d-dac502259ad0.jpg

存在跳转操作,那么禁用js:

83a80adc-1939-11ee-962d-dac502259ad0.jpg

但是点来点去发现都是白页,先不去研究。

C域名一个未知上传点

83bc3124-1939-11ee-962d-dac502259ad0.jpg

但是是无任何东西的,上传点也是坏的,上传记录也是空,目测开发到一半程序员跑路了。

0x02 一处逻辑漏洞

转了一圈回来倒是收集了点信息,因为目标的站点我是可以使用我自己的学号的。那么登录之,发现存在绑定手机号的功能,如图:

83d1bdf0-1939-11ee-962d-dac502259ad0.jpg

看到这里大家懂得都懂,4位数验证码爆破可成功。如图:

83dba31a-1939-11ee-962d-dac502259ad0.jpg

遗憾的是开发人员并没有添加一项“找回密码”这样的功能。那么这个绑定手机号也没什么意义了。

0x03 令人激动的在线代码运行

因为是在线学习python,那么笔者在web中翻到了一处“在线代码运行”,如图:

83ed7c3e-1939-11ee-962d-dac502259ad0.jpg

发现进行了过滤,那么使用__import__函数进行绕过。

如图:

83fb8a40-1939-11ee-962d-dac502259ad0.jpg

运行之,在此whoami问候,如图:

841de95a-1939-11ee-962d-dac502259ad0.jpg

惊喜的发现是root权限,查看一下根目录是否存在docker文件,如图:

842795a4-1939-11ee-962d-dac502259ad0.jpg

看来是白白高兴一场。不过服务器是docker自有docker的利用方式。

先看一下os的过滤是什么样的:

8434af28-1939-11ee-962d-dac502259ad0.jpg

居然使用ast抽象语法树来进行过滤,这里笔者简单说一下有如下种绕过方式:

1.刚刚所说的__import__方法
2.使用eval方法来进行拼接字符
3.使用python的沙箱逃逸
4.使用未过滤的subprocess
5.使用 from os import system 来进行绕过等

通过查看nodejs源代码。发现该功能模块是通过“前端->websocket->nodejs->执行python”,是这种流程,那么观察验证点,如图:

8445059e-1939-11ee-962d-dac502259ad0.jpg

这里有一处token验证,这里的token是该站点的HTTP头的token,如图:

845d9e06-1939-11ee-962d-dac502259ad0.jpg

故与账号凭证绑定的死死的,不存在漏洞。下面还有一处原型链污染,但是无法自定义设置key,也是挺可惜的,如图:

8475fb18-1939-11ee-962d-dac502259ad0.jpg

Package.json文件中也没发现什么库导致的漏洞,这里nodejs的研究告一段落。

但是目前该站点为多用户一服务。也就是说,A用户指向websocket服务器,B用户同样也指向websocket服务器。所以这台docker服务器可以帮助我们触发XSS。

例如:

8487cb40-1939-11ee-962d-dac502259ad0.jpg

将这里插入xss代码,然后重启node服务即可,实战中笔者并没有这么做,因为触发了用户隐私。

0x04 OSS导致的全域名XSS沦陷

在前期的一些简单的信息收集中,所发现的B域名的一处未授权访问中,发现一处在线代码编辑器。如图:

8493ace4-1939-11ee-962d-dac502259ad0.jpg

那么抓包:

84a489ec-1939-11ee-962d-dac502259ad0.jpg

可以看到,key随着我们所上传的文件发送到目标存储站点,在OSS中,文件虽然不会被编程语言所解析,但是却不会验证任何后缀,上传也不会被重名。也就是一个简单的存储文件功能而已。

那么在这里,笔者发现该域名下随便一个站点都有引入OSS的站点的js脚本,如图:

84b1418c-1939-11ee-962d-dac502259ad0.jpg

但是目前的文件上传的OSS服务器并不是指明了js的OSS服务器,那么如果这两台的服务器的密钥设置都是一样的话,那么就会造成A站点与B站点的key是一样的,具体攻击思路如下:

84c3e6b6-1939-11ee-962d-dac502259ad0.jpg

如果密钥一样的情况下,我们借用OSS A的key来上传恶意js脚本,替换掉OSS B原有的js脚本,这里就可以产生一个XSS漏洞。那么笔者进行尝试。

如图:

84d23914-1939-11ee-962d-dac502259ad0.jpg

居然真的存在密钥复用问题,那么回到主站点:

84e8867e-1939-11ee-962d-dac502259ad0.jpg

成功污染站点,通过观察,该域名下的站点的js指向全部都在该OSS服务上,那么全站沦陷。

0x05 漏洞提交

至此整个漏洞过程完美结束,OSS服务器密码复用问题可以看到是多么的可怕。交作业,收工!

8501cac6-1939-11ee-962d-dac502259ad0.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8986

    浏览量

    85120
  • 渗透
    +关注

    关注

    0

    文章

    19

    浏览量

    6269
  • python
    +关注

    关注

    55

    文章

    4777

    浏览量

    84404

原文标题:实战 | 一次授权测试引起的全域名沦陷

文章出处:【微信号:菜鸟学安全,微信公众号:菜鸟学安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    [推荐]注册中文域名,买得六

    一次性注册5年,在多年优惠的基础上返款20元/个一次性注册10年,在多年优惠的基础上返款50元/个 立即注册 域名 注册域名 申请域名
    发表于 11-18 16:47

    循环充放电一次就是少一次寿命吗?

    循环充放电一次就是少一次寿命吗?循环就是使用,我们是在使用电池,关心的是使用的时间,为了衡量充电电池的到底可以使用多长时间这样个性能,就规定了循环
    发表于 09-07 02:06 2036次阅读

    一次电池为什么不能被充电?

    一次电池为什么不能被充电? 一次电池不能被充电再生是构成一次电池体系的本性所决定的,因为一次电池的电极反应不可逆,也就是说,放电后的放电产
    发表于 10-28 15:29 5802次阅读

    循环充放电一次就是少一次寿命吗?

    循环充放电一次就是少一次寿命吗?     循环就是使用,我们是在使用电池,关心的是使
    发表于 11-11 13:59 844次阅读

    电池循环充放电一次就是少一次寿命吗?

    电池循环充放电一次就是少一次寿命吗? 循环就是使用,我们是在使用电池,关心的是使用的时间,为了衡量充电电池
    发表于 09-06 11:05 3592次阅读

    一次电源监控功能性能测试规范下载

    某全球500强企业研发内部一次电源控制功能性能测试规范
    发表于 03-02 11:56 1次下载

    怎样通过测试判断变压器的一次绕组和二绕组

    绕组是变压器电路的主体部分,绕组又可分为一次绕组和二绕组。一次绕组是与电源相连的电阻,能够从电源接受能量;二绕组是与负载相连的绕组,主要是给负载提供能量的。那么
    的头像 发表于 09-04 09:30 2.3w次阅读

    APP时代域名到底还重不重要

    随着APP的快速发展,不少米友抱怨目前域名行情大不如前。更有不少米友对域名行业的前景心存疑虑,同时还有很多粉丝一次次对我说:现在都APP时代了,谁还去看域名?谁还通过
    的头像 发表于 02-03 14:53 2922次阅读

    一次消谐出厂前要进行测试

    相适应。般额定电压在500伏以下的设备,选用500伏或1000伏的摇表;额定电压在500伏及以上的设备,选用1000-2500伏的摇表。10KV以上设备用5000V摇表。 10KV一次消谐出厂前要进行测试,本次
    发表于 02-12 10:37 249次阅读

    电气一次识图基础

    电气一次识图基础
    的头像 发表于 11-12 11:24 2092次阅读

    怎样用摇表来测试一次消谐是否合格

    怎样用摇表来测试一次消谐是否合格 一次消谐器用摇表测试的方法如下: 首先将一次消谐器接线,接上测试
    发表于 02-27 14:35 326次阅读

    一次性无菌注射针针尖韧性测试

    检测一次性使用无菌注射针针管的韧性就需要用到一次性无菌注射针针尖韧性测试仪,今天威夏科技就为您详细讲解一次性无菌注射针针尖韧性测试仪。
    的头像 发表于 01-30 17:23 908次阅读
    <b class='flag-5'>一次</b>性无菌注射针针尖韧性<b class='flag-5'>测试</b>仪

    一次调频和二调频的概念 一次调频可以实现无差调节?

    一次调频和二调频的概念 一次调频可以实现无差调节? 一次调频和二调频的概念 1.
    的头像 发表于 10-17 16:15 8856次阅读

    手表按键力测试机:品质掌握在每一次按键间

    手表按键力测试机:品质掌握在每一次按键间
    的头像 发表于 12-27 09:09 532次阅读
    手表按键力<b class='flag-5'>测试</b>机:品质掌握在每<b class='flag-5'>一次</b>按键间

    基波是一次谐波么 基波与一次谐波的区别

    基波是一次谐波么 基波与一次谐波的区别  基波和一次谐波是两个不同的概念。 基波是在谐波分析中指的是频率最低且没有任何谐波成分的波形,它是构成复杂波形的基础。在正弦波中,基波就是正弦波的本身。基波
    的头像 发表于 04-08 17:11 6141次阅读