1. 程式人生 > >BUGKU上幾道有意思的題

BUGKU上幾道有意思的題

misc

隱寫2

這道題真的很難想到竟然是改變了圖片的高度,不知道有沒有什麼方法可以看出來,我是最後搜尋了一下別人writeup,看到提示才知道的。
之後就用 010editor 開啟 2.png 圖片,這個軟體特別好的是有png.bt外掛,可以幫助看16進位制的png圖片的各個值都代表什麼。
這裡寫圖片描述

這裡寫圖片描述
點開IHDR結構中,找到height那一行,選中後上面對應的16進位制數顏色也會改變,改之前這個值是000001A4,也就是420,我把它改成和寬一樣。這時如果儲存再開啟檔案會提示檔案損壞,是因為沒有通過CRC校驗,所以改完之後還要改這個值影響到的CRC校驗值。
修改完高度值和CRC值之後再儲存再開啟就可以看到flag了。有篇

隱寫技巧——利用PNG檔案格式隱藏Payload 講解了png檔案格式和CRC計算程式碼,講得很好。
下面附上那篇文章中的CRC值的計算程式碼(找程式碼的時候發現可能有好幾種CRC校驗值,但是能通過校驗就可以了):

#include <stdio.h>
#include <string.h>

unsigned int GetCrc32(char* InStr,unsigned int len){        
  unsigned int Crc32Table[256];      
  int i,j;        
  unsigned int Crc;        
  for
(i = 0; i < 256; i++){ Crc = i; for (j = 0; j < 8; j++){ if (Crc & 1) Crc = (Crc >> 1) ^ 0xEDB88320; else Crc >>= 1; } Crc32Table[i] = Crc; } Crc=0xffffffff
; for(int m=0; m<len; m++){ Crc = (Crc >> 8) ^ Crc32Table[(Crc & 0xFF) ^ InStr[m]]; } Crc ^= 0xFFFFFFFF; return Crc; } int main(int argc, char* argv[]) { char buf[17]={0x49,0x48,0x44,0x52,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0x1A,0x08,0x04,0x00,0x00,0x00}; unsigned int crc32=GetCrc32(buf,sizeof(buf)); printf("%08X\n",crc32); return 0; }

linux ??????

這題也很有意思,檔案解壓後的flag原來是一個linux的檔案系統檔案,可以用mount命令來將檔案系統中的內容放入一個資料夾,然後從資料夾裡可以看到。
這裡寫圖片描述
之後將這個檔案放入linux系統中執行如下命令,每條命令的執行結果我記不太清了,只記得最後test資料夾中有flag.txt 和lost+found兩個檔案,flag.txt中存放的就是flag。

#file flag 
#mkdir test
#mount flag test
#cd test
#ls
flag.txt lost+found

中國菜刀,不再web裡?

開始思路是菜刀連線之前會先上傳木馬,然後再用菜刀連線。後面找到了3.php,但是沒有沒有找到flag。最後參考了http://www.bugku.com/thread-11-1-1.html,才知道在哪裡。
因為博主已經寫得很清楚了,我就補充一點細節吧。
要顯示全部對應的全部分組位元組要點選箭頭所指的那一行
這裡寫圖片描述
顯示分組位元組後要刪去前後的[email protected]需要通過增加開始的位置和減少結束的位置來實現。
這裡寫圖片描述
之所以解碼為壓縮是因為讀取的是flag.tar.gz檔案的內容,解壓縮後才能看到裡面的明文內容。很神奇吧!
還有下面兩題也很有意思:
1.misc裡面的《寬頻資訊洩露》,用http://www.pc841.com/article/20150204-42006.html 中的方法可以解決,而且提供了工具,不過開啟conf.bin之後看到的是一段xml程式碼,和連結樣例顯示的不一樣,但是不影響找到使用者名稱,搜尋“username”就可以。
2.Crypto中的《一段base64》,除了中間涉及到各種編碼可以用Converter解密之外,http://www.admin5.com/article/20080310/75252.shtml 中提到的這些編碼在網頁掛馬中的利用也是很眼前一亮,也許是我接觸得太少,不過沒關係,慢慢積累,今天收穫很多,開心!

相關推薦

BUGKU有意思

misc 隱寫2 這道題真的很難想到竟然是改變了圖片的高度,不知道有沒有什麼方法可以看出來,我是最後搜尋了一下別人writeup,看到提示才知道的。 之後就用 010editor 開啟 2.png 圖片,這個軟體特別好的是有png.bt外掛,可以幫助看

Codeforces神一般的資料結構

給一棵樹,每個點有個顏色,支援對子樹進行覆蓋,詢問子樹中含有多少種不同顏色.顏色最多60種. 如果沒有修改操作,可以使用莫隊,但是這裡有修改操作,不能使用莫隊. 那麼還剩下顏色最多60種這個突破口. 由於相同的顏色只計算一次,自然地想到用一個

union註入的ctf,實驗吧簡單的sql註入1,2,這個看起來有點簡單和bugku的成績單

