PWN題搭建


0x00.准備題目

例如:level.c

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

int main(){
    char buffer[0x10] = {0};
    setvbuf(stdout, NULL, _IOLBF, 0);
    printf("Do your kown what is it : [%p] ?\n", buffer);
    printf("Now give me your answer : \n");
    read(0, buffer, 0x40);
    return 0;
}

0x01.GCC/G++編譯

命令參數

1.關掉DEP/NX(堆棧不可執行)

gcc  -z execstack -o level level.c

2.關掉Stack Protector/Canary(棧保護)

gcc -fno-stack-protector -o level level.c

3.關掉程序ASLR/PIE(程序隨機化保護)

gcc -no-pie level level.c

4.關閉整個linux系統的ASLR保護

sudo -s 
echo 0 > /proc/sys/kernel/randomize_va_space
exit

5.打開整個linux系統的ASLR保護

sudo -s 
echo 2 > /proc/sys/kernel/randomize_va_space

6.64位linux下面的GCC編譯出一個32位可執行程序

# 加參數- m32
gcc -m32 -z execstack -fno-stack-protector -o level level.c

0x02.掛載題目

1.使用socat掛載在服務器端口

sudo apt-get install socat
socat tcp-l:端口號,fork exec:程序位置,reuseaddr

2.nohup命令(使得關閉終端也能運行題目程序)

First.編寫腳本pwn.sh

#!/bin/sh
#name:pwn.sh
socat tcp-l:端口號,fork exec:程序位置,reuseaddr

Next.運行腳本

sudo chmod u+x ./pwn.sh
nohup ./pwn.sh &

0x03 訪問

nc IP地址 端口號

 0x04 參考

CTF中pwn題的搭建                                                                                                                                                                                                                                                                                                                     .                                                                                                                                                                                                   .


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM