BUUCTF [OGeek2019]babyrop

本文详细分析了BUUCTF [OGeek2019]babyrop挑战,探讨了如何通过在输入中添加'x00'绕过长度检查,并利用栈溢出执行libc函数的技巧。最终通过ret2libc实现漏洞利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BUUCTF [OGeek2019]babyrop

在这里插入图片描述
首先我们还是check一下
在这里插入图片描述
在这里插入图片描述
对我们输入的值和随机数进行比较,这里我们需要知道strlen这个函数识别尾部的方式是\x00,所以这里我们可以通过在输入的一开始就加上’\x00’来绕过,这样v1就等于0了,就满足了这个条件
在这里插入图片描述
再找一下之后我们发现了可以执行libc的位置,这里的buf距离栈底有0xe7,但是通过read可以读到a1个字节(这个a1就是函数0x80487ef的返回值),所以只要我们输入一个特别大的值就可以进行溢出 ,剩下的就是常规操作ret2libc就可以啦
附上exp:

from pwn import *
from LibcSearcher import *
r=remote('node3.buuoj.cn',26929)
elf=ELF('/home/pwn/Desktop/pwn')
write_plt=elf
<think>好的,我现在需要帮助用户寻找BUUCTF中NCTF2019的EasyRSA题目的解法或资源。首先,我得回想一下用户提供的引用内容,看看有没有直接相关的信息。不过用户给出的引用[1]到[5]都是关于逆向工程、键盘密码、Base64编码等题目,比如Re Writeup、Keyboard、easyRE等,并没有提到EasyRSA。所以可能这些引用中没有直接的帮助。 接下来,我需要思考用户可能需要的解题方法。虽然用户提到的引用中没有EasyRSA的具体解法,但根据常见的RSA题型,可能需要考虑模数分解、选择密文攻击、Coppersmith方法等。例如,题目可能涉及共模攻击、小指数攻击,或者使用工具如yafu分解n。另外,可能需要检查是否存在不安全的参数选择,如p和q过于接近,或者使用相同的模数。 由于用户提供的引用中没有相关的内容,我需要根据常规的RSA解题思路来构建回答。可能需要分步骤说明常见的攻击方法,并建议用户检查题目给出的参数是否符合这些情况。例如,首先分解n,然后计算私钥d,最后解密得到flag。此外,还可以建议用户查找公开的Writeup,或者提供一些通用的解题步骤,比如检查是否存在已知的漏洞。 同时,用户可能希望得到具体的解题脚本或工具推荐,比如使用Python的gmpy2库进行大数运算,或者使用RsaCtfTool进行自动化解密。因此,在回答中可以提到这些工具,并指导用户如何应用它们。 最后,生成的相关问题应该围绕RSA的常见攻击方法和题目可能涉及的点,比如模数分解的方法、Coppersmith定理的应用,或者是否存在特殊参数等情况。这可以帮助用户进一步深入理解和解决类似的问题。</think>### BUUCTF NCTF2019 EasyRSA 解题思路分析 根据常规RSA题型特征,建议通过以下步骤分析题目: 1. **参数检查** - 观察题目给出的$n,e,c$是否包含特殊结构 - 尝试用`yafu`或`factordb`分解模数$n$,若$n$为素数幂可能涉及特殊分解方法[^1] - 检查是否存在$e=3$或$e$与$\phi(n)$不互素的情况 2. **典型攻击场景** - **共模攻击**:若存在两组$(e_1,c_1),(e_2,c_2)$使用相同$n$ - **Wiener攻击**:当$d < \frac{1}{3}n^{1/4}$时可应用 - **Coppersmith**:适用于已知明文部分信息的情况 3. **代码示例框架** ```python from Crypto.Util.number import long_to_bytes import gmpy2 n = ... # 题目给出的模数 e = ... # 公钥指数 c = ... # 密文 # 分解n得到p,q p = q = phi = (p-1)*(q-1) d = gmpy2.invert(e, phi) m = pow(c, d, n) print(long_to_bytes(m)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值