ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

buuctf-pwn jarvisoj_fm题解(学习过程持续更新)

buuctf-pwn jarvisoj_fm题解(学习过程持续更新) 本人也是在自学过程主要目的也是记录学习过程有些地方做的不太好都是按照自己理解进行讲解的不专业欢迎大家指出问题此处我将文件命名为pwn_fmchecksec pwn_fm查看一下保护机制可以看到这是一个32-bit的文件并且CanaryNX保护开启将文件拖入ida按F5将汇编代码转换成c语言代码得到可以看到printf(buf)存在格式化字符串漏洞当x等于4时得到shell。所以我们只需要将第n参数的内容改成x的地址然后利用%n$n将x的值改成4而且这里输出的字符串总数也就是我们x的地址本来就是4个字节%n不输出任何字符而是把当前已经输出的字符串总数写入到对应参数所指的地址中回到虚拟机gdb pwn_fm 动态调试一下b *0x804859d第一个read的地址可以在ida里得到rnAAAAAAAAstack 24我们从此题的0xffffced4开始数第一个参数到我们输入的AAAAAAAA就是第十一个参数qnano exp.py 开始写攻击脚本payload中的0x804a02c是x的地址在ida里双击x可以看到%11$n中的11就是第十一个参数在上方已经讲解过了保存退出python3 exp.py得到flagCTF2{55a73db9-6d7e-45cf-98f4-0360856c0966}此题完
返回列表