0x00.題目描述:
背景介紹
安全工程師"墨者"最近在練習(xí)搭建一個采購系統(tǒng)绊率,為了安全起見,“墨者”對該系統(tǒng)做了部分防護(hù)措施脸狸,請你幫助他測試系統(tǒng)是否安全藐俺。
實訓(xùn)目標(biāo)
1、掌握SQL注入原理卿啡;
2菱父、了解手工注入的方法;
3官辽、了解MySQL的數(shù)據(jù)結(jié)構(gòu)同仆;
4、了解SQL注入常用注釋字符俗批;
5扶镀、了解sql注入常用繞過姿勢;
解題方向
手工進(jìn)行SQL注入測試臭觉,獲取管理密碼登錄辱志。
0x01.解題思路:
靶場環(huán)境:
主界面
維護(hù)界面
經(jīng)過測試揩懒,確定注入點在維護(hù)界面的URL鏈接的id參數(shù)中,判斷字段臣镣,然后聯(lián)合注入即可.
字段數(shù)為7
手工注入:
聯(lián)合注入忆某,來進(jìn)行爆庫:
首先是爆數(shù)據(jù)庫名:
payload:/new_list.php?id=-1' union select 1,2,3,database(),5,6,7%23
接下來就是爆表名阔蛉,列名以及字段了状原。
選擇status為1的MD5密碼解密下颠区,即可得到flag~
sqlmap注入:
貌似sqlmap爆不出表名,因為表名中含有特殊字符器贩。
0x02.總結(jié):
1.最后一步的爆字段,payload為:/new_list.php?id=-1' union select 1,2,3,(select group_concat(status,username,password) from `(@dmin9_td4b}`),5,6,7%23碗啄。
可以看到表名中用了兩個反單引號稳摄,這是因為有時候數(shù)據(jù)庫的表信息或者字段信息顯示出來是key或者是其他的,但是語句沒有寫錯胆描,信息就是顯示不出來仗阅,那么就在字段或者表的旁邊加上反引號,因為MySQL中對有些字符或者保留字做了限制减噪,當(dāng)命名的時候有些字段存在這些關(guān)鍵字,那么查詢的時候就要加上反引號醋闭。
2.本來以為將表名轉(zhuǎn)換為十六進(jìn)制也許可行朝卒,但是手工注入還是不行。