摘要: 之前学习了栈溢出常见的利用手法,有ret2text、ret2plt、ret2syscall、ret2shellcode、ret2libc、ret2csu溢出栈迁移,这里接着学习一下常见的绕过pie的手法 PIE PIE(Position Independent Executables)是编译器gcc 阅读全文
posted @ 2024-06-18 11:35 Junglezt 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 栈迁移:简单理解就是在栈溢出的时候可溢出的字符过少,只能溢出ebp和ret的地址,可以使用leave_ret这个gadget来实现栈的迁移。 在栈中,默认情况下汇编语言在栈结束的时候都默认会执行一次leave和ret指令,我们利用这个特性将返回地址修改为leave_ret的gadget,将会执行两次 阅读全文
posted @ 2024-06-13 18:23 Junglezt 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 再上一次学习栈溢出ret2syscall方法时,我们会发现有些gadget不存在,我们只能借用read遗留下来的ebx寄存机调用,这时就可以使用万能gadget,这个万能的gadget存在__libc_csu_init中,由于每个动态链接的程序就有有libc,并且__libc_csu_init用于初 阅读全文
posted @ 2024-06-04 15:59 Junglezt 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 昨天学习了re2syscall,该方法主要是系统中没有system()函数,也没有/bin/sh字符串,一般该二进制程序使用static link静态链接,可以找到很多的gadget,我们可以利用这些gadget进行系统调用 但是在动态链接时,gadget就变少了,也是同样的没有system()函数 阅读全文
posted @ 2024-06-02 17:30 Junglezt 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 系统调用 操作系统会内置一些函数,例如常见的read和write,读取和写入。在Linux中使用这些内置的函数叫做系统调用。 系统调用就是内核为用户提供的一个接口,系统内置很多进程和服务,直接让用户操作很危险也容易出现故障,所以用户层不能直接执行系统层的操作,但是有了这个系统调用的接口,用户可以使用 阅读全文
posted @ 2024-06-01 12:16 Junglezt 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 在之前进行ret2shellcode的学习时,需要NX保护机制是关闭的,但是现在一般情况下,保护机制默认都是开启的,那么该怎么办呢? 下面我们将学习ret2plt技术,够着ROP Chain来执行我们想要的代码 ret2plt 这种技术的目的是从 PLT 中泄漏函数的地址,例如二进制程序中有一个sy 阅读全文
posted @ 2024-05-31 17:21 Junglezt 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 汇编手动dump生成 elf32 首先sh.asm内容如下 [section .data] global _start _start: jmp sh se: pop ebx mov eax,11 mov ecx,0 mov edx,0 int 0x80 sh: call se db '/bin/sh 阅读全文
posted @ 2024-05-30 18:01 Junglezt 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 今天学习了pwn中的ret2shellcode,在之前学习的ret2text中,程序给我们留下了后门函数,可以直接溢出执行,而ret2shellcode是最经典的栈溢出漏洞利用方法,简单原理如下: 在栈溢出漏洞利用成功后,我们可以控制返回地址代码执行,但是这些代码在程序中默认没有,需要我们自己添加, 阅读全文
posted @ 2024-05-30 16:46 Junglezt 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 之前学习了一些汇编执行,听理论但是没有真正的接触到,不清除到底是怎么个情况,出于实践的目的,就有了本篇的博客。 手动编译x86汇编 下面我们会使用nasm和as分别编译intel和AT&T语法的汇编代码,这里首先编译32位架构的 据我了解,汇编指令可以使用.s或者.asm后缀名进行编写,例如 nas 阅读全文
posted @ 2024-05-29 08:55 Junglezt 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 要彻底搞清楚C语言的原理,必须要深入到指令一层去理解。你写一行C代码,编译器会生成什 么样的指令,要做到心中有数。本章介绍汇编程序的一些基础知识。 1. 最简单的汇编程序 #PURPOSE: Simple program that exits and returns a # status code 阅读全文
posted @ 2024-05-27 11:31 Junglezt 阅读(15) 评论(0) 推荐(0) 编辑