找到
51
篇与
xioy
相关的结果
- 第 8 页
-
阿里云OSS存储攻击总结 Bucket目录遍历漏洞 漏洞环境搭建 首先登录阿里云,然后依次选择产品-存储-对象存储OSS 进入后可以免费开通,点击开通就好了。因为我已经开通过了,所以没有免费开通的按钮,我这边点击管理控制台。 进入功能后创建存储桶,其中读写权限设置为公共读,然后点击完成创建。 在此时如果选择公有读的话,会出现两种情况: 读写权限单纯设置为公有读或公共读写的情况下,是无法列出对象的。 列出对象,需要在Bucket授权策略中设置:只读(包含ListObject操作)。 具体设置看漏洞复现 情况1漏洞复现 创建完后点击刚刚创建的存储桶-文件列表,即可管理存储桶中的文件。 点击上传文件按钮,上传测试文件。 访问存储桶时发现没有列举刚刚上传的文件。 由于我们刚刚把文件上传的地方在根目录下,所以在域名后面加上文件名(文件名区分大小写)即可下载到文件。 情况2漏洞复现 依次点击刚刚创建的存储桶-Bucket授权策略-新增授权-只读(包含ListObject操作)。 访问存储桶时发现列举了刚刚上传的文件,并且访问文件同样可以下载到文件。 Bucket任意文件上传与文件覆盖漏洞 漏洞环境搭建 依次点击刚刚创建的存储桶-读写权限-公共读写 (这一步可以设置也可以不设置,设置了可以更直观的展现任意文件上传的效果)依次点击刚刚创建的存储桶-Bucket授权策略-新增授权-只读(包含ListObject操作)。 任意文件上传漏洞复现 使用bp通过PUT方式上传一个名为1.txt,内容为1的文件到存储桶中。 访问存储桶时发现列举了刚刚上传的文件。 并且文件内容一模一样,也可以下载到文件。 文件覆盖漏洞复现 使用bp通过PUT方式上传一个名为1.txt,内容改为2的文件到存储桶中。 访问存储桶时发现列举了刚刚上传的文件。 原来1.txt的内容为1,通过重新上传后文件内容被修改为了2。 阿里AccessKeyId、SecretAccessKey泄露漏洞 漏洞描述 AccessKey是阿里云提供给用户的永久访问凭据,包括AccessKey ID和AccessKey Secret两部分。AccessKey ID用于标识用户,AccessKey Secret用于验证用户的密钥,主要用于程序方式调用云服务API12345。用户可以为阿里云账号和RAM用户创建一个访问密钥(AccessKey)1245。在调用阿里云API时您需要使用AccessKey完成身份验证1235。 漏洞复现 泄露的地方有很多例如: 反编译安装包,找到泄露的Key。 网站的源代码、js、heapdump中找到泄露的Key。 GitHub等开源平台中的源代码可发现存在泄露的Key。 这里用我自己的作为示例,假设我的AccessKeyId、SecretAccessKey在某处泄露了攻击者就可以通过工具接管到目标存储桶。 Bucket爆破漏洞 漏洞描述 当不知道存储桶名称时,可以通过爆破获得存储桶名称。这有些类似于目录爆破,只不过目录爆破一般通过状态码判断,而这个通过页面的内容判断。对于阿里云OSS不存在有两种返回情况,分别是InvalidBucketName和NoSuchBucket。 存储桶地址: 样例:https://qazzaq.oss-cn-beijing.aliyuncs.com/ 解释:https://存储桶名称.存储桶地址.aliyuncs.com/漏洞复现 NoSuchBucket:表示没有这个存储桶。 InvalidBucketName:表示存储桶的名称不符合规范,属于无效的存储桶名称。 当存储桶存在时,则会返回以下两种情况: Bucket接管漏洞 漏洞描述 在阿里云下,当存储桶显示NoSuchBucket说明是可以接管的,如果显示AccessDenied则不行。 漏洞复现 假设管理员通过域名解析并绑定了一个存储桶,但是管理员将存储桶删除后,没有将域名解析的CNAME删除,这时会访问域名就会出现NoSuchBucket。因此可以登录自己的阿里云账号,创建同样的存储桶即可。 Bucket特定策略漏洞 漏洞描述 特定的策略配置的指的是,管理员设置了特定的IP、UA才可以请求该存储桶。此时如果错误的配置了GetBucketPolicy,可导致攻击者获取策略配置。 漏洞复现 访问目标发现没有权限。 查看一下存储桶设置的访问策略,可以看到需要符合UserAgent为UzJu才可以访问。 回到bp把UserAgent参数修改为UzJu,即可获取到数据。 Bucket策略配置可写漏洞 漏洞描述 当策略可写的时候,可以把原本不能访问到的数据设置为可访问从而获得敏感数据。 漏洞复现 当我们访问存储桶的时候,会提示我们已经被policy拦截。 如果策略可写时,把Effect中的Deny更改为Allow即可。 随后使用PUT方法上传。 此时就可以访问到存储桶中的信息了。 Bucket修改策略导致网站瘫痪漏洞 漏洞描述 当策略可写的时候,除了上面的将可原本不可访问的数据设置为可访问从而获得敏感数据外,如果目标网站引用了资源文件,而且我们可以对该策略进行读写的话,也可以将原本可访问的资源权限设置为不可访问,这样就会导致网站瘫痪了。 漏洞复现 这是站点正常的样子。 如果可以修改策略,只需要将获取该对象的权限修改为Deny,该网站就无法获取到图片、JS等信息了。 修改后站点已无法获取到信息。
-
BurpSuite抓取微信小程序数据包 配置端口 首先启动BurpSuite,然后点击设置按钮。 自定义设置ip和端口,我这里设置的ip是127.0.0.1,端口是8080 下载证书 设置好后到浏览器把代理地址设置为上一步中的ip和端口,然后访问下面地址,点击CA Certificate按钮下载证书。 http://burp 安装证书 双击证书,点击安装证书进行安装。 选择本地计算机,然后下一步。 点击将所有的证书都放入下列存储,选择受信任的根证书颁发机构,然后点击下一步。 点击完成按钮。 安装完成 配置代理 打开电脑的设置,搜索代理,选择第一个选项。 打开使用代理服务器,并把ip和端口号设置成BurpSuite中设置的ip和端口,然后点击保存。 成功抓到数据包 打开小程序后BurpSuite成功接收到数据包。
-
前端登陆绕过渗透过程 梭哈 站点首页 看到登录框首先测试一下有没有sql注入,一个1'啪就打进去,提示用户名错误,寄。 既然提示用户名错误了那就爆破用户名吧。用户名和密码随便输,抓一个数据包。 点击登录后bp竟然没有任何数据包,立马来精神了。 bp没有数据包有两种情况:一个是bp出故障了、另一个就是站点靠前端校验没有与后端交互,所以没有数据包产生。我可以肯定我的bp不可能出问题的,所以哈哈哈哈哈哈。 梭哈是一种智慧 直接F12大法全局搜索admin字样。喜滋滋账户和密码这不就来了嘛,后台我来了哈哈哈。 屮,好家伙用户名对了密码不对是吧。 现在bp里有数据包了,看一下数据包里的内容。看到result字样相信在座的各位大佬都坐不住了吧。 重新拦截登录的数据包,直接把"result":"false"改成"result":"true"成功登录到后台。 完整代码 ok现在让我看看他具体的代码是怎么判断,让我看看你是怎么秀的。先看看完整代码: IndexComponent.prototype.goLogin = function() { var t = this; if ("" == this.userName || "" == this.passWord) return void (this.toast = "用户名或密码不能为空!"); if ("adminxhsty" != this.userName) return void (this.toast = "用户名错误!"); var n = { code: this.userName, username: encode(this.userName, "thinkgem,jeesite,com"), password: encode(this.passWord, "thinkgem,jeesite,com") }; $(".loading").show(), this.indexService.goLogin(n).then(function(n) { $(".loading").hide(), "true" == n.result ? (t.isLogin = !1, t.onVoted_changelogin.emit(!t.isLogin), sessionStorage.setItem("sessionid", n.sessionid)) : t.toast = n.message }) }分析逻辑 首先定义了一个goLogin方法,var t = this;将当前对象保存在变量t中,这样在后面的异步回调中可以访问该对象的属性和方法。 IndexComponent.prototype.goLogin = function() { var t = this;这段代码首先检查用户名和密码是否为空。如果是空的,则返回:用户名或密码不能为空!。如果用户名不是"adminxhsty",则返回:用户名错误!。 if ("" == this.userName || "" == this.passWord) return void (this.toast = "用户名或密码不能为空!"); if ("adminxhsty" != this.userName) return void (this.toast = "用户名错误!");如果通过了验证,接下来准备一个包含登录信息的对象n: code:使用输入的用户名。 username和password:通过encode函数编码输入的用户名和密码,使用了特定的加密参数"thinkgem,jeesite,com"。 var n = { code: this.userName, username: encode(this.userName, "thinkgem,jeesite,com"), password: encode(this.passWord, "thinkgem,jeesite,com") };接下来,显示页面中的加载动画。然后调用this.indexService.goLogin(n)方法,传递准备好的登录信息n,这个方法返回一个Promise对象。当登录请求完成时,执行接下来的动作:根据返回的数据n中的result字段判断登录是否成功。如果n.result是字符串"true",则表示登录成功。如果n.result是字符串"false",则显示相应的错误消息。 $(".loading").show(), this.indexService.goLogin(n).then(function(n) { $(".loading").hide(), "true" == n.result ? (t.isLogin = !1, t.onVoted_changelogin.emit(!t.isLogin), sessionStorage.setItem("sessionid", n.sessionid)) : t.toast = n.message })
-
使用VMware安装kali虚拟机 获取工具 https://www.kali.org/get-kali/#kali-installer-images教程开始 首先访问下载地址,根据个人需求下载相应版本,我这里下载64位everything版本 打开VMware,点击右上角文件-新建虚拟机,选择自定义,然后下一步 这里选择默认选项,然后下一步 选择稍后安装操作系统,然后下一步 操作系统选择linux,版本选择Debian,然后下一步 自定义虚拟机名字和安装位置,然后下一步 按实际情况配置虚拟机,然后下一步 按实际情况配置虚拟机,然后下一步 保持默认,然后下一步 保持默认,然后下一步 保持默认,然后下一步 保持默认,然后下一步 按实际情况分配空间,选择将虚拟磁盘存储为单个文件,然后下一步 保持默认,然后下一步 点击完成 回到VMware主页,在左侧右击目标,点击设置-CD/DVD-使用ISO映像文件-浏览,选择下载好的kali镜像文件,然后点击确定 点击开启此虚拟机 选择第一个选项,然后下一步 选择中文,然后下一步 选择中国,然后下一步 选择汉语,然后下一步 自定义名字,然后下一步 不做调整,直接下一步 自定义用户名,然后下一步 自定义用户名,然后下一步 自定义密码,然后下一步 选择第一个,然后下一步 选择第一个,然后下一步 选择第一个,然后下一步 选择第二个,然后下一步 选择是,然后下一步 默认,然后下一步 选择是,然后下一步 选择/dev/sda,然后下一步 重启 进入系统后有时还是英文,这时候需要在root状态下输入 dpkg-reconfigure locales 接着滑动鼠标拉到底,找到简体中文的语言包:zh_CN.UTF-8 UTF-8 选择中文语言包,然后回车 设置完成