原理 unlink这个名词是啥? unlink其实是libc中定义的一个宏,在malloc.c(libc2.23)中定义如下: #define unlink(AV, P, BK, FD) { FD = P->fd; B
vm pwn入门1 见过很多次vm的pwn了,打开过好几次,一直没有勇气也没有能力写出来(因为我逆向能力不足),但是最近发现这东西越来越多了,没办法只能硬着头皮写了 首先还是要介绍一下什么是vm pwn,这东西一般代指在程序中实现运算指令来模拟程序的运行(汇编类)或者在程序中自定义运算指令的程序(编译类),而常见的vmpwn就是这两种题型,而常见的漏洞点是越界读写 所以题目的原理很简单,难度基本集
0x01 生成随机数的函数 在c语言中会有这样几个函数 rand() srand() 他们会被用来做一些校验吧,所以我们平时遇到它的时候该怎么去绕过它从而得到我们想要的呢。 首先要了解一下他们: 在C语言中,srand() 函数用于初始化随机数生成器的种子。这个函数定义在 <stdlib.h> 头文件中,它的作用是为 rand() 函数提供一个初始值,从而影响 rand() 生成的
tcache-poisoning攻击 tcache由于省略了很多安全保护机制,所以在pwn中的利用方式有很多,这篇文章我们首先介绍tcache poisoning这种利用方式。 tcache poisoning主要的利用手段是覆盖tcache中的next成员变量,由于tcache_get()函数没有对next进行检查,所以理论上来讲如果我们将next中的地址进行替换,不需要伪造任何chunk结构即
scanf的格式化字符串 做了这么久的格式化字符串,第一次见scanf的格式化字符串,于是做个记录 题目分析 可以看到把read读入的作为scanf的第一个参数,同时要注意一个细节,此时rsi也是指向buf(但是后来发现这个没用。。。) 这个题卡了很久只要是因为网上关于scanf的文章很少,而且也不是漏洞分析,大多是C语言,最后类比printf函数做出来了 exp from pwn im
写在前面 最近的网鼎白虎的一道pwn和源鲁的题撞了,作者一眼看到写入666666也是没什么思路。 后面复现的时候学习到了mp结构体相关的一些内容,在这里直接拿题目和各位分享一下 上图是mp结构体里面的一些内容,mp结构体攻击的核心就是修改tcache_bins的值 让本不应该进入tcachebin的chunk进入tcache从而开展攻击 mp结构体相关知识 当mp_.tcache_bins足够大
编译 我们想要分析一个cython可以从自己编译cython程序开始,通过cython生成的c和ida中的伪代码进行对比来分析实际情况。注意:在windows平台下和linux平台生成cython使用的c编译器不同所以生成出来的代码架构可能会有区别,下文中均以windows平台为样板。 创建pyx文件 pyx文件其实就是以py格式编写的编程内容。 def test(a, b): c = a
SI::CTF-<栈风水>-<signin_vm></signin_vm> 栈风水 保护 [*] '/CTF/sictf/pwn' Arch: amd64-64-little RELRO: Full RELRO Stack: No canary found NX: NX enabled PI
0x01栈迁移前言 对于栈迁移,我觉得简单的解释就是把栈迁移到别的地方从而进行去溢出,可是为什么这么做呢?就是因为栈能够溢出的长度不够,所以要迁移到一个能够写下payload的地方。这里就不讲那么多专业名词。就直接讲需要掌握哪些,怎么学习。 0x02栈迁移要求及原理 首先我们要知道在什么时候来使用栈迁移: 直接上图,这里就可以看到,明显只能够溢出8个字节,是不能够正常构造那些libc的payloa
cJSON 前言 在打PWN题时偶尔会遇到有关JSON的pwn题,之前的强网拟态2024就遇到了,借此机会学习一下。 1. JSON JSON的简介: JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)。但它并不是编程语言,而是一种可以在服务器和客户端之间传输的数据交换格式。 合法的JSON的对象: { "name" : "张三
tcache bin中mp_结构体利用 最近在源鲁杯和网鼎杯看见了 在这写一下 mp_结构体 pwndbg> p mp_ $1 = { trim_threshold = 131072, top_pad = 131072, mmap_threshold = 131072, arena_test = 8, arena_max = 0, n_mmaps = 0, n_m
攻击分析 失陷 Perfctl利用RocketMQ RCE漏洞(CVE-2023-33246 )或2w多种类型的配置错误进行外部攻击以获得shell。 类别 路径计数 示例路径 潜在漏洞 凭据 1,717 /access_credentials.json、/access_keys.json、/accesskeys.php 未经授权访问凭据、敏感令牌或密钥泄露的可能性 配置 12,
环境搭建 注意这个搭建的过程最好使用科学上网 可以减少很多不必要的麻烦 如果是clash for windows 开启TUN模式 depot_tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH="$PATH":`pwd`/depot_tools ninja g
House of Snake 源码 glibc-2.37 删除了 _IO_obstack_jumps 但是添加了 _IO_printf_buffer_as_file_jumps 这个新的 _IO_jumps_t 结构体。 _IO_printf_buffer_as_file_jumps 中只有 __printf_buffer_as_file_overflow 和 __printf_buffer_as
基础知识及简单的编译 在常规的ctf的pwn方向当中,我们常见的汇编都是基于Intel的8086汇编,但是对于很多物联网设备,其实并不都是采取这一种架构,常见如mips架构和arrch64之类,而在pwn题中,这类题型统一称作异架构,这篇文章会介绍mips架构的一些基础知识,所涉及不深,只是起到入门的效果 首先我们来介绍一下什么是mips,MIPS架构是一种采取 精简指令集(RISC)的处理器架构