guestbook(hackme web部分writeup)
題目連結
開啟連結可以發現,是一個公告欄,可以自己提交標題和內容,然後會在網頁上顯示出來。
網頁原始碼肯定啥也沒有,抓包也是沒有有用的資訊,我們考慮flag在伺服器的資料庫內,所以我們就想到用sql注入。那麼資料庫的資訊會顯示在哪兒呢?那就是我們提交的標題內容顯示的地方,我們先隨便提交一些資料,比如標題為12,內容為34。提交後,檢視資訊,我們通過網址來進行注入。
首先我們有用的一個嘗試:
https://hackme.inndy.tw/gb/?mod=read&id=-1 union select 1,2,3,4#
關於這個語句我們有很多值得注意的點。(方便萌新理解,所以會說得更詳細一些)
首先是union select,這個語句是用來合併兩個搜尋,即將兩個select的結果放在同一個表內。這就有一個要求,兩個結果的列數要是相同,如果不相同會報錯。
第二點,#是什麼?這是mysql的單行註釋,把後面的語句註釋掉,消除後面語句的影響。
第三點,我們知道select後面一般加列名,表示我們需要哪一列的資訊,那麼這裡的1234是什麼?這就是select的一個特殊用法,這樣返回的是一個如下的表:
1 | 2 | 3 | 4 |
---|---|---|---|
1 | 2 | 3 | 4 |
列名是1234,內容也是對應的數字。
那麼我們這裡最大的用處就是試探前面一個select的列數以及回顯的位置。
什麼意思?
正如前述,如果前後的結果列數不同,是會出錯的。所以我們這裡並不是直接就寫1,2,3,4,其實是嘗試1、1,2、1,2,3後得到的結果,所以我之前也是說這是一個有用的嘗試,就是示意我略過了這個過程。
那麼確定回顯的位置又是什麼意思?
因為我們要想獲取flag,必須要讓flag顯示在客戶端,那麼我們就得知道1,2,3,4分別會顯示在頁面的那個位置,或者說哪個位置會顯示。
而這也蘊含第四點,為什麼id=-1?因為id=-1時,前面的結果肯定是空,因為id通常是大於0,所以這樣我們返回的結果就是如下的結果:
1 | 2 | 3 | 4 |
---|---|---|---|
1 | 2 | 3 | 4 |
這樣就可以確保網頁上顯示我們的數字。
關於這一點我們就說這麼多,如果有不理解的可以繼續向下看。
我們得到的結果可以發現,1不顯示,2是標題,3是內容,4是時間。也就是說我們可以利用2,3,4去回顯資訊。我們以2為例。
輸入如下的url:
https://hackme.inndy.tw/gb/?mod=read&id=-1 union select 1,database(),3,4#
我們這裡用database()代替了2,database()是用來顯示資料庫名稱的函式,代替了2以後,該url返回的結果中,標題的位置,即原來2的位置,會顯示資料庫名稱,我們看到是g8.
接下來就用類似的方法依次查詢我們需要的資訊:
https://hackme.inndy.tw/gb/?mod=read&id=-1 union select 1,(select table_name from information_schema.tables where table_schema=database() limit 0,1),3,4#
這個語句是查詢表的名字,可以得到是flag。
值得解釋的是這裡的limit,這也只是一個嘗試,limit後的第二個數字表示要返回幾個資料,而第一個數字是偏移量,表示要從第幾行開始查詢,這也是需要嘗試,只不過這裡湊巧,第一個就是我們需要的。
接下來就不一樣了,一個有用的嘗試:
https://hackme.inndy.tw/gb/?mod=read&id=-1 union select 1,(select column_name from information_schema.columns where table_name='flag' limit 1,1),3,4#
此處我們就是偏移量為1時才是我們需要的列,名字是flag
最後查詢flag即可:
https://hackme.inndy.tw/gb/?mod=read&id=-1 union select 1,(select flag from flag limit 1,1),3,4#
這樣我們就可以獲取flag了。
一個類似的練習題:
Login as admin 0.1
這一題是獲取資料庫裡的flag,方法類似。該題的題解會寫得簡略一些。
相關文章
- HCTF writeup(web)Web
- 2020湖湘杯部分writeup
- web_ping的writeupWeb
- CTFSHOW-WEB入門 writeupWeb
- Web_Bugku_WriteUp | 變數1Web變數
- 31C3 CTF web關writeupWeb
- hackme 【攻防世界】Reverse
- vulnhub - hackme1
- vulnhub - hackme2
- xctf攻防世界—Web新手練習區 writeupWeb
- 第一屆BMZCTF公開賽-WEB-WriteupWeb
- 32C3 CTF 兩個Web題目的WriteupWeb
- Web_BUUCTF_WriteUp | [強網杯 2019]隨便注Web
- 【bugku_writeup】web24 前女友 來源:山科大ctfWeb
- Web For Pentester靶場(xss部分)Web
- SSCTF Writeup
- JCTF Writeup
- BCTF Writeup
- 高校運維賽WEB部分-gxngxngxn運維Web
- wargame narnia writeupGAM
- 太湖杯writeup
- 什麼是web安全?web安全主要分為幾個部分?Web
- Alictf2014 WriteupTF2
- Wargama-leviathan WriteupGAM
- 0ctf writeup
- 360hackgame writeupGAM
- 黃河流域挑戰賽WEB部分-gxngxngxnWeb
- Hack.lu 2014 Writeup
- xss挑戰賽writeup
- CTF——WriteUp(2020招新)
- 三道MISC的writeup
- Web 探索之旅 | 第一部分:什麼是 Web?Web
- Web探索之旅 | 第四部分 : Web程式設計師Web程式設計師
- CoolShell解密遊戲的WriteUp解密遊戲
- 編寫web2.0爬蟲——頁面抓取部分Web爬蟲
- web安全是什麼?主要分為哪幾部分?Web
- [極客大挑戰 2019]web部分題解(已完結!)Web
- cmseasy&內網滲透 Writeup內網