CTF
一只狗20000402
这个作者很懒,什么都没留下…
展开
-
scanf源码分析
本文分析的是glibc2.31中的scanf相关源码,目的不是研究scanf的算法,而是说明scanf在IO attack中的利用方法,属于CTF的范畴scanf.c其实就是对__vscanf_internal的封装__scanf (const char *format, ...){ va_list arg; int done; va_start (arg, format); done = __vfscanf_internal (stdin, format, arg, 0)原创 2020-12-02 19:51:10 · 1147 阅读 · 0 评论 -
metasequoia :Summoner
结构体struct Creature{ char* name; unsigned int level;};思路level为5时即可但是写入限制了level只能为4漏洞只释放了申请的name,然后把creature设为NULL,没有释放creature并且申请creature时没有清空level使用前没有初始化level, 可以现在name中...原创 2020-02-20 17:21:23 · 234 阅读 · 0 评论 -
栈迁移/栈劫持
例子https://github.com/scwuaptx/HITCON-Training/tree/master/LAB/lab6#include <stdio.h>#include <stdlib.h>#include <unistd.h>int count = 1337 ;int main(){ if(count != 13...原创 2020-01-30 13:49:42 · 1007 阅读 · 0 评论 -
linux系统调用
系统调用过程32位64位系统调用号表格式: #define __NR_名字 number32位cat /usr/include/asm/unistd_32.h #ifndef _ASM_X86_UNISTD_32_H#define _ASM_X86_UNISTD_32_H 1#define __NR_restart_syscall 0#define __NR_ex...原创 2020-01-19 07:12:31 · 185 阅读 · 0 评论 -
ctf-pwn:canary绕过
文章目录覆盖00字符读出canary原理利用条件漏洞代码编译选项EXP利用格式化字符串漏洞读出canary原理漏洞代码编译选项EXP逐字节猜解canary原理漏洞代码编译EXPSSP Leak原理覆盖00字符读出canary原理canary的值设计为以0x00结尾,防止read,printf灯函数直接读出通过栈溢出覆盖最低位的字节,从而获得canary利用条件存在read/pri...原创 2020-01-19 03:03:57 · 2945 阅读 · 0 评论 -
如何从libc地址得到栈地址
在libc中保存了一个函数叫_environ,存的是当前进程的环境变量得到libc地址后,libc基址+_environ的偏移量=_environ的地址在内存布局中,他们同属于一个段,开启ASLR之后相对位置不变,偏移量之和libc库有关通过_environ的地址得到_environ的值,从而得到环境变量地址,环境变量保存在栈中,所以通过栈内的偏移量,可以访问栈中任意变量...原创 2020-01-19 01:03:14 · 2259 阅读 · 0 评论 -
ASLR与PIE
全称ASLR:Address Space Layout Randomization PIE:Position Independent Executables作用ASLR:随机放置关键数据的地址空间,放置攻击者跳转到内存特定位置 PIE:生成相对寻址的位置无关的可执行程序谁实现?ASLR:操作系统 cat /proc/sys/kernel/randomize_va_space:...原创 2020-01-14 11:14:58 · 800 阅读 · 0 评论