资讯专栏INFORMATION COLUMN

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

wujl596 / 3080人阅读

摘要:如图遗憾的是开发人员并没有添加一项找回密码这样的功能。如图居然真的存在密钥复用问题,那么回到主站点成功污染站点,通过观察,该域名下的站点的指向全部都在该服务上,那么全站沦陷。

前言

本次渗透测试为授权渗透测试,

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

点击→【查看学习资料】←

草率的信息收集

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

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

A域名泄露源码问题

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

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


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

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

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

如图:

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

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

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

B域名一处未授权访问

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

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

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

C域名一个未知上传点

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

一处逻辑漏洞

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

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

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

令人激动的在线代码运行

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

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

如图:

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

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


看来是白白高兴一场。不过服务器是docker自有docker的利用方式。【点击查看资料

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

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

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

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

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

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


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

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

例如:


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

OSS导致的全域名XSS沦陷

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

那么抓包:

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

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


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


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

如图:

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

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

漏洞提交

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

↓ ↓

网络安全学习资料·攻略

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/122974.html

相关文章

  • 容易遭受DDoS攻击的几种情况

    摘要:我们知道黑客攻击也是有成本的,他们不会毫无目的做无用功,那么哪些情况容易成为攻击目标呢让我们来归纳一下同行竞争。通常在遭受黑客攻击的时候得不到法律保护。 前几天俄罗斯国家最大银行、域名服务商DYN遭受大规模DDoS攻击,引起了网络安全领域不小的震荡。 据某大型互联网企业公布,在其多项业务中,DDoS主要的攻击对象(74.7%)是在线游戏,15.1%及9.7%分别为DNS服务及Web服务...

    陆斌 评论0 收藏0
  • 函数计算搭建 Serverless Web 应用(三)- 三分钟搭建 Web 应用

    摘要:摘要本文对使用自定义域名触发器搭建应用的步骤进行详细介绍,手把手带您三分钟搭建稳定可靠的应用。函数计算搭建应用一触发器中阐述了应用是函数计算很重要的一个使用场景。 摘要: 本文对使用自定义域名 + HTTP 触发器搭建 Web 应用的步骤进行详细介绍,手把手带您三分钟搭建稳定可靠的 Web 应用。 简介阿里云 函数计算(Function Compute) 是事件驱动的全托管计算服务,是...

    ybak 评论0 收藏0
  • 【渗透测试自学系列】——邮件协议是如何被安全人员利用的?

    摘要:不启用时端口号为,启用时端口号多为或。,即交互式邮件存取协议,它是跟类似邮件访问标准协议之一。域名密钥识别邮件是一种检测电子邮件发件人地址伪造的方法。 大家好,我是Lex 喜欢欺负超人那个Lex 擅长领域:python开发、网络安全渗透、Windows域控Exchange架构 代码干...

    rockswang 评论0 收藏0
  • VueJs单页应用实现微信网页授权及微信分享功能

    摘要:在实际开发中,无论是做端端还是微信公众号等类型的项目的时候,或多或少都会涉及到微信相关的开发,最近公司项目要求实现微信网页授权,并获取微信用户基本信息的功能及微信分享的功能,现在总算完成了,但开发过程中遇到好几个坑。 在实际开发中,无论是做PC端、WebApp端还是微信公众号等类型的项目的时候,或多或少都会涉及到微信相关的开发,最近公司项目要求实现微信网页授权,并获取微信用户基本信息的...

    doodlewind 评论0 收藏0
  • VueJs单页应用实现微信网页授权及微信分享功能

    摘要:在实际开发中,无论是做端端还是微信公众号等类型的项目的时候,或多或少都会涉及到微信相关的开发,最近公司项目要求实现微信网页授权,并获取微信用户基本信息的功能及微信分享的功能,现在总算完成了,但开发过程中遇到好几个坑。 在实际开发中,无论是做PC端、WebApp端还是微信公众号等类型的项目的时候,或多或少都会涉及到微信相关的开发,最近公司项目要求实现微信网页授权,并获取微信用户基本信息的...

    BicycleWarrior 评论0 收藏0

发表评论

0条评论

wujl596

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<