[pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglement wp
还是一个比较有意思的个格式化串题目,限制了输入长度,需要使用星号的格式化串完成利用。
题目分析
题目名字:量子纠缠,实际没啥关系,强行起名,首先查看安全策略:

没有PIE,程序的逻辑就让你输入first name和last name,然后就输出了:

然后逆向分析题目:
没办法直接F5,在scanf的地方会报个分析异常,是参数引起的,可以选择把这句nop掉然后f5 分析:

程序main函数中先取两个随机值,放在栈上,然后注意我画圈的地方,它把其中一个随机值的后半段地址留在了栈上。在你输入完first name和last name之后,会进行一个login函数,里面有格式化串漏洞,接下来会判断开始存放在栈上的两个随机值是否相等(正常肯定是不相等的),相等的话,会有一个system(’/bin/bash’)奖励:

在login函数中,存在两个格式化串漏洞,但每个限制最大13个字符(输入的时候限制的):


利用方法1
这里用到了一个知识点,%*X$d%Y$n会把栈中偏移X处的值赋给栈中偏移Y处的指针指向的地址。类似的题目是MidnightsunCTF Quals 2020 pwn4(感谢队内大佬点拨)
所以利用思路就是:
- 确定栈中的半个随机数A指针的偏移M和随机数B的偏移N
- 找到一个栈中的地址A指向栈中地址B指向栈中地址C的栈指针链

最低0.47元/天 解锁文章
427

被折叠的 条评论
为什么被折叠?



