Vang3lis Blog

Nice to meet you

Unsorted bins

unsorted bins attack

Unsorted bin malloc static void * _int_malloc (mstate av, size_t bytes) // mstate 为 main_arena 结构体 { INTERNAL_SIZE_T nb; /* normalized request size */ unsigned int idx; ...

python opcode

pyc; opcode

前言 第四届上海大学生网络安全大赛中有一个 misc easy_py ,给了一个 pyc 文件,打比赛期间现场学了一下 (其实学了好久,这道题真是折腾死我了,不过还好学到了一点东西) 题目 题目给了一个 pyc 文件,最开始进行反编译,但是发现题目不能反编译出来。文件是被破坏了,M4x 说应该跟 python opcode 有关 dis marshal 库 在 Hcamael 师傅这里找...

inndy petbook

heap 未初始化; UAF

前言 这道题做完,感觉有必要记录一下,最近连续做了两个未初始化漏洞的题目,一个就是上一篇的 In2018 的 handout 那一道题,另外一个就是这道题 petbook checksec [*] '/home/vangelis/Desktop/inndy_petbook/petbook' Arch: amd64-64-little RELRO: Par...

heap (2)

unsorted bin; fastbin attack; one_gadget

前言 最近做 heap 的题目有点感觉,也有点感悟,所以写下来(其实就是刚调 bug 调到不想调了,跑来写博客,无奈 最近的做 heap 的时候,觉得如果能让你 free 一个 unsorted bin 再 malloc(0) ,那么刚好就可以泄露 libc.address ,如果 libc 的 hook 可写,通过 deouble free ,复写 __malloc_hook 或者 _...

_IO_FILE (1)

libio.h libioP.h 源码

废话 其实一开始只是想看这个虚表是怎么判断指向的是哪一个的,想着可能有一些标志位用来存储 offset 或者什么的,但是看资料的时候没看到,就自己跑去看源码,看到一半看不下去,就又去调试,感觉才思路清晰起来,之前有概念搞错了,在最后会写 libio.h 源码 struct _IO_FILE struct _IO_FILE { int _flags; /* High-order wor...

pwnable.kr unlink

unlink 简化版

这道题刚开始看的时候,感觉这不就是将 chunk 的结构变成了可视化的那种,然后就是 unlink 的简化版,没有任何保护,程序也十分简单,然后就卡住了,懵逼 程序 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct tagOBJ{ struct tagOB...

shell

关于 shell 一些简单的知识

我还是把我啥也不会的 shell 记一下 pwnable cmd1 #include <stdio.h> #include <string.h> int filter(char* cmd){ int r=0; r += strstr(cmd, "flag")!=0; r += strstr(cmd, "sh")!=0; r += strstr(cmd, ...

heap (1)

HITCON trainning

主要觉得现在做题目,要是做跟栈有关的,感觉找到漏洞之后基本上就是想着改变程序流程,通过ROP,泄露出libc基址,或者程序基址什么的,之后再运行systen(“/bin/sh\x00”),或者就是一些花式溢出什么的,亦或者做格式化字符串或者任意地址写入的题目基本上也有固定的套路,但是面对 heap 感觉有点难下手,没什么思路,所以想写点关于 heap 一些基本漏洞的自我总结 UAF HIT...

PLT GOT (3)

_dl_runtime_resolve 源码分析

_dl_runtime_resolve 运行的一系列函数 _dl_runtime_reslove _dl_fixup _dl_lookup_symbol_x do_lookup_x check_match 具体调用关系是, _dl_runtime_resolve 中调用 _dl_fixup ,之后调用 _dl_lookup_symbol_x ,_dl_looku...

ret2_dl_runtime_resolve

_dl_runtime_resolve

需要构造的结构体 Elf_Rel typedef struct { Elf32_Addr r_offset; /* Address */ Elf32_Word r_info; /* Relocation type and symbol index */ } Elf32_Rel; r_offset 最后写...