1. 程式人生 > >搭建一道PWN題

搭建一道PWN題

最近接到任務,說要出幾個pwn題,所以就去熟悉了一下PWN題的搭建:

第一步,準備一道pwn題的原始碼

#include<stdio.h>
int main()
{
	int a=1;
	float key=2018.81,input;
	if (a==2)
	{
		printf("input your key:\n");
		scanf("%f",&input);
		if(input==key)
			printf("mctf{[email protected]_use_GDB_N0W}");
	}
	return 0;
}

第二步就是gcc編譯了,因為還要牽扯到很多的開關,所以這裡一步步來
1、關閉DEP/NX(堆疊不可執行)

gcc  -z execstack -o 編譯完的檔名 待編譯的檔名

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

gcc -fno-stack-protector -o 編譯完的檔名 待編譯的檔名

3、關掉程式ASLR/PIE(程式隨機化保護)

gcc -no-pie 編譯完的檔名 待編譯的檔名

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位可執行程式

gcc -m32 -z execstack -fno-stack-protector -o 編譯完的檔名 待編譯的檔名

第三步,我們在做題目的時候經常碰到的就是將題目作為一個服務繫結在一個伺服器的一個埠上,所以接下來可以用socat

socat tcp-l:埠號,fork exec:程式位置,reuseaddr

最後一步就是訪問題目了

nc IP地址 埠號

相關推薦

搭建一道PWN

最近接到任務,說要出幾個pwn題,所以就去熟悉了一下PWN題的搭建: 第一步,準備一道pwn題的原始碼 #include<stdio.h> int main() { int a=1; float key=2018.81,input; if (a==2)

一道簡單的入門pwn

這是一道入門的pwn題 拿到題先用file命令檢視一下檔案資訊 可以看到是32-bit 的elf檔案,用32位的IDA開啟。 首先進入main函式,F5反編譯後分析程式碼 定位到輸入的引數&s,可以看到引數s分配的空間。這一題通過覆蓋

一道

tin res += tint cal 簡化 rgs ret turn 題目:計算13+23+33+……+(n-1)3+n3. 這個式子一般的解法,應當是用循環的方式:先算13,再算23,相加,再算33,相加……算出結果。 1 import java.util.Scan

每天一道Java[1]

就會 p s 提高 清除 轉儲 處理 攻擊 大神 如何使用 問題:char[]與String相比,有什麽優勝的地方? 回答: 針對安全保密高的信息,char[]比String做得更好。因為String是不可變得,即使你修改原先的變量,實際上也是在內存中新建一個對

每天一道Java[6]

parse -m 每天 t對象 logs 父類 stringbu ont text 題目 String字符串怎麽轉換為Date,Date又怎麽轉換成String字符串 解答 String->Date 主要用到類SimpleDateFormat

每天一道Java[7]

java 什麽是 我們 present 使用 指定 以及 let app 題目 什麽是REST原則,請解釋RESTful架構,以及其設計思想? 解答 REST,全稱為Representation State Transfer,是一種互聯網軟件的架構原則

一道CTF引發的思考-MySQL的幾個特性(續)

get 是否 區分 sql sel admin database pan blog 0x00 背景   這兩天處於轉牛角尖的狀態,非常不好。但是上一篇的中提到的問題總算是總結了些東西。 傳送門:疑問點0x02(4) 0x01 測試過程 (1)測試環境情況:創建了如下測試

每天一道Java[9]

public interface jvm image 外部 .cn c代碼 bsp 底層 題目 native關鍵字的作用是什麽? 解答 首先,需了解JNI(Java Native Interface),它是連接Java平臺與本地C代碼的一個API。 其次,

每天一道Java[11]

解答 huang 同步鎖 每次 都是 對象 問題 不能 color 題目 synchronized怎麽實現線程同步?請修改《每天一道Java題[10]》中的MyRunnableThread類以解決三個線程都獲取到10的問題。 解答 方法一: 采用synchro

