pwn中各种利用技巧2
栈stack pivoting把ret指针修改为jmp esp的地址,其后加上asm(sub esp,20,;jmp esp),来跳转到shellcode处(ps:20表示偏移量20,需修改)
frame faking利用leave劫持ebp,从而使得ret到ebp+8
基于堆类型unsorted ...
pwn中各种利用技巧1
关闭aslrsudo sysctl -w kernel.randomize_va_space=0
绑定libcp=process([‘./bin’],env={‘LOAD_PRELOAD’:’./libc-2.23.so’})
StackROPDefcon 2015 Qualifier R0pbab ...
格式化字符串
泄露内存123456789#include <stdio.h>int main() { char s[100]; int a = 1, b = 0x22222222, c = -1; scanf("%s", s); printf("%08x.%08x.%08x.%s\n ...
64位shellcode编写
shellcode前言目前网上主要是各种32位的shellcode编写教程,64位的比较少,这篇文章主要讲解一下64位shellcode的编写以及介绍几种比较常见的白名单绕过方法
64位shellcode编写直接pwntools生成默认shellcode这一种方法是最简单的,通过下面的代码即可生成一 ...
AFL-fuzz初体验
安装环境安装环境:(有点大,可以先换下源)
1$ sudo apt-get install clang-6.0 build-essential llvm-6.0-dev gnuplot-nox
修改配置
1234$ sudo update-alternatives --install /usr/b ...
2019第五空间线上初赛-WP
BF首先覆盖掉seed,去掉rand()的随机化,然后通过输入的name进行格式化字符的泄漏,再通过rop串leak出libc_base,最后直接用one_gadgets getshell,exp如下:
123456789101112131415161718192021222324252627282 ...
《ptmalloc》
glibc内存管理的方法c风格的内存管理程序池式内存管理内存池是一种半内存管理方法。内存池帮助某些程序进行自动内存管理,这些程序会经历一些特定的阶段,而且每个阶段中都有分配给进程的特定阶段内存。
引用计数垃圾收集收集器没有找到的就是垃圾,可以被销毁并重新使用这些无用数据
内存管理器的设计目标最大化兼 ...
2019广外网安大赛-WP
web枯燥的抽奖首先用strpos计算出随机数值,并且弄好格式
再直接将该结果复制给php_mt_seed进行爆破
然后再回去把种子带入就可以得到字符串了
最后输回去并提交就get flag了√
pwn史上最简单的pwn这道题是一道c++的。。。不会分析,只知道只能写0x20个字节,随便试了下 ...
《Linux二进制分析》
Linux环境和相关工具Linux工具GDBGNU调试器
objdumpobjdump -D ELF 查看ELF文件中所有节的数据或代码
objdump -d ELF 只查看ELF文件中的程序代码
objdump -tT ELF 查看所有符号
objcopy要将.data节从一个E ...
《程序员的自我修养》
编译与链接预处理主要处理”#”开始的预编译指令,预编译后的文件扩展名为.i
(-E 表示只进行预编译)
主要处理规则:
将所有的”#define”删除,并且展开所有的宏定义。
处理所有条件预编译指令,比如”#if”、”#ifdef”、”#elif”、”#else”、”#endif”。
处理”#inc ...