攻防世界open source 逆向之旅002

2021-10-12 20:01:36 字數 1906 閱讀 8900

這是乙個原始碼題,**如下:

#include

#include

intmain

(int argc,

char

*ar**)

unsigned

int first =

atoi

(ar**[1]

);if(first !=

0xcafe

)unsigned

int second =

atoi

(ar**[2]

);if(second %5==

3|| second %

17!=8)

if(strcmp

("h4cky0u"

, ar**[3]

))printf

("brr wrrr grr\n");

unsigned

int hash = first *

31337

+(second %17)

*11+strlen

(ar**[3]

)-1615810207

;printf

("get your key: ");

printf

("%x\n"

, hash)

;return0;

}

分析第乙個if語句,如果argc!=4,就會輸出「what」然後退出程式,說明argc正確值應該為4;

同理分析第2,3,4個if語句可以得到

ar**[1]

=0xcafe

//換算十進位制是51996

ar**[2]

=17*x+8 且 ar**[2]

!=5*x+3

ar**[3]

="h4cky0u"

得到上述資訊後就可以計算引數hash的值了。以下是我修改後的**,可以輸出hash的16進製制形式的值。

在#include 

#include

intmain

(int argc,

char

*ar**)

/* unsigned int first = atoi(ar**[1]);

if (first != 0xcafe)

*//* unsigned int second = atoi(ar**[2]);

if (second % 5 == 3 || second % 17 != 8)

*/unsigned

int first =

51966

;unsigned

int second =25;

/* if (strcmp("h4cky0u", ar**[3]))

*/int len =7;

printf

("brr wrrr grr\n");

//unsigned int hash = first * 31337 + (second % 17) * 11 + strlen(ar**[3]) - 1615810207;

unsigned

int hash = first *

31337

+(second %17)

*11+ len -

1615810207

;printf

("get your key: ");

printf

("%x\n"

, hash)

;return0;

}

結果如下:

這道題比較簡單,就不多說了。

攻防世界mfw 攻防世界 Web mfw

題目資訊 image.png 工具 githack,dirsearch 知識點 git漏洞 審計 開啟題目場景,檢查 發現這樣乙個頁面 image.png 訪問.git目錄,疑似存在git原始碼洩露 image.png 再用dirsearch掃瞄,發現git原始碼洩露 使用 githack獲取原始碼...

攻防世界Web lottery

開心!雖然第一次遇到git原始碼洩露寫了好久,但是寫出來了就很開心 開啟介面我們知道,要拿到flag,就要贏到足夠的錢,其實一開始我以為可以找到乙個地方直接修改餘額什麼的,把網頁源 中的檔案看了幾個都沒發現突破口 然後又沒思路了 嘗試了一下robots.txt,想看看有沒有什麼檔案,然後發現了 瞬間...

攻防世界 xctf Guess writeup

本題的解析官網上有,這裡是乙個自動化的指令碼,完成的是自動上傳乙個ant.jpg的檔案 ant.jpg是乙個ant.zip壓縮包重新命名的檔案,裡面是乙個ant.php的一句話木馬 執行返回的是在web後台這個檔案重新命名後的檔案的url。可通過zip偽協議訪問這個木馬。指令碼如下 import r...