SQL註入漏洞的分析與利用(一)
黑客在正常的需要調用數據庫的URL後面構造一段數據庫查詢代碼,然後根據返回的結果,從而獲得想要的某些數據。
SQL結構化查詢語言,絕大多數關系型數據庫(MySQL、Access、Oracle等)都采用SQL進行查詢、管理及常用操作。
環境搭建:AppServ
通過AppServ可以在Windows系統中快速搭建出一個環境
SQL註入語句:
select * from hack;
#顯示hack表中的所有記錄select * from hack where id=1;
#從hack表中查找滿足條件id=1的記錄
select username,password from hack where id=1;
#從hack表中查找滿足條件id=1的記錄,並只顯示username和password字段內容
select * from hack where id=1 and username="admin";
#從hack表中查找滿足條件id=1以及username=“admin”的記錄
select * from hack where id=1 or username="admin";
#從hack表中查找滿足條件id=1或者username=“admin”的記錄
select * from news where id=1 and exists(select * from hack);
#通過exists()函數判斷hack表是否存在
select * from news where id =1 and exists(select username from hack);
#通過exists()函數判斷hack表中是否存在username字段
select * from hack order by id;
#按照hack表中的id列升序排序
select username,password from hack order by 2;
#按照查詢結果中的第二列(password列)升序排序
通過order by 可以得出當前查詢顯示出幾個字段,接下來可以構造一個union select聯合查詢
union select聯合查詢
union聯合查詢可以一次性執行兩個或多個查詢,並將他們的結果組合在一起輸出顯示
select from news union select from hack #字段不匹配,查詢報錯(news3個字段,hack2個字段)
select from news union select username,password from hack; 查詢正常
select from news union select 1,2 from hack;字段名可以用數字代替
曲廣平老師課程的學習筆記
SQL註入漏洞的分析與利用(一)