1. 程式人生 > >全國大學生資訊保安競賽writeup--careful(pwn150)

全國大學生資訊保安競賽writeup--careful(pwn150)

描述

其實沒有描述。。就是一個檔案,careful.
打開發現輸入index和value,10個之後會打出來一個數組。

思路

先逆向,ida看看。
main函式很簡單,return一個init_array。
到init_array裡邊就比較好玩了,不想看彙編直接f5,大致函式如下

int initarray()
{
    int result;
    char s[20];
    int v2;
    int v3;
    int i;
    memset(s, 0, 0x14u);
    for (i = 0;i <= 9;i++)
    {
        printf
("input index:"); fflush(stdout); scanf("%d", &v3); printf("input value:"); fflush(stdout); scanf("%d", &v2); result = v3; s[v3] = v2; if (i > 10) return result; } result = printf("Your Array:"); for (i = 0
;i <= 9;i++) { printf("%d ", s[i]); result = fflush(stdout); } return result; }

(手打的,因為在虛擬機器裡邊複製不出來,可能跟原文不太一樣)
演算法比較簡單,就是讀入index和value,把value存入相應的index對應的位置。
存入的彙編:

mov eax, [ebp+var_10];index
mov edx, [ebp+var_14];value
mov [ebp+eax+s], dl;這裡的s-0x28,是存s的地方

到這裡基本上就可以看出來了,先讀入index和value,然後存入s陣列,但是由於沒有下標判斷,所以造成任意位置寫,但是問題來了,寫可以改變返回地址,改變執行過程,可是改變到哪兒呢。gdb開啟之後checksec發現開了NX(堆疊不可執行),所以寫入shellcode直接執行的想法肯定是不行了,不過需要注意觀察,有一個函式是沒有使用的。

通過觀察,發現位於0x08048615處有一個add函式,沒有使用到,而且輸出一個字串後使用system呼叫呼叫date。即system(“date”)。 既然有了system,剩下的就好辦許多了,通過一個工具,即rop-tool(本來是用來寫ROP的,不過這些時候也可以用一用),可以查詢字串等,rop-tool search –string sh PROG ,可以查詢到程式裡的sh。

R-X 0x0804828e -> sh
 1 strings found.
 0 strings found.

於是我們找到了sh字串,不過還需要把他放到esp的地址處作為system呼叫的引數,esp地址處是函式呼叫的引數的地址,所以需要把sh的地址寫到呼叫system時的esp處。

剩下的工作:

  1. 改變esp指向的值,指向sh
  2. 改變儲存的eip,指向system呼叫

通過在gdb下加斷點,斷到initarray,可以看到ebp的值為0xffffcf28,在0xffffcf2c處記錄了返回地址,覆蓋掉返回地址,用一個位元組即可,通過計算0xffffcf2c和0xffffcf28-0x28的偏移,得到index應該為44,覆蓋為46(2e),因為返回值本來儲存的是0x08040640,而system位於0x0804062e。再通過單步執行一次,到system時發現esp的值為0xffffcf30,於是用4個位元組覆蓋掉0xffffcf30的值,覆蓋為sh的地址,就成功打開了shell。

相關推薦

全國大學生資訊保安競賽writeup--careful(pwn150)

描述 其實沒有描述。。就是一個檔案,careful. 打開發現輸入index和value,10個之後會打出來一個數組。 思路 先逆向,ida看看。 main函式很簡單,return一個init_array。 到init_array裡邊就比較好玩了

全國大學生資訊保安競賽writeup--拯救地球(reverse500)

描述 什麼?地球要爆炸了,據說拯救地球的程式碼就在這個程式裡。使命貌似光榮又艱鉅… tips:flag是flag{結果} 附件描述: 檔名:程式 校驗(SHA1):D78073A4C06468DFC95822A764D792C09A87F78A

2016全國大學生資訊保安競賽-web-WriteUp

題目名稱:破譯 題目內容:破譯下面的密文: TW5650Y - 0TS UZ50S S0V LZW UZ50WKW 9505KL4G 1X WVMUSL510 S001M0UWV 910VSG S0 WFLW0K510 1X LZW54 WF5KL50Y 2

2017全國大學生資訊保安競賽Reverse 填數遊戲

