博客
关于我
pwn学习资源
阅读量:593 次
发布时间:2019-03-09

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

pwn学习资源与入门指南

学习思路

在进入pwn(漏洞利用)领域之前,首先需要掌握一些基本的工具和技术,以便在实际操作中应对各种漏洞。以下是一些常用的工具和方法:

  • gdb(GNU Debugger):这是调试程序的利器,特别是在Linux环境下使用。它可以帮助你分析程序的执行流程,定位错误,甚至可以在不停止程序的情况下进行调试。

  • gdb-peda:这是gdb的一个增强插件,提供了更友好的界面和一些有用的功能,特别适合进行复杂的调试任务。

  • pwntools:这是一个强大的Python库,专门用于写exp(漏洞利用程序)和poc(漏洞利用程序的原型)。它提供了许多模板和例子,非常适合新手快速上手。

  • checksec:这是一个可以分析ELF程序安全性的小工具,可以快速查看程序的防护机制,如ASLR、CANARY等。

  • objdump和readelf:这些工具可以帮助你分析ELF文件的结构,了解程序的内存布局和函数调用方式。

  • IDA pro:这是一个强大的反编译工具,可以帮助你分析已编译的程序,提取有用的信息。

  • ROPgadget:这是一个强大的工具,用于分析和利用ROP(返回操作链)漏洞。

  • one_gadget:这是一个可以快速寻找libc中的调用exec(‘/bin/sh’)位置的工具,非常有用。

  • libc-database:这是一个可以通过泄露的libc函数地址查出远程系统中libc版本的工具。

  • CTF练习网站

    以下是一些适合进行CTF(Capture The Flag)练习的网站:

    • CTFtime:这是一个非常受欢迎的CTF平台,提供了各种类型的挑战,适合不同水平的玩家。
    • OverTheWire:这是一个在线CTF平台,适合新手练习,挑战不难但内容丰富。
    • Hack The Box:提供了各种类型的CTF题目,包括栈溢出、缓冲区溢出等,适合不同水平的玩家。
    • CTF.billionare:这是一个高难度的CTF平台,适合有经验的玩家。

    常用工具

    在pwn过程中,以下是一些常用的工具和资源:

  • gdb:用于调试和分析程序。
  • gdb-peda:gdb的增强版,提供更多功能。
  • pwntools:用于写exp和poc。
  • checksec:分析程序的安全性。
  • objdump和readelf:分析ELF文件。
  • IDA pro:反编译工具。
  • ROPgadget:分析和利用ROP漏洞。
  • one_gadget:寻找libc中的调用exec(‘/bin/sh’)位置。
  • libc-database:查找libc版本。
  • msf:Metasploit Framework,用于渗透测试。
  • 栈溢出入门

    栈溢出是pwn中的基础,以下是一些栈溢出入门的方法和技巧:

  • 了解函数栈帧:学习如何在栈中操作指针和返回地址,了解如何改变程序的执行流程。
  • 使用gdb进行调试:通过gdb设置断点,观察程序在不同状态下的内存布局。
  • 编写简单的poc:从简单的栈溢出例子开始,逐步复杂化。
  • 理解防护机制:了解CANARY、ASLR等机制,学习如何绕过它们。
  • 练习实际题目:通过解答各种栈溢出题目,巩固所学知识。
  • 博客和文章

    如果你想深入了解pwn领域,可以参考以下博客和文章:

    • The Hackers' CodeBook:提供了大量的漏洞利用相关资料和工具。
    • Secure Coding:讨论各种安全漏洞和防护措施。
    • Exploit-DB:一个数据库,记录了各种漏洞的详细信息和利用方法。
    • CTF-Wiki:提供了CTF相关的知识和资源。

    入门之前的基础知识

    在开始pwn学习之前,需要掌握以下基础知识:

  • 汇编语言:了解程序的执行过程、函数栈帧、函数调用等。
  • 防护措施:了解CANARY、ASLR、NX等防护机制。
  • 编译、链接、装载、执行:理解程序从源代码到可执行文件的整个过程。
  • x86和x64寄存器:了解不同架构下的寄存器结构和操作。
  • ELF文件结构:了解ELF文件的各个部分及其作用。
  • Linux系统相关:了解文件描述符、系统调用、socket编程、shell命令等。
  • 栈溢出入门

    栈溢出是pwn中的一个基础,以下是一些栈溢出入门的方法和技巧:

  • 了解函数栈帧:学习如何在栈中操作指针和返回地址,了解如何改变程序的执行流程。
  • 使用gdb进行调试:通过gdb设置断点,观察程序在不同状态下的内存布局。
  • 编写简单的poc:从简单的栈溢出例子开始,逐步复杂化。
  • 理解防护机制:了解CANARY、ASLR等机制,学习如何绕过它们。
  • 练习实际题目:通过解答各种栈溢出题目,巩固所学知识。
  • 博客和文章

    如果你想深入了解pwn领域,可以参考以下博客和文章:

    • The Hackers' CodeBook:提供了大量的漏洞利用相关资料和工具。
    • Secure Coding:讨论各种安全漏洞和防护措施。
    • Exploit-DB:一个数据库,记录了各种漏洞的详细信息和利用方法。
    • CTF-Wiki:提供了CTF相关的知识和资源。

    总结

    pwn学习是一个充满挑战和收获的过程,需要不断的实践和学习。从基础工具和概念入手,逐步深入,结合实际练习,力求在漏洞利用领域不断提升自己的能力。希望这份指南能为你提供一些建议,帮助你在pwn领域走得更远。

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

    你可能感兴趣的文章
    nodejs下的express安装
    查看>>
    nodejs与javascript中的aes加密
    查看>>
    nodejs中Express 路由统一设置缓存的小技巧
    查看>>
    nodejs中express的使用
    查看>>
    Nodejs中搭建一个静态Web服务器,通过读取文件获取响应类型
    查看>>
    Nodejs中的fs模块的使用
    查看>>
    NodeJS使用淘宝npm镜像站的各种姿势
    查看>>
    NodeJs入门知识
    查看>>
    nodejs包管理工具对比:npm、Yarn、cnpm、npx
    查看>>
    NodeJs单元测试之 API性能测试
    查看>>
    nodejs图片转换字节保存
    查看>>
    nodejs在Liunx上的部署生产方式-PM2
    查看>>
    nodejs基于art-template模板引擎生成
    查看>>
    nodejs字符与字节之间的转换
    查看>>
    NodeJs学习笔记001--npm换源
    查看>>
    NodeJs学习笔记002--npm常用命令详解
    查看>>
    nodejs学习笔记一——nodejs安装
    查看>>
    vue3+Element-plus icon图标无法显示的问题(已解决)
    查看>>
    NodeJS实现跨域的方法( 4种 )
    查看>>
    nodejs封装http请求
    查看>>