原创 oj 中level3 (普通棧溢出32位)

查看文件信息,安全機制 代碼審計 分析漏洞點 編寫EXP 一道題出來,先看一下保護機制, 由於你道題是nx是保護的, 拉進入ida看一下,明顯這道題是棧的溢出 這道題們沒有system 函數,和binsh 其實這道題沒有這

原创 bugku pwn4

查看保護機制,沒有任何保護 拉入ida看一下 read函數是一個危險函數,造成棧溢出 查看一下沒有binsh字符串,但在ida裏面看到哪個$0(這個在linux是shell腳本的名稱) system()調用frok()產生子進程

原创 無安全機制 32位

源碼 編譯 :gcc -m32 -no-pie -fno-stack-protector -z execstack -o no no.c 要看ubuntu中是否是32位還是64位, 一開始查看安全機制 可以加一條命令可以關閉系統的

原创 入門棧溢出(1)

1,shellcode (修改返回地址,讓其指向溢出數據中的一段指令) 其實就是用攻擊指令的起始地址覆蓋返回地址,就可以得到shell payload:padding1+ address of shellcode +p

原创 堆利用

這裏給哪些初學者學堆的一些簡單的講解, 什麼是堆? 在程序運行過程中,堆可以提供動態分配的內存,允許程序申請大小未知的內存。堆其實就是程序虛擬地址空間的一塊連續的線性區域,它由低地址向高地址方向增長。我們一般稱管理堆的那部分程序爲

原创 pwn guess 中利用fork

checksec 查看保護機制 guess 只有一個保護, 發現程序自己把讀取flag到了棧中,所以思路就是: 1.通過覆蓋argv[0]先泄露puts的地址 2.通過泄漏的puts的地址,計算出基地址然後泄漏出enviro

原创 oj level2_x64 簡單棧溢出(64)

一開始就看一下這道題的保護機制和位數 由於NX是保護的,所以棧上的數據沒有執行權限 防止攻擊手段:棧溢出 + 跳到棧上執行shellcode 因爲這道題是64位的,不是32位,32位和64位的主要區別在於函數參數傳遞的方式, 3