快速刷通PWN的第一天

本文是快速刷通PWN的第一天的学习笔记,主要介绍了Exploit-exercises平台及其练习项目Stack0-Stack3。通过学习基础栈溢出原理,使用gdb进行动态调试,掌握无保护情况下覆盖局部变量的方法。文章还强调理解底层原理的重要性,旨在帮助初学者建立扎实的基础。
摘要由CSDN通过智能技术生成

快速刷通PWN的第一天

计划

声明:因为是自己学习的一个计划,所以可能并不是适用于所有人。但是尽可能考虑到由浅入深,由易到难。

一个比较推荐的二进制方面的课程是 Live OverflowBinary Hacking 课程,原版的视频是放在 YouTube 上的,但是有好心的小伙伴直接放在了 B 站上,方便大家学习。整个课程讲的非常浅显易懂,并且会带着你一步一步从零开始了解二进制的很多内容,强烈安利!考虑到最近有一次面向新手的技术分享,所以放在最开始,将结合一部分 Binary Hacking 课程和 Exploit-exercises(对于该部分的介绍将放入笔记正文中)的内容总结分享出来。

笔记

Exploit-exercises 介绍及笔记思路分析(不感兴趣的同学可直接跳入正文)

首先推荐一个练习平台:https://exploit-exercises.lains.space
这个平台主要包括了 Nebula 、Protostar、Fusion 等几个部分。基本顺序为 Nebula->Protostar->Fusion。官网上给了每个部分的虚拟机下载地址,但是下载速度可能非常慢,所以可以从 vulnhub (不是 P 神的 vulhub,vulhub 是偏向学 Web 的,对 Web 感兴趣的同学可以看看)上的镜像站点下载。

Nebula 介绍了一些非常常见的 Linux 下的概念和漏洞,学习完成 Nebula 将会对于 Linux 的本地攻击有一个相当透彻的了解(好吧,官网上自己号称的),并且可以粗略地了解一下远程攻击。这里给一份大佬放在 Github 上的 Nebula 部分的笔记:1u4nx/Exploit-Exercises-Nebula,感兴趣的小伙伴可以参考着去做。个人认为,如果对于 Linux 及相关漏洞没有过多了解,可以先从 Nebula 入手学习,如果有了一定的了解,就可以跳过 Nebula,直接进入下一阶段的 Protostar。

Protostar 是 Nebula 的下一个阶段,会介绍一些基本的内存损坏问题,例如没有开启保护下的 Linux 下的缓冲区溢出、格式化字符串漏洞和堆利用。个人认为这个模式是非常好的模式,因为对于新手而言,重要的不是做 PWN 题,而是清晰地理解底层原理,PWN 题只是一个学习的手段而已。所以虽然本系列笔记叫做快速刷通 PWN,但并不会以上来就会那一堆题目上手去刷题,那样只会流于表面的做题套路,而容易忽视真正的有价值的底层原理。欲速则不达,要想快就先慢。所以本系列笔记会从 Protostar 入手来去学习相关基础知识。

Fusion** 是 Protostar 的下一阶段,依然还是注重内存破坏、格式化字符串和堆利用,但是重点关注更高级的方案和在现代保护系统中的利用(即开启了各种保护**的情况下如何利用)。

所以,在本系列笔记的开始,甚至较长一段时间的开始,你会发现并没有去做任何一道 CTF 比赛中的 PWN 题,因为现有的 CTF PWN 题天然的自带逆向,其本质还是看源码,理解漏洞原理,所以我们跳过前面的一个逆向步骤,直接学习原理,完成之后再去带上逆向这一部分,这样能够更加节省学习时间和成本
Tips:

正文

Stack0

题目源码如下:

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>

int main(int argc, char **argv)
{
   
  volatile int modified;
  char buffer[64];

  modified = 0;
  gets(buffer);

  if
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值