萌新的手工sql注入入門--mysql(普通sql注入篇)


sql注入主要分為普通的sql注入,還有盲注
這一篇主要是記錄普通的sql注入
sql注入的主要流程:

1.尋找注入點/判斷該表單是否可注入:

主要運用的方法是,構造錯誤的語句(在正常輸入的后面加上如單引號等敏感符號) 如:1’ ,1#等 同時,注入類型分為三類,數字類,字符類,還有如like%%等搜索函數 根據返回的結果進行判斷是普通的sql注入還是盲注。

 

2.找到注入點之后,利用order by 猜解字段個數

若為數字類型注入:直接在后面跟上order by 數字即可 若為字符類型注入:須在order by 后加上注釋符號# 利用order by 猜解流程,以數字型為例:

假如
數字 order by 1 // 通過
數字 order by 2 // 通過
數字 order by 3 // 通過
數字 order by 4 // 不通過
則該sql語句共查詢了3個字段

由此,如果沒有過濾掉union,我們就可以利用union來構造sql語句來查詢。

 

3. 利用union構造sql語句來獲取數據庫名

主要函數 database() 還是以上面的為例,假設我們已經確定該sql語句查詢了3個字段: 那我們先利用union構造一條select語句確定字段的順序

1 union select 1,2,3,4
那么字段的順序 就是查詢結果對應后面的順序.
由此我們知道了字段的查詢順序。
接着,將被顯示出來數字對應的字段更改為database()

以2為例
1 union select 1,database(),3,4
那么原來2的地方就會返回當前的數據庫的名字。

 

4.通過mysql的information_schema庫來查詢對應的表名

select 1,table_name,3,4 from information_schema.tables where table_schema=database

 

5通過對應的表名來獲取字段名

select 1,column_name from information_schema.columns where table_name = table_name

 

6通過字段和表來獲取數據

由此,整個sql注入的流程就結束了

轉載請注明來自:LucyTime 原文地址:https://www.cnblogs.com/LucyTime/p/9392649.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM