• 2024-05-08buuctf-pwn-[OGeek2019]babyrop
    查看一下保护情况丢进ida里分析主函数调用了一个含有alarm的函数,这个函数会设置一个定时器,到时间自动退出程序为了方便调试,我们直接patch掉这个函数接着分析,主函数读入了一个随机数,并将其传入sub_804871F函数sub_804871F函数读取输入,并检查输入的是否和随机数相同,不相同
  • 2023-12-30bjdctf_2020_babyrop
    bjdctf_2020_babyrop64位泄露libcvuln的buf变量存在溢出64位函数传入的参数依次存在寄存器rdi,rsi,rdx(顺序从左到右),返回值存在rax中bamuwe@qianenzhao:~/done/bjdctf_2020_babyrop$ROPgadget--binarybjdctf_2020_babyrop--only'pop|ret'|greprdi0x000000000
  • 2023-08-08 bjdctf_2020_babyrop
    bjdctf_2020_babyrop0x01注意这题位64位。32位和64位传参有区别思路:利用puts函数泄露出puts函数真实地址通过puts函数地址计算出libc基地址,从而计算出system和binsh的真实地址构造rop链栈溢出getshellputs函数通过poprdi;ret传参用ROPgadget可以找到0x02exp#enc
  • 2023-08-07[OGeek2019]babyrop
    [OGeek2019]babyrop0x0164位程序,开启NX没有system函数和/bin/sh字符串0x02分析程序:main函数中,先读取一个随机数到fd,并作为参数传入sub_804871F函数,再将sub_804871F函数的返回值作为参数传入sub_80487D0函数里。main函数sub_804871F函数sub_80487D0函数观察程序我们可
  • 2023-06-07[BUUOJ]bjdctf_2020_babyrop
    bjdctf_2020_babyrop先checksec,64位小端序,MX保护开,其它全关,接着进入IDA分析main函数内很简单,进一步分析后找到关键函数vuln本题没有找到backdoor,所以应该是做基地址泄露然后getshell,整个程序内只有puts函数可以输出内容,因此对puts函数进行修改,先溢出后转到此处,考虑到系统会对堆栈进
  • 2023-04-07buuctf.pwn.[OGeek2019]babyrop
    可以看出,没有开什么特别的保护什么是plt,gpt,自己回顾一下hex(elf.plt['puts']).plt.got:08048548FF25D49F0408jmpds:puts_ptrhex(elf.got['puts']).got:08049FD46CA00408puts_ptrddoffset__imp_puts;DATAXREF:pu
  • 2023-04-04[BUUCTF]PWN-[OGeek2019]babyrop
      点进sub_80486BB   注意alarm()   注意buf是v1,输出数是a1,if嵌套strncmp frompwnimport*context(arch='i386',os='linux',log_level='debug')io=remote('node4.buuoj.cn',25522)#io=process('./babyrop'
  • 2023-04-04[BUUCTF]PWN-bjdctf_2020_babyrop
    注意本题需要用到ROPgadget安装命令:sudoapt-getinstallpython-capstonegitclonehttps://github.com/JonathanSalwan/ROPgadget.gitcdROPgadgetsudopythonsetup.pyinstall以下是相关使用命令:命令: ROPgadget--binary文件名--only"pop|ret"|greprdi命令: R