随笔分类 -  pwn学习

记录在ctfshow课程中学习的知识
摘要:信息收集 首先使用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 阅读全文
posted @ 2024-07-15 21:48 Junglezt 阅读(114) 评论(0) 推荐(0) 编辑
摘要:信息收集 首先使用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 阅读全文
posted @ 2024-07-14 17:32 Junglezt 阅读(108) 评论(0) 推荐(0) 编辑
摘要:如果通过了Buffer Overflow Prep房间,在做这个房间的时候你会得到实践。 信息收集 首先使用nmap进行端口扫描得到下方的结果,常用的扫描方式如下 nmap -sT -p- --min-rate 10000 target_ip -Pn -oA open_port nmap -sV - 阅读全文
posted @ 2024-07-13 23:16 Junglezt 阅读(61) 评论(0) 推荐(0) 编辑
摘要:前景概述 最开始接触二进制方式是因为参加比赛缺少一个pwn手,慢慢的学习在二进制方面懂了很多,学习了C和C++、基本的汇编语法、pwndbg、ollydbg等调试工具,以及在做pwn题目是相关的工具pwntools,学习了栈相关的基本知识,栈溢出相关的一些姿势,例如:ret2text、ret2plt 阅读全文
posted @ 2024-07-12 18:30 Junglezt 阅读(110) 评论(0) 推荐(0) 编辑
摘要:之前学习了栈溢出常见的利用手法,有ret2text、ret2plt、ret2syscall、ret2shellcode、ret2libc、ret2csu溢出栈迁移,这里接着学习一下常见的绕过pie的手法 PIE PIE(Position Independent Executables)是编译器gcc 阅读全文
posted @ 2024-06-18 11:35 Junglezt 阅读(1178) 评论(1) 推荐(1) 编辑
摘要:栈迁移:简单理解就是在栈溢出的时候可溢出的字符过少,只能溢出ebp和ret的地址,可以使用leave_ret这个gadget来实现栈的迁移。 在栈中,默认情况下汇编语言在栈结束的时候都默认会执行一次leave和ret指令,我们利用这个特性将返回地址修改为leave_ret的gadget,将会执行两次 阅读全文
posted @ 2024-06-13 18:23 Junglezt 阅读(207) 评论(0) 推荐(0) 编辑
摘要:再上一次学习栈溢出ret2syscall方法时,我们会发现有些gadget不存在,我们只能借用read遗留下来的ebx寄存机调用,这时就可以使用万能gadget,这个万能的gadget存在__libc_csu_init中,由于每个动态链接的程序就有有libc,并且__libc_csu_init用于初 阅读全文
posted @ 2024-06-04 15:59 Junglezt 阅读(102) 评论(0) 推荐(0) 编辑
摘要:昨天学习了re2syscall,该方法主要是系统中没有system()函数,也没有/bin/sh字符串,一般该二进制程序使用static link静态链接,可以找到很多的gadget,我们可以利用这些gadget进行系统调用 但是在动态链接时,gadget就变少了,也是同样的没有system()函数 阅读全文
posted @ 2024-06-02 17:30 Junglezt 阅读(175) 评论(0) 推荐(0) 编辑
摘要:系统调用 操作系统会内置一些函数,例如常见的read和write,读取和写入。在Linux中使用这些内置的函数叫做系统调用。 系统调用就是内核为用户提供的一个接口,系统内置很多进程和服务,直接让用户操作很危险也容易出现故障,所以用户层不能直接执行系统层的操作,但是有了这个系统调用的接口,用户可以使用 阅读全文
posted @ 2024-06-01 12:16 Junglezt 阅读(252) 评论(0) 推荐(0) 编辑
摘要:在之前进行ret2shellcode的学习时,需要NX保护机制是关闭的,但是现在一般情况下,保护机制默认都是开启的,那么该怎么办呢? 下面我们将学习ret2plt技术,够着ROP Chain来执行我们想要的代码 ret2plt 这种技术的目的是从 PLT 中泄漏函数的地址,例如二进制程序中有一个sy 阅读全文
posted @ 2024-05-31 17:21 Junglezt 阅读(141) 评论(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 阅读(432) 评论(0) 推荐(0) 编辑
摘要:今天学习了pwn中的ret2shellcode,在之前学习的ret2text中,程序给我们留下了后门函数,可以直接溢出执行,而ret2shellcode是最经典的栈溢出漏洞利用方法,简单原理如下: 在栈溢出漏洞利用成功后,我们可以控制返回地址代码执行,但是这些代码在程序中默认没有,需要我们自己添加, 阅读全文
posted @ 2024-05-30 16:46 Junglezt 阅读(630) 评论(0) 推荐(0) 编辑
摘要:之前学习了一些汇编执行,听理论但是没有真正的接触到,不清除到底是怎么个情况,出于实践的目的,就有了本篇的博客。 手动编译x86汇编 下面我们会使用nasm和as分别编译intel和AT&T语法的汇编代码,这里首先编译32位架构的 据我了解,汇编指令可以使用.s或者.asm后缀名进行编写,例如 nas 阅读全文
posted @ 2024-05-29 08:55 Junglezt 阅读(190) 评论(0) 推荐(0) 编辑
摘要:要彻底搞清楚C语言的原理,必须要深入到指令一层去理解。你写一行C代码,编译器会生成什 么样的指令,要做到心中有数。本章介绍汇编程序的一些基础知识。 1. 最简单的汇编程序 #PURPOSE: Simple program that exits and returns a # status code 阅读全文
posted @ 2024-05-27 11:31 Junglezt 阅读(79) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2024-05-09 21:52 Junglezt 阅读(3) 评论(0) 推荐(0) 编辑
摘要:pwn15 该题目是很简单,总结一些需要的知识点: 使用as手动编译asm文件 使用ld手动链接可执行文件 文件下载后是一个名为flag.asm的文件 首先使用nasm命令编译为flag.o文件 nasm -f elf32 flag.asm -o flag.o -f: 指定编译文件类型 -o: 指定 阅读全文
posted @ 2024-04-29 10:49 Junglezt 阅读(217) 评论(0) 推荐(0) 编辑
摘要:Linux基础 Linux常用命令 ls cd pwd uname whoami man find echo cat less head/tail grep cut diff # 比较文本差异 mv cp rm ps top kill ifconfig ping netstat nc su touc 阅读全文
posted @ 2024-04-28 14:55 Junglezt 阅读(69) 评论(0) 推荐(0) 编辑
摘要:CPU结构和指令集 CPU是名称为中央处理单元,简称处理器,主要的作用是从内存中读取指令,然后解码和执行。 CPU架构就是CPU内部设计的结构,是一堆硬件组成,用于实现指令集所规定的操作 指令集包含了一系列的操作码(opcode),以及特定的CPU执行的基本命令。如果想要设计CPU,就得先解决使用什 阅读全文
posted @ 2024-04-28 12:14 Junglezt 阅读(169) 评论(0) 推荐(1) 编辑
摘要:静态链接 静态连接是将多个文件链接在一起并生成可执行文件的过程 示例代码: a.c extern int shared; extern void swap(int* a,int* b); int main(){ int a=10; swap(&a,&shared); } b.c int shared 阅读全文
posted @ 2024-04-27 14:55 Junglezt 阅读(224) 评论(0) 推荐(0) 编辑
摘要:硬件基础 计算机低速I/O部件由南桥芯片收集信号连接北桥,北桥通过总线和CPU通信 操作系统负责提供抽象接口和管理硬件资源 操作系统通过多任务系统对CPU进行管理 操作系统使用分页模式对内存进行管理 操作系统读写I/O端口来实现对磁盘进行管理 CPU通过MMU(memory management u 阅读全文
posted @ 2024-04-25 20:21 Junglezt 阅读(135) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示