需要 簡單 details 9.png lmap bug 輸入數據 php 接下來 這幾天在做CTF當中遇到了幾次sql註入都是union,寫篇博客記錄學習一下。 首先推薦一篇文章“https://blog.csdn.net/Litbai_zhan

d050: 妳那裡現在點了?

names spa clas 卻又 out pan 水題 main ostream 減去15即可(註意這個數小於15的情況) 題目:珊珊到了美國猶他州的楊百翰大學之後,文文禁不住對她的思念,常常想打電話給她,卻又擔心在美國的她是不是在睡覺。好不容易鼓起勇氣打通了電話,第一句

素數的(c語言版本)

求素數一直以來是c語言的經典題目,下面是PAT做題過程中想到的幾道素數小題,整理如下: 1 求素數的兩種方法 1.1 判斷n是否能被1~n-1整除 #include<stdio.h> int main() { int i, n; scanf("%d", &

JS演算法

笛卡爾乘積 示例輸入:['1', '2'], ['a', 'b'], ['+', '-', 'x'] 示例輸出:["1a+", "1a-", "1ax", "1b+", "1b-", "1bx",

計數

5921. 【NOIP2018模擬10.22】種花 題意: 給定一個 n

【NOIP2018模擬10.5】同餘方程 Problem 給定 x ∈

75 BAJT 中高階 Java 面試題,你能答

整理了下 BATJ 關於 JAVA 的面試題目,大家參考下吧,希望對大家有所幫助,可以幫大家查漏不缺。 答對這些面試題,PASS 掉 80 % 的求職競爭者。 1.hashcode相等兩個類一定相等嗎?equals呢?相反呢? 2.介紹一下集合框架? 3.hash

樹狀陣列模板及poj簡單

/* 覺得真是…經歷了高考啥都忘了(其實還是當初學得不踏實 現在一點一點再重新來補吧(過了一年再來說這話的我 */ 參考資料及模板 poj題目小集 看上去是個二維的題,事實上因為讀入資料是按序排列的,所以可以直接轉化成一維來做,就

[科技部與你共成長] 語言

試題1:分別給出BOOL,int,float,指標變數與“零值”比較的 if 語句(假設變數名為var) 試題2:以下為Windows NT下的32位C++程式,請計算sizeof的值 void Func ( char str[100] ){ sizeof( str ) = ?} voi

Python程式設計練習的,從零開始學習Python!

資料排序 Python對資料進行排序計算練習用到input及range、append及if控制流語句等等的綜合應用練習。在這裡小編準備了一份Python入門學習資料,加QQ群:700341555即可獲取!   Python解題思路分析: 首先可以利用選擇法,即從9個數

關於二分匹配的簡單

最近重新學習了二分匹配的演算法,並趁熱打鐵做了幾道簡單的題。把每一個任務在兩種機器下的模式看作一條邊,建圖之後求最小頂點覆蓋集(用最少的點,使每一條邊都與其中一個點相關聯),而最小頂點覆蓋集=最大匹配,此題在輸入的時候把模式為0的去掉,因為兩種機器初始狀態為0。#includ

老高收藏的邏輯推理

說明 線上 str 年齡 方式 兩個 生男生女的概率 女孩 滿了 body { font-size: 15px; font-family: "Courier New" } 老高今天下午看書,遇到了幾

老孃的Java入門啦之——杭電的入門 1091

                                                 1091 A+B for Input-Output Practice (III) Time Limit: 2000/1000 MS (Java/Others)    Memo

老孃的Java入門啦之——杭電的入門 1092

                                                1092 A+B for Input-Output Practice (IV) Time Limit: 2000/1000 MS (Java/Others)    Memory

【fhq Treap】bzoj1500(聽說此多碼遍就能牢記fhq Treap)

def queue new merge gre 超過 discus make || 1500: [NOI2005]維修數列 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 15112 Solved: 4996[Submit]

C語言之非常簡單的

語言 scanf void 類型 比較 簡單 bsp 增長 語句   C語言之非常簡單的幾道題(還是寫寫),比較簡單吧,主要有幾道題的數據類型(如,第三題)和語句順序(如,第二題)需要註意一小下下。 1. 求表達式S=1*2*3……*N的值大於150時,最小的N的值

大家可以看看這你們會嗎??

變量 答案 .html clu 網址 ptr 編譯 是什麽 編譯器 以下程序的結果是什麽? int i = 1;int main(){int i = i;return 0;}A: main()函數裏的i是一個未定義值 B: main()函數的i為1 C: 編譯器不允許這種寫

MT【222】自招面試真

知識 我們 真題 頭發 請問 離開 可能 水平 北京大學 1.(2015東南大學)2分鐘找杯子,4分鐘找茶葉,7分鐘燒水,爸爸花13分鐘給家訪的老師泡茶,請問你怎麽看? 2.(2014復旦大學)共有5頂帽子,三個黑的兩個白的,三個人排成一排,並讓這三個人每個人選擇一頂戴上