博客
关于我
攻防世界 Pwn 新手
阅读量:667 次
发布时间:2019-03-15

本文共 1509 字,大约阅读时间需要 5 分钟。

CTF题解总结

作为CTF爱好者,我记录了自己的审题思路、解题方法以及常见的技术手法。这些题目涵盖了栈溢出、格式化字符串、整数溢出等多种攻防技术。下面是一些典型的解决方案和经验总结。


1. 基本工具与方法

1.1 继 hypothesis

  • 使用 nc 工具建立远程连接。
  • 简单的 Exploit 可以从公开的 CVE 出发或通过简单的 Stack Overflow 发现。

1.2 官方插件的使用

  • 使用 pwn 库的 remote 函数建立远程连接。
  • 将rec发设置为默认值,方便快速调试。

1.3 简易 Exploit 例子

from pwn import *r = remote("220.249.52.133", 35257)r.interactive()

这是最基础的远程交互例子,适合快速验证题目是否存在可利用的漏洞。


2. 栈溢出相关题

2.1 栈溢出基础

  • 通过构造特定的 Exploit 发现 Stack Bypass。
  • 发现函数调用序列并通过覆盖函数返回地址来实现 Control Flow 漏洞。

注意事项:对于 write 函数,直接使用 r.recv() 会导致延迟,需改用 r.sendline()

2.2 后门函数的使用

  • 确定 program 中的后门函数 (如 system) 和其参数需求。
  • 通过构造合适的栈长度和参数值来解锁后门功能。

2.3 整数溢出案例

  • 发现题目通过整数溢出机制控制功能。
  • 利用特定的数值构造绕过保护机制,获得完整控制权。

3. 格式化字符串漏洞

3.1 基础知识点

  • %x:提取内存中的 16进制 数据,可以用于读取堆或栈信息。
  • %p:获取指针地址,可以用来获取函数地址或堆地址。
  • %s:输出字符串中的指针指向内容,常用于提取 GOT 表信息。
  • %n:通过格式化字符串控制写入目标地址的值。

技巧:使用 %$hn%$hhn 等来控制写入的字节长度,避免程序崩溃。

3.2 案例实践

  • 结合 %n 格式化字符串,快速修改程序流程。
  • 通过构造特定的 ExploitScript ,发现隐藏的功能或可通过点。

4. 高级 Exploit 技巧

4.1 PLT 和 GOT 模块

  • 分析可执行文件中的 PLT 和 GOT 模块,链接到相关函数。
  • 利用这些模块进行动态调用,绕过静态分析的困难。

4.2 调用 system 函数

  • 确定 system 函数在内存中的 Address,结合 PLT/GOT 模块构造 ExploitScript。
  • 通过覆盖特定地址,加载 shell 的实际路径。

5. 随机数漏洞

5.1 背景知识

  • rand() 函数基于设定的种子生成随机数,但随机性有限。
  • 使用 srand() 来设定随机数种子,实现预测随机数。

5.2 攻防技巧

  • 调试目标程序的随机数生成方式。
  • 利用 ctypes 模块与 C 函数交互,绕过保护机制。

6. 强制转换漏洞

6.1 发现漏洞

  • 发现程序中函数强制转换错误,例如将函数指针当作整数处理。

6.2 Exploit 实现

  • 通过格式化字符串提供目标地址,强制程序执行特定代码段。

7. 目录结构优化

将以上内容组织为清晰的分类目录:

.low    ├──栈溢出相关题  │   ├──简单栈溢出  │   ├──后门函数  │   └──整数溢出  ├──格式化字符串漏洞  │   ├──基础知识  │   └──实战案例  └──随机数漏洞      ├──rand函数      └──绕过保护机制

以上总结涵盖了CTF中常见的多种技巧和方法,希望对其他爱好者有所帮助。如果有具体题目需要补充解答欢迎随时沟通!

转载地址:http://lqbqz.baihongyu.com/

你可能感兴趣的文章
Net操作配置文件(Web.config|App.config)通用类
查看>>
NeurIPS(神经信息处理系统大会)-ChatGPT4o作答
查看>>
neuroph轻量级神经网络框架
查看>>
Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
查看>>
NEW DATE()之参数传递
查看>>
New Relic——手机应用app开发达人的福利立即就到啦!
查看>>
new 一个button 然后dispose,最后这个button是null吗???
查看>>
next项目部署到服务器pm2进程守护
查看>>
nexus上传jar
查看>>
Nexus指南中的更新强调集成和透明度的重要性
查看>>
Nexus指南已经发布
查看>>
Nexus(1):Nexus的安装与配置
查看>>
NFinal学习笔记 02—NFinalBuild
查看>>
NFS
查看>>
NFS Server及Client配置与挂载详解
查看>>
NFS 服务配置篇
查看>>
NFS共享文件系统搭建
查看>>
nfs复习
查看>>
NFS安装配置
查看>>
NFS服务器配置-服务启动与停止
查看>>