数据库利用 看这篇就好了
该篇文章总结了在国家级攻防演练中数据库相关利用,旨在帮助红队选手在拿下数据库权限后快速拓展获取服务器权限、WEB应用权限、数据分数,请勿非法利用。
数据库->服务器权限
建议大家在实战中直接使用工具,当使用工具遇到问题时可通过以下利用步骤进行调试
写入webshell到网站目录
利用条件
secure-file-priv参数为空或者为网站根路径
知道网站的绝对路径
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
该篇文章总结了在国家级攻防演练中数据库相关利用,旨在帮助红队选手在拿下数据库权限后快速拓展获取服务器权限、WEB应用权限、数据分数,请勿非法利用。
数据库->服务器权限
建议大家在实战中直接使用工具,当使用工具遇到问题时可通过以下利用步骤进行调试
写入webshell到网站目录
利用条件
secure-file-priv参数为空或者为网站根路径
知道网站的绝对路径
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
fastjson 读文件 gadget 的利用场景扩展
此前有师傅在 blackhat 的 fastjson 议题上分享了 1.2.68 版本的几个 gadget。其中比较有意思的一个是用来读文件的。我要写的内容是以这个 gadget 作为基础的,所以先讲一下这个 gadget。
只需要跟进到代码里看一下就知道为什么可以读文件了。
首先从 org.apache.commons.io.input.BOMInputStream 开始看。
BOMInputStream 的构造方法可以传递一个 InputStream 类型的 delegate 和 ByteOrderMark 数组 boms。
这一段是用了 fastjson 的 JSONPath 引用特性,通俗的讲就是去调用 JSON 对象中 abc 的 bom 属性,这里 abc 是被实例化的 BOMInputStream 对象。所以调用的就自然是 BOMInputStream 类的 getBom 成员方法。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
此前有师傅在 blackhat 的 fastjson 议题上分享了 1.2.68 版本的几个 gadget。其中比较有意思的一个是用来读文件的。我要写的内容是以这个 gadget 作为基础的,所以先讲一下这个 gadget。
只需要跟进到代码里看一下就知道为什么可以读文件了。
首先从 org.apache.commons.io.input.BOMInputStream 开始看。
BOMInputStream 的构造方法可以传递一个 InputStream 类型的 delegate 和 ByteOrderMark 数组 boms。
这一段是用了 fastjson 的 JSONPath 引用特性,通俗的讲就是去调用 JSON 对象中 abc 的 bom 属性,这里 abc 是被实例化的 BOMInputStream 对象。所以调用的就自然是 BOMInputStream 类的 getBom 成员方法。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
通用的设定
Trace-Id
包括现实很多地方都会存在类似于Trace-Id 的东西,它们只有一个目的,追踪请求的流转。在本题中,你可以通过Trace-Id 来判断这个请求是否到达到backend。
A-ginx
2021 ByteCTF 初赛部分题目官方Writeup
XSS
既然提供了bot,那必然有XSS。不管通过那些途径,你可以找到两个XSS点
POST型XSS点 /v/articles/preview
展示article中的 htmlContent 是另一个XSS点
但是这两个点都不能独立的完成XSS,一个是POST型无法触发,另一个因为输入中有HTMLSanitize来进行过滤。
缓存服务
观察各个API,你会发现在/static/ 下的请求,会进行缓存,并出现cache-key。这个请求头没有Trace-Id,也表示它是直接的被缓存在了A-ginx端中。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
Trace-Id
包括现实很多地方都会存在类似于Trace-Id 的东西,它们只有一个目的,追踪请求的流转。在本题中,你可以通过Trace-Id 来判断这个请求是否到达到backend。
A-ginx
2021 ByteCTF 初赛部分题目官方Writeup
XSS
既然提供了bot,那必然有XSS。不管通过那些途径,你可以找到两个XSS点
POST型XSS点 /v/articles/preview
展示article中的 htmlContent 是另一个XSS点
但是这两个点都不能独立的完成XSS,一个是POST型无法触发,另一个因为输入中有HTMLSanitize来进行过滤。
缓存服务
观察各个API,你会发现在/static/ 下的请求,会进行缓存,并出现cache-key。这个请求头没有Trace-Id,也表示它是直接的被缓存在了A-ginx端中。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
最初深入研究时,我确实发现 Kubelet 没有使用身份验证,所以我觉得这就是目标。深入研究后发现,这里的 kubelet 仅在本地使用。此外,Kubelet 端口在节点上有一个本地防火墙,用户无法意外禁用它。kubelet 用于使用该--manifest-url选项读取配置文件。这利用 kubelet 在 Dataflow 节点上简单地启动一组容器。事实证明,这是 kubelet 的一个有趣且出乎意料的用途,但基本上没有针对 kubelet 的真正攻击面。
有趣的端口
查看防火墙,发现有一些有趣的端口被打开了。我将其与实际在网络上监听的端口进行了交叉对照
作业启动后,可以在 Dataflow 作业页面中看到。虚拟机节点也将在 Compute Engine 控制台中可见。默认情况下,会分配一个公共 IP,并且对该 IP 的访问受 VPC 防火墙控制
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
有趣的端口
查看防火墙,发现有一些有趣的端口被打开了。我将其与实际在网络上监听的端口进行了交叉对照
作业启动后,可以在 Dataflow 作业页面中看到。虚拟机节点也将在 Compute Engine 控制台中可见。默认情况下,会分配一个公共 IP,并且对该 IP 的访问受 VPC 防火墙控制
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
❤1
CVE-2021-4034 pkexec 本地提权
Qualys 近期公开了一个影响众多 Linux 发行版,而且利用效果极其稳定的 Polkit 漏洞 CVE-2021-4034。
目前网络上已经出现完整 PoC。
Ubuntu、Debian、Fedora 和 CentOS 的默认安装环境上均测试通过。漏洞利用难度不高,最早引入问题的 commit 来自 2009 年,影响版本范围远超去年的 sudo 漏洞。反正我自己的虚拟机和 VPS 无一幸免。
这个漏洞是本地触发,只有在获得有限权限的前提下提升至 root。请大家综合考虑自己的业务影响做好升级工作。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
Qualys 近期公开了一个影响众多 Linux 发行版,而且利用效果极其稳定的 Polkit 漏洞 CVE-2021-4034。
目前网络上已经出现完整 PoC。
Ubuntu、Debian、Fedora 和 CentOS 的默认安装环境上均测试通过。漏洞利用难度不高,最早引入问题的 commit 来自 2009 年,影响版本范围远超去年的 sudo 漏洞。反正我自己的虚拟机和 VPS 无一幸免。
这个漏洞是本地触发,只有在获得有限权限的前提下提升至 root。请大家综合考虑自己的业务影响做好升级工作。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
SSL证书扩展
通过前面的步骤我们已经收集到大量的根域名信息了,但是还是有一些域名它没有工商备案信息,域名也是新注册的开启了隐私保护从Whois历史数据中也没办法找到关联方法。那我们就需要通过域名关联到的端口服务资产中去寻找一些关联特征了,但是一般我们在关联前无法确定需要扫描的IP范围,就算要扫描成本也是非常高的,庆幸市面上已经有了一些非常成熟的全网资产工具,比如Fofa、Zoomeye、Shodan、censys等等,我们可以借助这些平台来寻找一些域名关联的特征。
以kuaishou.com举例子,企业在申请证书的时候一般会将同类业务域名的申请成一张成熟,一方面是出于成本考虑,还有一方面也是方面对证书进行同一的管理。我们通过查询证书内容包含kuaishou.com的证书信息发现证书的DNS Names中还会有其他的业务域名。请注意我们要排除一些自签的证书,自签名的证书往往内容都是可以填写的,很容易关联到错误的域名。
工商股权信息收集
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
通过前面的步骤我们已经收集到大量的根域名信息了,但是还是有一些域名它没有工商备案信息,域名也是新注册的开启了隐私保护从Whois历史数据中也没办法找到关联方法。那我们就需要通过域名关联到的端口服务资产中去寻找一些关联特征了,但是一般我们在关联前无法确定需要扫描的IP范围,就算要扫描成本也是非常高的,庆幸市面上已经有了一些非常成熟的全网资产工具,比如Fofa、Zoomeye、Shodan、censys等等,我们可以借助这些平台来寻找一些域名关联的特征。
以kuaishou.com举例子,企业在申请证书的时候一般会将同类业务域名的申请成一张成熟,一方面是出于成本考虑,还有一方面也是方面对证书进行同一的管理。我们通过查询证书内容包含kuaishou.com的证书信息发现证书的DNS Names中还会有其他的业务域名。请注意我们要排除一些自签的证书,自签名的证书往往内容都是可以填写的,很容易关联到错误的域名。
工商股权信息收集
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
❤1
我对 Svelte 的看法
Svelte 是什么?
简单来说 Svelte 是一个在编译时实现了 Reactivity (反应式) 的框架,所以它既是一个框架,同时也是一个 Compiler. 如何理解「编译时实现了 Reactivity」?先说说什么是 Reactivity.
JavaScript 没有 Reactivity 的能力,所以即使 let c = a + b, 在改变了 a 或 b 的值之后,c 不会因此而改变。真正的 Reactive 与此相反。
拿 Excel 举例,Excel 是天生 Reactive 的,一个 Excel 里面的单元格,可以编写简单的函数组合其它单元格的值,而组合的结果会随着依赖的单元格改变而自动改变。例如单元格 C1 如果是 =SUM(A1:B1) , 那么 C1 值会随着 A1 或 B1 的值而重新计算和改变。
如果你用过 Vue 或者 MobX, 你应该知道它们实现 Reactivity 的原理:它们使用了 defineProperty 或者 Proxy, 在 setter 这一层做了一些手脚,当对象的某个成员被赋值的时候,执行更新逻辑。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
Svelte 是什么?
简单来说 Svelte 是一个在编译时实现了 Reactivity (反应式) 的框架,所以它既是一个框架,同时也是一个 Compiler. 如何理解「编译时实现了 Reactivity」?先说说什么是 Reactivity.
JavaScript 没有 Reactivity 的能力,所以即使 let c = a + b, 在改变了 a 或 b 的值之后,c 不会因此而改变。真正的 Reactive 与此相反。
拿 Excel 举例,Excel 是天生 Reactive 的,一个 Excel 里面的单元格,可以编写简单的函数组合其它单元格的值,而组合的结果会随着依赖的单元格改变而自动改变。例如单元格 C1 如果是 =SUM(A1:B1) , 那么 C1 值会随着 A1 或 B1 的值而重新计算和改变。
如果你用过 Vue 或者 MobX, 你应该知道它们实现 Reactivity 的原理:它们使用了 defineProperty 或者 Proxy, 在 setter 这一层做了一些手脚,当对象的某个成员被赋值的时候,执行更新逻辑。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
❤1