rust-web编译题型
rust在线编译项目常见漏洞近年来,随着Rust语言在高性能、内存安全等领域的优势被广泛认可,越来越多的开发者选择将其应用于后端开发,尤其在WebAssembly、微服务和高并发场景中表现亮眼。然而,Rust生态的快速扩张也带来了新的安全挑战:尽管语言本身通过所有权机制规避了内存安全问题,但Web应用层的逻辑漏洞(如SQL注入、身份验证绕过)、第三方库的潜在缺陷(如未充分审计的unsafe代码滥用)以及对安全实践的过度自信(如忽略输入验证或错误配置CORS策略),正在导致Rust相关的Web安全问题逐渐浮出水面。社区亟需在享受Rust底层安全红利的同时,建立更完善的安全开发规范,加强依赖库审计,并推动Web框架的漏洞响应机制,以应对日益复杂的安全威胁。而本次就是在阿里ctf中出现的一道rust编译类题目,故总结了一套相关的相关知识。
跨项目引用在Rust生态中,Cargo.toml文件如同项目的中枢神经,扮演着至关重要的清单(Manifest)角色。其不仅是一份静态的配置文件,还是是开发者与Rust编译工具链(Cargo)之间的核心。通过toml,开发者能够以声明式语法精确控制项目—— ...
安全开发-mcp-learn-1
什么是MCPMCP 起源于 2024 年 11 月 25 日 Anthropic发布的文章:Introducing the Model Context Protocol。
MCP (Model Context Protocol,模型上下文协议)定义了应用程序和 AI 模型之间交换上下文信息的方式。这使得开发者能够以一致的方式将各种数据源、工具和功能连接到 AI 模型(一个中间协议层),就像 USB-C 让不同设备能够通过相同的接口连接一样。MCP 的目标是创建一个通用标准,使 AI 应用程序的开发和集成变得更加简单和统一。
想象一下没有 MCP 之前我们会怎么做?我们可能会人工从数据库中筛选或者使用工具检索可能需要的信息,手动的粘贴到 prompt 中。随着我们要解决的问题越来越复杂,手工把信息引入到 prompt 中会变得越来越困难。
为了克服手工 prompt 的局限性,许多 LLM 平台(如 OpenAI、Google)引入了 function call 功能。这一机制允许模型在需要时调用预定义的函数来获取数据或执行操作,显著提升了自动化水平。
MCP的结构
MCP Hosts: ...
网鼎杯2024——cardmaster
cardmaster换ld和libc此步骤略,但是可以发现是2.27的版本
逆向分析经过分析得到结构体
函数的功能:
123456789int menu(){ puts(" CARD MASTER"); puts(" 1. init card set"); //利用点 puts(" 2. set info"); //利用点 puts(" 3. get info"); puts(" 4. shuffle!"); return puts(" 5. show cards");}
利用realloc在申请为0时会执行free策略,来进行释放,并且可以double
show这里没有对堆块进行检查,可以直接打印,有点uaf的感觉
攻击方法泄露libc基址第一步利用set_info创建一个0x110的大堆块,然后释放掉得到unsort
这时候还会存在一个tacache bin,然后用init来吧tacache bin清空
123 ...
网鼎杯2024半决赛数据逆向
数据逆向本题是考察流量和逆向的共同分析,开始给了三个附件
查看后分别可以明白这三个文件的作用
traffic.pcap :流量包,经过下面两个软件通信得到的流量
ser:server服务器端,elf文件
cli:客户端,elf文件
主要逻辑
sub_1825
sub_1552
只看server的话,我们就应该去看流量包,找到发出一个key并返回right的流量,之后发送token
traffic.pcap
跟踪到这段流量,但是会发现只有key正确但是没有正确的请求返回解密的包,所以我们需要自己使用它的key来给流量解密
PS: 密码的wireshark!!为什么要在这加空格!!???加空格也就罢了,你还能复制上!!!!!因为空格浪费了近一小时()
解密脚本(注意端序)123456789101112131415161718192021222324252627282930313233343536373839#include<iostream>#include<string>using namespace std;char message[] = { ...
解压某T品牌路由器定制固件bin包的技术分析
背景与问题描述某T品牌路由器使用了定制化的xz压缩格式存储固件,笔者经过研究后,最终实现了固件的提取方法,主要修改包括:
文件头magic值从标准的”\xfd7zXZ”修改为品牌字符串
修改了CRC校验逻辑,增加了反逆向保护
本文将详细介绍如何通过修改xz源码来绕过这些保护机制,成功解压固件。
技术实现步骤1. 环境准备
获取xz源码(xz-5.6.2版本)
研究标准xz文件格式规范(官方文档)
2. 源码逆向修改需要修改以下文件中的CRC校验逻辑:
2.1 修改magic值xz-5.6.2/src/liblzma/common/stream_flags_common.c:
12// 修改magic值为品牌特定值,绕过固件校验const uint8_t lzma_header_magic[6] = { 品牌字符串 };
2.2 绕过各部分的CRC校验stream_flags_decoder.c:
1234567891011121314151617181920212223// 修改stream header校验逻辑// 原逻辑:当CRC校验通过时返回错误// ...
A-T-Field-豪猪两难
豪猪的身上有刺,当豪猪想要靠近为他人提供暖的时候身上的刺却又会不情愿的刺到对方。 套用在人身上,似乎也是如此。所谓成为大人,就是在反复的接近和远离中找到互不伤害对方的距离。