hdu2094—看似拓撲實際上是一道思維

pan blog space acm insert hdu2094 == sin typedef HDU2094 產生冠軍 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2094 題意:中文題,就不解釋了。題意已經非常清楚了

一道leetcode的收獲如何比較字符串的大小重寫sort中的compare[](string &s,string &t){return s+t>t+s};

etc ++ ansi 匿名 gin leet clas size_t first KEY:一種很好的想法,寫法也很好,使用for(auto i:num)遍歷訪問num lambda表達式重寫比較compare參數,相當完美 while處理[0,0,0]情況的輸出。優雅的解

洛谷P3929 SAC E#1 - 一道 Sequence1【枚舉】

fin 中一 pla 數列 但是 n) def show clas 題目描述 小強很喜歡數列。有一天,他心血來潮,寫下了一個數列。 阿米巴也很喜歡數列。但是他只喜歡其中一種:波動數列。 一個長度為n的波動數列滿足對於任何i(1 <= i < n),均有:

【洛谷P3930】SAC E#1 - 一道大水 Knight

輸入 告訴 com space count es2017 所在 false .... 題目背景 毒奶色和F91是好朋友。 題目描述 他們經常在一起玩一個遊戲,不,不是星際爭霸,是國際象棋。 毒奶色覺得F91是一只雞。他在一個n×n的棋盤上用黑色的城堡(車)、騎士(馬)、主教

【Luogu】P3930 SAC E#1 - 一道大水 Knight

經營 scan closed char node pty pri b- 種類 【題目】洛谷10月月賽R1 提高組 【題意】給定n*n棋盤和<=16個棋子,給幾個棋子種類和攻擊範圍,現我方只有一馬,求能否吃王。 【算法】狀壓+BFS 【題解】16種棋子中,馬不能吃馬,直

【Luogu】 P3928 SAC E#1 - 一道簡單 Sequence2

lap sed fin bit amp lowbit pac first main 【題目】洛谷10月月賽R1 提高組 【算法】遞推DP+樹狀數組 【題解】列出DP遞推方程,然後用樹狀數組維護前後綴和。 #include<cstdio> #include&l

noip模擬賽 SAC E#1 - 一道中檔 Factorial

因子 格式 nbsp 整數 100% ostream 沒有 說明 出現 題目背景 數據已修改 SOL君(爐石主播)和SOL菌(完美信息教室講師)是好朋友。 題目描述 SOL君很喜歡階乘。而SOL菌很喜歡研究進制。 這一天,SOL君跟SOL菌炫技,隨口算出了n的階乘。 SOL

洛谷 P3927 SAC E#1 - 一道中檔 Factorial 題解

nbsp str char 背景 通知 bsp 輸入輸出格式 n的階乘 c代碼 此文為博主原創題解,轉載時請通知博主,並把原文鏈接放在正文醒目位置。 題目鏈接:https://www.luogu.org/problem/show?pid=3927 題目背景 SOL君(

(一道模板) 無源匯有上下界可行流

edi block html else printf ack 分類 tex long long 題目描述 這是一道模板題。 n 個點,m 條邊,每條邊 e 有一個流量下界 lower(e) 和流量上界 upper(e),求一種可行方案使得在所

【題解】售票系統--一道毒瘤

申請 mark AI 基本上 reg ring down code 時間限制 售票系統 輸入文件:railway.in 輸出文件:railway.out 時間限制:1 s 內存限制:128 MB 【問題描述】 某次列車途經C個城市,城市編號依次為1到C,列車上共有S個座

一道公式——數三角形

大學 相同 上大 個數 幫助 頂點 我們 表示 body 數三角形(count) 時限:10s 內存:512M 剛剛上大學的潔潔在學習組合數學的過程中遇到一道麻煩的題目,她希望你能幫助她解決。給定一張無向完全圖G,