高级 ROP 其实和一般的 ROP 基本一样,其主要的区别在于它利用了一些更加底层的原理。
文章作者: Rhea
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Rhea's Blog!
相关推荐

2025-07-07
配置
前置看环境搭建 sudo docker run -d \-p 25000:22 \--name=show_pwn \--cap-add=SYS_PTRACE \-v ~/Desktop/CTFshow_pwn:/CTFshow_pwn \pwnenv_ubuntu24sudo docker start show_pwnsudo docker exec -w /CTFshow_pwn -e TERM=xterm-256color -u ubuntu -it show_pwn bash #进入容器 关闭ALSR rhea@rhea-VMware-Virtual-Platform:~$ sudo docker run -it --privileged --rm pwnenv_ubuntu24 /bin/bashroot@5c9e7214e2da:/# echo 0 > /proc/sys/kernel/randomize_va_spaceroot@5c9e7214e2da:/# cat /proc/sys/kernel/randomize_va_space 打开tmux ...

2025-07-09
pwn5-34
本分类为让大家了解一些寄存器、寻址方式 汇编代码: section .data msg db "Welcome_to_CTFshow_PWN", 0section .text global _start_start:; 立即寻址方式 mov eax, 11 ; 将11赋值给eax add eax, 114504 ; eax加上114504 sub eax, 1 ; eax减去1; 寄存器寻址方式 mov ebx, 0x36d ; 将0x36d赋值给ebx mov edx, ebx ; 将ebx的值赋值给edx; 直接寻址方式 mov ecx, [msg] ; 将msg的地址赋值给ecx; 寄存器间接寻址方式 mov esi, msg ; 将msg的地址赋值给esi mov eax, [esi] ; 将esi所指向的地址的值赋值给eax; 寄存器相对寻址方式 mov ecx, msg ; 将msg的地址赋值给ecx add ecx, 4 ; 将ecx加上4 mov eax, [ecx] ; 将ecx所指向的地址的值赋值给eax; 基址变址寻址方式 mov ecx...

2025-07-17
pwn35-90(50,53,80还需要再看看)
pwn35Hint:正式开始栈溢出了,先来一个最最最最简单的吧 用户名为 ctfshow 密码 为 123456 请使用 ssh软件连接 ssh ctfshow@题目地址 -p题目端口号 不是nc连接 $ cyclic 105aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabb$ ssh ctfshow@题目地址 -p题目端口号$./pwnme aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabb * ************************************* * Classify: CTFshow --- PWN --- 入门 * Type : Stack_Overflow * Site : https://c...

2025-07-10
3-ret2syscall
ret2libc原理ret2libc 即控制函数的执行 libc 中的函数,通常是返回至某个函数的 plt 处或者函数的具体位置 (即函数对应的 got 表项的内容)。一般情况下,我们会选择执行 system(“/bin/sh”),故而此时我们需要知道 system 函数的地址。 例1这里我们以 bamboofox 中 ret2libc1 为例。 点击下载: ret2libc1 首先,我们检查一下程序的安全保护: $ chmod +x ret2libc1$ checksec ret2libc1 Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000) Stripped: No Debuginfo: Yes 源程序为 32 位,开启了 NX 保护。下面对程序进行反编译以确定漏洞位置: int __cd...

2025-07-05
week2
shellcode_level1Hint:两字节怎么写系统调用 点击下载: shellcode_level1 Checksec 查看保护 $ chmod +x shellcode_level1$ checksec shellcode_level1 Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled SHSTK: Enabled IBT: Enabled Stripped: No 发现elf开启了pie保护,并且开启了canary保护,这使得使用栈溢出漏洞进行攻击变得难以执行。但是,根据题目提示,本题实质上还是要写入shellcode,但是具体往哪里写呢?又怎么写入呢? 还是利用ida进行反编译,观察一下程序的逻辑。 int __fastcall main(int argc, const char **argv, const char **en...

2025-07-05
week1
签个到吧Hint:怎么连接靶机呢$ nc gz.imxbt.cn 20605lscat flag echoHint:binsh目录下只有echo? echo flag??$ nc gz.imxbt.cn 20139ls/bin/bash: line 1: ls: command not foundecho flagflag./flag./flag: line 1: BaseCTF{}: command not found或者echo `</flag` Ret2textHint:原来栈是可以溢出的! 点击下载: Ret2text → checksec Ret2text Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000) SHSTK: Enabled IBT: Enabled Stripped: ...
评论
公告
This is my Blog

