当前位置:首页 > 未分类 > 正文内容

PWN 的一次学习笔记

admin3年前 (2022-12-08)未分类334

编写人:Hanser

一、静态逆向分析(IDA):定位漏洞点

将目标文件拖入 IDA Pro,重点分析vulnerable函数,发现核心漏洞:

  • 危险函数:使用gets()函数读取输入,gets()无输入长度限制,可导致栈溢出(超过变量缓冲区 8 字节的部分会覆盖栈上的其他数据,包括返回地址)。

漏洞函数截图:

联想截图_20250822051750.png

二、动态调试(GDB/Pwndbg):确定溢出偏移

1. 启动调试与设置断点

将文件放入 GDB(推荐使用 Pwndbg 插件增强调试体验),执行以下命令:

联想截图_20250822051533.png

调试启动截图:

断点设置与运行截图:

2. 单步执行到漏洞函数

  • 用n(next)命令单步执行 main 函数,直至调用vulnerable函数;

  • 用s(step)命令进入vulnerable函数内部(跟进函数调用)。

单步执行截图:

3. 测试溢出与查看栈结构

步骤 1:输入测试数据(8 个 A)

在gets()函数等待输入时,输入AAAAAAAA(8 个 A,刚好填满变量缓冲区),然后继续执行:

# 输入8个A
AAAAAAAA

# 单步执行完gets()
n

输入测试数据截图:

步骤 2:查看栈布局

使用stack N命令查看栈的前 N 项(本题查看 24 项,足够覆盖缓冲区、EBP 和返回地址):

stack 24

栈结构截图:

步骤 3:分析栈关键区域

  • EBP(栈基指针):指向前一个函数的 EBP 值(栈中保存的 EBP),是栈溢出的 “分界点”;

  • 返回地址:EBP 下方(内存地址更高)的 4 字节数据,即函数执行完后要跳转的地址(本题中vulnerable函数默认返回main+93地址);

  • 可控区域:EBP 上方(内存地址更低)的缓冲区,输入数据可覆盖此区域,超过缓冲区的部分会覆盖 EBP 和返回地址。

栈区域分析截图:

默认返回地址(main+93)截图:

4. 确定溢出偏移量

通过调试发现:

  • 缓冲区大小:8 字节(变量占用);

  • EBP 占用:4 字节;

  • 总偏移量:8(缓冲区) + 4(EBP) = 12字节?不,后续通过 IDA 进一步确认:实际缓冲区到返回地址的偏移为16 字节(缓冲区) + 4 字节(EBP) = 20 字节(以最终 Payload 构造为准)。

三、Payload 构造(Python + Pwntools):实现栈溢出攻击

1. 工具准备与环境连接

使用pwntools库编写攻击脚本,首先导入模块并建立与目标程序的连接(本地调试时用process,远程攻击时用remote):

联想截图_20250822051435.png

脚本初始化截图:

2. 接收程序输出(可选)

若程序启动时有提示信息,用recvline()接收,避免干扰后续输入:

联想截图_20250822051702.png

3. 确定 Payload 结构

通过 IDA 和 GDB 调试确认:

  • 偏移量:16 字节(缓冲区) + 4 字节(EBP) = 20 字节(需用垃圾数据填充);

  • 目标地址:getshell()函数的起始地址(从 IDA 中获取,本题为0x8048522);

  • 打包地址:用p32()将 32 位地址打包为字节型数据(适配小端序)。

Payload 结构:

联想截图_20250822051453.png

Payload 构造分析截图:

getshell()函数地址截图(IDA 中查看):

4. 发送 Payload 并获取 shell

联想截图_20250822051624.png

5. 本地测试结果

发送 Payload 后,成功获取本地 shell,执行ls、pwd等命令验证权限:

四、远程攻击:实战利用

将本地调试通过的脚本修改为远程连接模式,替换process为remote:

联想截图_20250822051249.png

远程攻击脚本截图:

执行脚本后,即可获取远程服务器的 shell 权限,实现远程控制。

