摘要: 原理 系统调用sigreturn会将rsp开始的长度为0xf8内容丢到寄存器,以实现控制所有寄存器的效果。 struct _fpstate { /* FPU environment matching the 64-bit FXSAVE layout. */ __uint16_t cwd; __uin 阅读全文
posted @ 2026-01-12 20:23 Tracs 阅读(7) 评论(0) 推荐(0)
摘要: 第六届信安大挑战 - Dino::CTF $ checksec ./pwn [*] '/home/tracs/PWN/dino_pwn/Pepeater/pwn' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: N 阅读全文
posted @ 2026-01-12 20:20 Tracs 阅读(14) 评论(0) 推荐(0)
摘要: 基础知识 syscall 利用情况 1.存在栈溢出漏 2.可以泄露程序、libc地址 3.开启了NX 利用方法 需要利用一下的gadget pop rax ret ;控制rax,syscall在这里读取系统调用号 pop rdi ret ;控制rdi,控制64位系统的第一个参数 pop rsi re 阅读全文
posted @ 2026-01-12 20:14 Tracs 阅读(13) 评论(0) 推荐(0)
摘要: 基础知识 fork() 简介 创造一个新的进程,子父进程虚拟地址相同。 遵循“写时复制原则(Copy-On-Write)”:只读的时候共用同一个内存页,写的时候才复制出来新的内存页。 返回值:父进程为子PID(>0),子进程为0,(<0)表示失败。 GDB调试指令 set follow-fork-m 阅读全文
posted @ 2026-01-12 20:11 Tracs 阅读(6) 评论(0) 推荐(0)
摘要: 基础知识 格式化占位符 语法:%[parameter][flags][field width][.precision][length]type parameter n$ : 显示第n个参数。注意:有一个占位符使用了parameter,其他的占位符也必须使用。 Flags (可为零个或者多个) + : 阅读全文
posted @ 2025-12-21 23:51 Tracs 阅读(32) 评论(0) 推荐(0)
摘要: 编写shellcode pwntools自动生成shellcode 用于打开shell shellcode = asm(shellcraft.amd64.sh()) context = (arch='amd64',os='linux') shellcode = asm(shellcode.sh()) 阅读全文
posted @ 2025-12-14 23:34 Tracs 阅读(28) 评论(0) 推荐(0)
摘要: 概述 在程序存在栈溢出,且没有直接给可利用的后台程序的情况下。利用ROP链传参“/bin/sh”调用程序system得到shell。 例题——1 例题:第六届信安大挑战 - Dino::CTF 程序内很多已经写好可以直接调用的函数会存放在libc表里面,如“printf”“gets”“puts”,当 阅读全文
posted @ 2025-12-06 22:16 Tracs 阅读(23) 评论(0) 推荐(0)
摘要: 零碎笔记 从0开始的PWN 在gdb里面tap 查看所有命令 objdump -d a -M intel | less socat tcp-l:8888,fork exec:./a.out,reuseaddr nc 127.0.0.1 8888 pwd 当前目录 GDB 运行 run 完全执行 st 阅读全文
posted @ 2025-11-29 23:25 Tracs 阅读(21) 评论(0) 推荐(0)