【CTF资料-0x0001】moeCTF2020-Pwn从入门到入狱 by arttnba3

本文是Pwn初学者的引导,解释了什么是Pwn,涉及栈溢出漏洞利用的基本步骤,包括环境配置、安全检查、逻辑分析和漏洞利用。文章介绍了使用ida和pwntools等工具,通过一个样例程序演示了栈溢出的利用过程,最终达到获取shell的目标。
摘要由CSDN通过智能技术生成

github blog addr

Pwn从入门到入狱

Copyright © 2020 arttnba3,XDSEC

FOR BETTER READING EXPERIENCE, CLICK HERE

简介:什么是Pwn?

Pwn这个词本身其实是一个拟声词,最初来源于黑客们设想中的完全获取一台设备的控制权后便会发出“砰”的一声,Pwn因此而得名,即利用挖掘到的二进制漏洞对设备或系统发起攻击,并最终拿到shell(获取控制权)

Pwn也是最能代表原教旨主义黑客的一个安全研究方向同时也是最容易进监狱的一个方向

预备知识

作为二进制安全的分支之一,Pwn需要你熟练掌握如下基础知识:

  • 主流平台汇编语言,包括但不局限于X86、MIPS等
  • C语言
  • 计算机组成原理
  • 计算机操作系统
  • 静态分析(IDA)&动态调试(GDB)
  • Python
  • 编译原理

看完你可能会感觉有一丶丶头大,不过少有人是先把计科专业本科的内容全部学完才开始学pwn的,大家都是一边比赛一边学习的,所以不用担心因为自己0基础导致无法入门的情况的发生

CTF TO LEARN, NOT LEARN TO CTF

Pwn的解题过程?

  1. 题目的二进制文件一般会被部署到服务器上,使用nc xx.xx.xx.xx(ip) xxxx(端口)命令可以与服务器进行交互。并且该二进制文件的副本(与服务器上的完全相同或者基本相同)将作为附件形式被提供给选手下载。
  2. 你需要逆向分析二进制文件副本中存在的可利用漏洞,针对其编写Exploit(漏洞利用脚本),然后向服务器发起攻击,拿到服务器上保存的flag文件或字符串,将其提交至本平台。
  3. 注意命令行中的nc并不是做题工具,你需要在Linux下安装pwntools库(或者其它),用于编写可用性较高的Exploit。至于如何安装,如何使用,就需要聪明的你发挥自己的学习能力啦~

0基础入门:新人的第一个安全漏洞的利用——栈溢出——ret2text

前置知识要求:
  • C语言基本语法
  • Python语言基本语法

能大致看得懂C程序、有写简单的Python程序的能力即可

前置环境要求:
  • Windows

  • Linux

我们的一部分工作需要在Windows上完成,另一部份工作则需要在Linux中完成

你可以在windows上运行Linux虚拟机,也可以直接在真机运行linux

注:linux环境下由于默认的远程软件库是国外的源,下载速度可能会比较慢

百度“Linux 换源”与“pip 换源”更换Linux下的软件源为国内的软件源,提高下载速度
不同的Linux发行版本(如Ubuntu、Kali、manjaro等)请自行将搜索框内的“linux”换为对应的发行版名称

以下内容将通过几个样例简单地帮助你入门Pwn

以下内容操作环境位于Linux:

我们现在来看这样的一个程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;

void backdoor(void)
{
    system("/bin/sh");
}

void func(void)
{
    char str[20];
    puts("tell me your name plz:");
    gets(str);
}

int main(void)
{
    func();
}

我们使用-fno-stack-protector

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值