CTF国赛技术点系列(第6期)——PWN栈溢出基础入门(国赛拿分必学)

admin 2026-05-14 13:24:39 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文系统讲解CTF国赛PWN题型中栈溢出漏洞的攻防技术,核心原理是通过超长输入覆盖函数返回地址控制程序执行流。详细介绍了IDAPro、GDB、pwntools等工具的使用方法,提供偏移量计算两种方案及通用exp模板,涵盖ret2text、ret2system等常见题型解题步骤,并给出32/64位区分、偏移精度等实战避坑要点,帮助零基础选手快速掌握国赛保分技巧。 综合评分: 85 文章分类: CTF,二进制安全,漏洞分析,实战经验,安全工具


cover_image

CTF 国赛技术点系列(第 6 期)——PWN 栈溢出基础入门(国赛拿分必学)

原创

点击关注👉 点击关注👉

网络安全学习室

2026年5月7日 10:29 湖南

在小说阅读器读本章

去阅读

一、技术点定位

PWN 是 CTF 国赛分值高、拉分极强的核心板块,而栈溢出是整个 PWN 的入门基石,也是国赛每年必考基础题型。

不管后面的堆溢出、格式化字符串有多难,栈溢出永远是新手第一个必拿的保底分。 国赛基础栈溢出题型固定、套路固定、exp 模板固定,只要学会套路,遇见就能直接秒做。

核心目标:搞懂栈溢出原理、学会偏移量计算、掌握通用 exp 模板,国赛基础栈溢出题直接套脚本就能拿到 shell、读取 flag。

二、栈溢出核心原理(通俗易懂版)

程序运行时会开辟一块栈空间,用来存放局部变量、函数返回地址。 正常流程: 输入数据 → 存在局部变量缓冲区 → 程序正常执行。

漏洞原理: 程序没有限制输入长度,输入数据过长,覆盖掉缓冲区后面的函数返回地址。 从而劫持程序执行流,让程序跳转到我们指定的恶意函数地址,拿到交互式 Shell,读取 flag。

一句话总结:超长输入覆盖返回地址,控制程序走向

三、国赛栈溢出前置必备知识点

1. 关键术语

  • 缓冲区:程序预留的接收输入的空间
  • 偏移量:从缓冲区开头到返回地址的距离
  • 返回地址:函数执行完跳转回去的地址
  • shellcode:拿到系统 shell 的机器指令
  • exp:利用漏洞的 Python 攻击脚本

2. 国赛常用工具

  • IDA Pro:看程序逻辑、找溢出点、查函数地址
  • GDB+pwndbg:动态调试、计算偏移量
  • pwntools:编写 exp、交互靶机、发送 payload

四、国赛栈溢出标准解题步骤(考场直接照搬)

  1. 用 IDA 打开程序,定位危险函数 gets / scanf / read 无长度限制输入点
  2. GDB 调试,精确计算溢出偏移量
  3. 找到后门函数 /system/bin/sh 地址
  4. 用 pwntools 编写 payload 脚本
  5. 运行脚本连接靶机,拿到 shell,读取 flag

五、偏移量两种常用计算方法

方法一:pattern 生成法(国赛最常用)

# 生成随机字符串
cyclic 100

把生成字符串输入程序,程序崩溃断错,看报错地址

# 计算偏移
cyclic 崩溃地址

直接得出精准偏移量,一步到位。

方法二:手动试错法

不断加长输入字符,观察程序是否崩溃,慢慢测出临界溢出长度。

六、国赛通用栈溢出 Exp 模板(公众号纯净版无乱码)

from pwn import *

# 远程连接靶机
p = remote("ip地址", 端口)

# 偏移量
offset = 40
# 目标函数地址
addr = 0x08049126

# 构造payload
payload = b'A' * offset + p32(addr)

# 发送攻击载荷
p.sendline(payload)

# 交互式shell
p.interactive()

直接替换IP、端口、偏移量、函数地址即可使用,国赛 90% 基础栈溢出都能套。

七、国赛栈溢出常见题型

1. 简单 ret2text

程序自带后门函数,溢出直接跳后门,最简单送分题。

2. ret2system

程序有 system 函数,溢出跳转到 system,传入 /bin/sh 拿 shell。

3. 带格式限制栈溢出

限制输入字符、限制长度,只需微调 payload 结构,套路不变。

八、考场避坑技巧

  1. 32 位、64 位程序一定要分清,p32 和 p64 不要混用
  2. 本地调试能跑,远程注意靶机 libc 版本对齐
  3. 偏移量一定要精准,多 1 少 1 都会崩溃拿不到 shell
  4. 先做基础栈溢出保底,再攻坚堆溢出、格式化字符串

九、文末福利

如果你也是零基础、想参加竞赛网安但不知道从哪开始,可以点击文末阅读原文领取200节攻防教程,帮你少走弯路。后续我会持续更新网安实战、就业、副业相关干货,关注我,带你从零基础一步步靠网安变现。

十、下期预告

下一期更新第 7 期:格式化字符串漏洞入门国赛 PWN 高频考点,泄露内存、篡改变量、劫持 got 表,手把手教你套路拿 flag

CTF国赛 #国赛技术点 #PWN栈溢出 #CTF备赛 #网络安全竞赛 #pwntools


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:网络安全学习室 点击关注👉 点击关注👉《CTF 国赛技术点系列(第 6 期)——PWN 栈溢出基础入门(国赛拿分必学)》

评论:0   参与:  0