1. 程式人生 > >SQL註入漏洞的分析與利用(一)

SQL註入漏洞的分析與利用(一)

ces mysql 得出 必須 排序 快速搭建 oracle 學習筆記 min

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聯合查詢可以一次性執行兩個或多個查詢,並將他們的結果組合在一起輸出顯示

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註入漏洞的分析與利用(一)