一次授权测试引起的全域名沦陷
前言
本次渗透测试为授权渗透测试,
提示:不许危害到任何用户,盗取任何人的密码信息,以及不允许危害到服务器权限。
点击→【查看学习资料】←
草率的信息收集
因为只发了一个域名,提供给我们进行学习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服务器密码复用问题可以看到是多么的可怕。交作业,收工!
↓ ↓
【网络安全学习资料·攻略】
一次授权测试引起的全域名沦陷相关推荐
- tomcat webapps目录文件都能删吗_详细测试实现Tomcat根域名访问的场景,看这篇文章就够了...
写在前面的话 首先吐槽一下,我发现国内的博客大多是垃圾,完全没有人测试代码,就在那瞎扯淡,如果你看到别的地方说的跟我的文章说的不一样,请以我这篇为准,因为我每个场景都经过N次测试,确保没有问题! 场景 ...
- 如何进行微信登录授权测试?
准备工作 移动应用微信登录是基于OAuth2.0协议标准 构建的微信OAuth2.0授权登录系统.在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的移动应 ...
- 测试案例设计-账户名登陆、QQ登陆、测试水杯
目录 账户名和密码登陆测试 QQ登陆的测试用例 百度云盘APP核心功能需求分析 账户名和密码登陆测试 首先根据登陆这个需求的流程来分析:输入账户名.密码.验证码的测试点 输入正确的账户名.密码.验证码 ...
- android 微博分享需要测试账号密码,Android社交登录授权、分享SDK,支持微信、微博和QQ...
社交登录授权,分享SDK 支持微信.微博.QQ登录授权 微信好友.微信朋友圈.微博.QQ好友.QQ空间分享 Gradle compile 'com.elbbbird.android:socialsdk ...
- 【网络安全】一次授权的渗透测试
前言 前不久的一次授权测试中,感觉缺少任何一步都无法达到getshell的目的,单个漏洞看得话确实平平无奇,但是如果组合起来的话也许会有意想不到的化学效应. [学习资料] 前期测试 拿到这个站的时候一 ...
- [微信开发] 微信网页授权Java实现(https://www.cnblogs.com/lovebread/p/5513241.html)
功能:主要用于在用户通过手机端微信访问第三方H5页面时获取用户的身份信息(openId,昵称,头像,所在地等..)可用来实现微信登录.微信账号绑定.用户身份鉴权等功能. 开发前的准备: 1.需要有一个 ...
- 微信开发一--网页授权
功能: 主要用于在用户通过手机端微信访问第三方H5页面时获取用户的身份信息(openId,昵称,头像,所在地等..)可用来实现微信登录.微信账号绑定.用户身份鉴权等功能. 一.开发前的准备: 1.需要 ...
- 微信公众平台OAuth2.0授权
2019独角兽企业重金招聘Python工程师标准>>> 微信公众平台OAuth2.0授权详细步骤如下: 1. 用户关注微信公众账号. 2. 微信公众账号提供用户请求授权页面URL. ...
- SSM整合Shiro进行登陆认证和授权详细配置
本篇博客将进行详细介绍Shiro+Spring+SpringMVC+Mybatis+数据库整合并进行登陆认证和授权详细配置. SSM的整合可以参考:https://blog.csdn.net/a745 ...
最新文章
- 求集合/字符串中的所有组合 (C语言)
- android studio发布apk流程
- 【CodeForces - 1047B 】Cover Points (数学,构造,思维)
- Kubernetes-服务连接和暴露(endpoints)(二十)
- linux下NFS、FTP使用讲解
- Pandas读取数据内存优化
- 军工电子产品环境可靠性测试试验实验室GJB150A
- 使用ESXi-Customizer为esxi注入第三方驱动
- RTI_DDS自定义插件开发 5 专属区域(_xxEA)
- 安装可视化linux界面
- vivado实现cameralink接口
- 微单相机和单反相机的区别?摄影入门第一课
- mall-accounts.json ES测试数据
- QML 编译release 报错: qmlcache_loader.cpp:-1: error: undefined reference to `__imp__ZN11QQmlPrivate13qml
- android手机备份恢复出厂设置,安卓手机恢复出厂设置在哪里?史上最全版恢复过程详解...
- php网页的制作,网页制作步骤是什么
- 单片机c语言led灯闪烁程序,单片机LED灯闪烁程序
- 第四章不定积分(∫(e^x)sin²xdx)
- D2D与蜂窝系统间的干扰
- Verilog频率计设计
热门文章
- 成功解决AttributeError: module 'numpy' has no attribute 'integer'
- HighNewTech:重磅!来自深度学习的三位大牛Yoshua、Hinton、LeCun荣获2018年图灵奖
- ML之PLiR之LARS:利用LARS算法求解ElasticNet回归类型(包括类别编码+属性重要程度排序)问题(实数值年龄预测)
- MAT之ELM:ELM实现鸢尾花(iris数据集)种类测试集预测识别正确率(better)结果对比
- 《精通Python设计模式》学习结构型之享元模式
- nyoj11-奇偶数分离
- 第五个神奇的电梯(2)
- 000-SQL Server
- test_bit、set_bit和clear_bit
- ESP8266编译脚本