随笔分类 - pwn之路
摘要:libc,C函数库 泄露libc函数地址的条件: 1.有输出函数(puts,printf,write等) 2.将参数设置为某函数got表地址 执行后就会打印got表的内容。got表中每个函数的偏移,只要用获得的地址减去偏移就可以得到基地址,再通过加上偏移,即可实现任意调用libc中的任意函数。 通过
阅读全文
摘要:ret2Syscall实践 1.checksec检查下实验案例的保护机制 2.查看程序实现细节,寻找溢出点 发现有gets函数输入,可以利用。 3.计算溢出返回地址的偏移 4.用程序中已有的指令片段去修改eax=0xb(11),ebx=0,ecx=0,edx=0 用命令ROPgadget --bin
阅读全文
摘要:ROP系统攻击 ROP全称为Return-oriented Programming(面向返回的编程)是一种基于代码复用技术的攻击,攻击者从已有的库或可执行文件中提取指令片段,构建恶意代码。 特点:1.call和ret指令不操纵函数,而是用于将函数里面的短指令序列的执行流串起来; 2.jmp指令可以在
阅读全文
摘要:记录学到的一个小demo 目标程序代码: #include<stdio.h> void target() { system("/bin/sh"); } void func() { char str[0x10]; read(0, str, 0x20); printf(str); read(0, str
阅读全文
摘要:pwn的介绍 入侵到别人的机器里。 一、基础介绍 1.进程中的栈帧 在计算机中,栈是一块在内存中动态开辟的存储空间,用于为程序执行函数提供环境(保存有局部变量,函数的参数,ebp,以及函数返回地址)。 栈通常保存着传递给该函数的参数,返回地址,返回时的ebp,以及函数的局部变量(它们也是按该序入栈的
阅读全文