核心总结

  1. 漏洞定位:静态逆向(IDA)找危险函数(gets)和后门函数(getshell);

  1. 偏移计算:动态调试(GDB)确定缓冲区到返回地址的偏移量;

  1. Payload 构造:垃圾数据填充偏移 + 目标函数地址(打包为字节型);

  1. 权限获取:通过溢出覆盖返回地址,跳转到后门函数执行系统命令。


扫描二维码推送至手机访问。

版权声明:本文由克拉玛依三十年社团发布,如需转载请注明出处。

本文链接:https://www.klmyssn.com/?id=60

分享给朋友:

“PWN 的一次学习笔记” 的相关文章

(原创)想学黑阔?这些书可以带你飞![web 安全书籍]

(原创)想学黑阔?这些书可以带你飞![web 安全书籍]

这些是我多年前收集的一些 web 安全相关书籍,虽当初未能坚持系统学习,但书籍本身质量较好,现分享给大家,希望能为想学 web 安全的朋友提供帮助!书籍资源获取百度云链接:http://pan.baidu.com/s/1jHVch9O提取密码:bauj...

(原创)一张图片,你的信息暴露无遗~

(原创)一张图片,你的信息暴露无遗~

大家好,我是 31,今天教给大家一个定位的小技巧,也没什么技术含量,看着玩就好啦~~~~昨天看到社团老大 “十三年” 在群里发照片 “装 13”,结果被我抓到了,哈哈哈哈,每个人都有大意之时。不多说,上图(居然发现手表不错,和我的一样帅~~~~~):**一、科普:什么是 Exif 数据?1. Exi...

(原创)还在担心伙食费?学完这个就不用担心啦!【ACR122复制】【饭卡破解】【破解食堂饭卡】【饭卡漏洞】【M1卡破解】

(原创)还在担心伙食费?学完这个就不用担心啦!【ACR122复制】【饭卡破解】【破解食堂饭卡】【饭卡漏洞】【M1卡破解】

(原创)还在担心伙食费?学完这个就不用担心啦!【ACR122复制】【饭卡破解】【破解食堂饭卡】【饭卡漏洞】【M1卡破解】本人小菜一枚,技术不精请多指教~~~~~~~~——————By-5431开始吧!!!!作为集团公司里的一员,享受员工待遇是应该的,入职的时候说好的包吃住,现在呢???自从饭堂承包出...

(原创)求人不如求己 -- 剪辑音乐就是这么简单 [如何剪辑音乐]

(原创)求人不如求己 -- 剪辑音乐就是这么简单 [如何剪辑音乐]

每每到了学校有活动,需要播放歌曲时,QQ 就多几个好友,消息又 99+,不消问什么事情,就知道是找我剪辑歌曲的同学了。怎么说,我这人对别人提出的需求,都尽力去帮助的,在剪辑音乐这事情上,从没拒绝过,但年复一年,每次剪辑音乐其实很简单,但是量多,就比较影响自己时间了,我又不会拒绝别人,很是尴尬,所以在...

小讲堂心得

小讲堂心得

参加小讲堂活动,是受邀两位学习部的同学十分热情的邀请,为同学们讲讲网络安全方面的知识。我感到十分荣幸,但又有些许担忧,怕讲不好,因为网络安全这个学科涉及的知识面十分宽泛,网络安全从其本质上来讲就是网络上的信息安全。从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理...

(原创) 校园卡破解系列之数据修改 [pm3 破解饭卡][pm3 修改数据][校园卡修改][IC 卡修改数据]

(原创) 校园卡破解系列之数据修改 [pm3 破解饭卡][pm3 修改数据][校园卡修改][IC 卡修改数据]

(二)吃不完的饭卡提升完 IC 卡权限,就该考虑能不能修改饭卡金额了。通过两次消费前后饭卡数据的对比分析,发现虽然卡片数据包含较多扇区和区块,但消费前后变化的地方仅涉及两个扇区,这为后续分析提供了便利。通过十六进制与十进制转换,可进一步拆解变化的数据:消费后金额:373.2(数字:37320;16...