摘要:
信息收集 首先使用nmap进行端口扫描 nmap -sT -p- --min-rate 10000 -Pn target -oA openPort 结果如下 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-15 09:31 EDT Warn 阅读全文
摘要:
信息收集 首先使用nmap进行端口扫描,结果如下 nmap -sT -p- --min-rate 10000 -oA openPort nmap -sV -O -A -p port1,port2,portN -oA version nmap --script=smb.. -p 135,139,445 阅读全文
摘要:
如果通过了Buffer Overflow Prep房间,在做这个房间的时候你会得到实践。 信息收集 首先使用nmap进行端口扫描得到下方的结果,常用的扫描方式如下 nmap -sT -p- --min-rate 10000 target_ip -Pn -oA open_port nmap -sV - 阅读全文
摘要:
前景概述 最开始接触二进制方式是因为参加比赛缺少一个pwn手,慢慢的学习在二进制方面懂了很多,学习了C和C++、基本的汇编语法、pwndbg、ollydbg等调试工具,以及在做pwn题目是相关的工具pwntools,学习了栈相关的基本知识,栈溢出相关的一些姿势,例如:ret2text、ret2plt 阅读全文
摘要:
之前学习了栈溢出常见的利用手法,有ret2text、ret2plt、ret2syscall、ret2shellcode、ret2libc、ret2csu溢出栈迁移,这里接着学习一下常见的绕过pie的手法 PIE PIE(Position Independent Executables)是编译器gcc 阅读全文
摘要:
栈迁移:简单理解就是在栈溢出的时候可溢出的字符过少,只能溢出ebp和ret的地址,可以使用leave_ret这个gadget来实现栈的迁移。 在栈中,默认情况下汇编语言在栈结束的时候都默认会执行一次leave和ret指令,我们利用这个特性将返回地址修改为leave_ret的gadget,将会执行两次 阅读全文
摘要:
再上一次学习栈溢出ret2syscall方法时,我们会发现有些gadget不存在,我们只能借用read遗留下来的ebx寄存机调用,这时就可以使用万能gadget,这个万能的gadget存在__libc_csu_init中,由于每个动态链接的程序就有有libc,并且__libc_csu_init用于初 阅读全文
摘要:
昨天学习了re2syscall,该方法主要是系统中没有system()函数,也没有/bin/sh字符串,一般该二进制程序使用static link静态链接,可以找到很多的gadget,我们可以利用这些gadget进行系统调用 但是在动态链接时,gadget就变少了,也是同样的没有system()函数 阅读全文
摘要:
系统调用 操作系统会内置一些函数,例如常见的read和write,读取和写入。在Linux中使用这些内置的函数叫做系统调用。 系统调用就是内核为用户提供的一个接口,系统内置很多进程和服务,直接让用户操作很危险也容易出现故障,所以用户层不能直接执行系统层的操作,但是有了这个系统调用的接口,用户可以使用 阅读全文
摘要:
在之前进行ret2shellcode的学习时,需要NX保护机制是关闭的,但是现在一般情况下,保护机制默认都是开启的,那么该怎么办呢? 下面我们将学习ret2plt技术,够着ROP Chain来执行我们想要的代码 ret2plt 这种技术的目的是从 PLT 中泄漏函数的地址,例如二进制程序中有一个sy 阅读全文