參考的writeup在這: 使用的程式碼為py: ''' f = open('data.txt') num = 0 a = [] for line in f: print line,line[1] if line[1] == '0': a.append('?'

APK Crack Write Up 2017年全國大學生資訊保安競賽資訊保安技能賽

首先把apk拖進JEB看一下Manifest.xml檔案,找一下主類,沒有被隱藏,找到主類程式碼反編譯:發現有個涉及到JNI函式show,於是逆向一下這個so檔案,首先通過函式名找到這個方法:進去之後反編譯拿到虛擬碼:拿到虛擬碼以後,有個技巧,點選v1,按y,然後輸入JNIE

[360第二屆大學生資訊保安]WriteUp-加密解密

01010000010010110000001100000100000101000000000000000000000000000000100000000000000101010101000110101111010001100100011111100000110000000101001000101001000

第四屆上海大學生資訊保安比賽----- web3

這道是原始碼題, 原始碼: 原始碼很簡單,我覺得考得主要是細心 直接看第一個if, 判斷是否上傳了一個檔案,然後進去判斷是否POST了一個名為file的引數,如果有上傳這個引數,那麼$filename就等於這個POST上去的值,否則就等於上傳上去的檔名   然後下面判斷$filena

2018年高教社杯全國大學生數學建模競賽題目

簡單地說:數模競賽就是對實際問題的一種數學表述。 具體一點說:數學模型是關於部分現實世界為某種目的的一個抽象的簡化的數學結構。 更確切地說:數學模型就是對於一個特定的物件為了一個特定目標,根據特有的內在規律,做出一些必要的簡化假設,運用適當的數學工具,得到的一個數學結構。數學結構可以是數

2018年高教社杯全國大學生數學建模競賽題目問題B 智慧RGV的動態排程策略

問題B    智慧RGV的動態排程策略 圖1是一個智慧加工系統的示意圖,由8臺計算機數控機床(Computer Number Controller,CNC)、1輛軌道式自動引導車(Rail Guide Vehicle,RGV)、1條RGV直線軌道、1條上料傳送帶、1條下料傳

2018高教社杯全國大學生數學建模競賽

在高溫環境下工作時,人們需要穿著專用服裝以避免灼傷。專用服裝通常由三層織物材料構成,記為I、II、III層,其中I層與外界環境接觸,III層與面板之間還存在空隙,將此空隙記為IV層。 為設計專用服裝,將體內溫度控制在37ºC的假人放置在實驗室的高溫環境中,測量假人面板外側的

全國大學生數學建模競賽 B題 RGV的動態排程策略

                                                   智慧RGV的動態排程策略                                                    摘要 本文為RGV的動態排程問

2018全國大學生數學建模競賽頒獎儀式直播現場(預存)

由全國大學生數學建模競賽組委會主辦、上海賽區組委會協辦、上海交通大學承辦的2018高教社杯全國大學生數學建模競賽頒獎儀式將於12月15日在上海交通大學舉行。 屆時 中國大學生線上官方微博將對頒獎儀式進行現場直播。   直播地址:點選 2018高教社杯全國大學生數學建模競賽頒獎儀式 進

2018年全國大學生數學建模競賽獲獎名單公佈時間

還有 2天!!! 2018年11月10日20:00 請注意查收 您可以儲存此篇文章,屆時點選有下劃線紅色字型可直接到達官方網站檢視,也可關注官方微信公眾號:wwwunivscn 或掃描下方二維碼,關注獲取更多訊息 願您榜上有名!!!

2017年全國大學生電子設計競賽獲獎名單

2017年全國大學生電子設計競賽獲獎名單 競賽相關文件請從ftp://ftp.nuedc.com.cn/下載 序號 賽區 組別 題號參賽隊學校 學生姓名學生姓名學生姓名 獎項 1 安徽 本科組 A 安徽大學 柳岸明 陳琦 許長樂 二等獎 2 安徽 本科組 A 安徽大學 郭瑞昌 高陳媛

2017年全國大學生電子設計競賽湖南賽區獲獎名單

2017年全國大學生電子設計競賽湖南賽區獲獎名單,下載地址:http://govnew.hnedu.cn:8090/zcms/contentcore/resource/download?ID=39552 2017年全國大學生電子設計競賽湖南賽區獲獎名單 序號 學生姓名 所在學校 指導老師

2018全國大學生數學建模競賽時間及試題下載

2018 高教社杯全國大學生數學建模競賽的具體時間: 9 月 13 日(週四)20 時至 9 月 16 日(週日)20 時 。屆時請勿忘記下載試題: 2018全國大學生數學建模競賽時間及試題下載 數學建模大賽 作為四大國家級大學生競賽之一,是針對遇到的問題或者具體事例,通過數學建

CUMCM:全國大學生數模競賽簡介 & 相關書籍、文章等推薦

全國大學生數模競賽評獎等級 國家獎 特等獎(1+1) 國一 2017數模競賽MATLAB創新獎(1+1) 國二 省獎(山東賽區) 省一 省二 省三 成功參賽獎 A,B獲獎比例基本相同 競賽時間推薦分配 第一天:    上午                  

2018全國大學生數學建模競賽試題下載(預存)

距離2018全國大學生數學建模競賽越來越近,此次競賽的時間為 9 月 13 日(週四)20 時至 9 月 16 日(週日)20 時,屆時請點選2018全國大學生數學建模試題下載 獲取試題資料 中國大學生線上是全國大學生數學建模競賽組委會指定的數學建模

恩智浦杯(飛思卡爾)全國大學生智慧車競賽攝像頭簡單的影象失真矯正技術原理與實現(透視變換)

  先說一些廢話(沒耐心看可直接看分割線下面的內容):   博主是去年參加了十二屆的恩智浦杯(飛思卡爾)全國大學生智慧車競賽光電競速組,我們隊當時獲得的是區賽預賽第三、決賽第四的成績,我們區賽的光電競速組可以選拔五組進入全國總決賽,但因為我們學校另一個隊獲得了區賽決賽第三,

2018全國大學生數學建模競賽比賽時間及試題下載

距離一年一屆的全國大學生數學建模大賽的腳步越來越近,不僅是我們各個即將參賽的小組,對於我們同樣關注本年度競賽的心中都有著絲絲迫切與期待。 2018 高教社杯全國大學生數學建模競賽的具體時間已經確定為 9 月 13 日(週四)20 時至 9 月 16 日