999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL注入的討論

2022-06-12 08:05:33雷蕾
民族文匯 2022年25期

雷蕾

摘 要:隨著科技的進步,計算機技術發展迅速,愈來愈多的系統、平臺、軟件在存儲相應數據之時使用數據庫,使用數據庫便會用到SQL語言,文章分析說明了什么是SQL注入,SQL注入的特點原理,討論了常見的一些SQL注入方法,根據不同的方法給出防范SQL注入相應的技術措施。

關鍵詞:SQL注入的分類;SQL注入攻擊;SQL注入防范;

1. SQL注入產生的原因

SQL注入攻擊是因為編程人員在編寫 SQL語句時,不能正確地寫出 SQL語句,也不能對特定的字符進行篩選,從而使客戶端能夠在全局變量 POST和 GET的基礎上,實現對 SQL的遠程訪問。SQL注入語言是屬于拼接式的語言,尤其其查詢條件字符串也可以拼接而成,注入者違反程序設計者的初衷,拼接了合法的和非法的查詢條件,形成含有 SQL 注入的 SQL 語句[1]。

2. SQL注入攻擊原理

很多系統、平臺、軟件使用數據庫來存儲數據信息,而SQL語句命令是連接前端web端和后端數據庫之間的一個接口,都需要使用SQL語句來查詢數據的存儲情況、位置等,從而返回用戶需要查找的信息。因為開發人員的編程水平參差不齊,在程序設計中沒有對某些字符進行正確性的審查和篩選,從而使攻擊者在 URL連接、表單域中輸入SQL指令,從而發現了數據庫中的敏感信息,從而形成 SQL注入攻擊。

3. SQL注入攻擊實例

(1)我們首先需要尋找注入點,先在url參數后添加單引號觀察回顯,加單引號會導致SQL語句執行錯誤,當前頁面可能會報錯或者出現查詢內容不回顯的情況比較經典的“1=1”、“1=2”測試法。

(2)若是已經需找到了注入點,http://xxx.xxx.xxx/yes?id=xx后面追加“and 1=1并訪問該網址即http://xxx.xxx.xxx/yes?id=xx and 1=1應該與訪問原地址得到的結果相同。在http://xxx.xxx.xxx/abcd.asp?p=xx后面追加“and 1=2并訪問該網址即http://xxx.xxx.xxx/abcd.asp?p=xx and l=2應該與訪問原地址得到的結果不同,且提示數據庫錯誤。這就說明網址存在SQL注入漏洞。

(3)通過在url后構造一些特殊的SQL語句在數據庫中查找我們所需要知道的信息,如表名、用戶名、列名、數據庫名、密碼等信息。

4. SQL注入的分類

(1)數字型注入:當輸入的參數為整型時,如id、年齡等,如果存在注入漏洞,則可以認為是數字型注入。對于Java、C#這類強類型語言,如果試圖把一個字符串轉換為int類型,則會拋出異常,無法繼續執行。所以,強類型的語言很少存在數字型注入漏洞,絕大多數存在于弱類型語言。

(2)字符型注入:如果是參數是字符串時被稱作字型。數字型和字型注入的最大不同是:數字型不要求單引號封閉,而通常采用單引號封閉。

(3)報錯注入:報錯注入使用的是在數據庫的錯誤信息會返回顯示在網頁上,我們需要構造一些語句使得數據庫產生報錯信息返回至網頁上。

(4)布爾盲注:布爾型盲注就是在頁面沒有錯誤顯示時進行注入攻擊,我們需要對語句進行構造且讓頁面呈現出兩種不同的狀態,分別是TRUE和FALSE,可以根據這兩種狀態判斷我們輸入語句是否查詢成功。

(5)時間盲注:時間盲注也叫做延時注入,在既沒有回顯顯示數據庫反饋的內容,又沒有顯示報錯信息,也沒有布爾型狀態時,我們可以選擇延時注入。這里需要用到一個 MySQL 的 sleep(n)函數,功能是休眠 n 秒,sleep()函數執行是有條件的,必須保障 SQL 語句執行結果存在數據記錄,才會停止指定的秒數,如果 SQL 語句查詢結果為空,那么 sleep函數不會停止[1]。

(6)寬字節注入:寬字節注入準確來說不是注入手法,它是一種較為特殊的注入情況,在我們測試?Id=1’時會發現單引號并沒有被帶入進去,而是被轉義處理了,轉義后的單引號不再具有作用,變成了輸入的內容,要想成功注入就需要對這個轉義進行處理。

5. SQL注入的方法

在系統開發后期需要進行SQL注入攻擊測試。SQL注入攻擊測試通常分為手工測試和自動測試。下面分別介紹一下這兩種測試方法[2]:

(1)手動測試

手動測試SQL注入是確定數據庫中是否存在SQL漏洞的一種常見方式。測試人員可以通過檢查返回的錯誤信息和嘗試猜測數據庫的結構來查看漏洞。手工測試比較直觀,但由于分析返回的錯誤信息和嘗試猜測數據庫的結構比較繁瑣且需要的時間和精力較多,而且并不是所有的SQL注入漏洞都能夠被發現。

(2)自動測試

如果是大型或者復雜的系統,人工測試無法確保能夠檢測出 SQL注入點或是是否存在SQL注入;這時,我們可以以“黑客”方式,利用這些工具,對相應的系統進行 SQL注入,從而發現從外部可以攻破的漏洞,因此可以修改程式的參數和程式碼,這樣被稱作是自動化檢測。自動化檢測是使用一些工具的,例如最常用到的SQLmap,它是可以自動檢測并且可以利用SQL注入漏洞直接獲取數據庫的相關信息,包括訪問底層文件系統、數據庫指紋識別等。

6. 對SQL注入的防范

盡管對系統安全費盡心思,裝補丁、安防火墻、裝殺毒軟件,但防火墻與殺毒軟件對注入是沒辦法防范的,因為注入入侵跟普通的頁面訪問沒什么區別[3]。主要的SQL注入防范方法有:

(1)分級管理

權限等級管理,權限管理嚴格,一般用戶不得給予建立、刪除、修改等相關權限,僅由管理員擁有增刪改查的權限。

(2)二次過濾

為了保證數據的安全,SQL注入要對輸入和提交的變量進行轉換、過濾和篩選,以避免SQL注入,尤其是單引號、雙引號等字符,然后,依據程序的功能和用戶的輸入進行二次篩選,保證了系統的安全。

(3)參數傳值

編程人員在編寫 SQL時,不能直接向 SQL中寫入變量,而要將相關的變量設定為參數。這樣就可以阻止 SQL的插入。在此基礎上,對輸入的信息進行篩選,篩選出不可靠的信息?;蚴褂脜祩髦档姆椒▉韨鬏斴斎胱兞?,從而最大限度地防止 SQL注入的入侵。

7.總結

SQL注入攻擊作為當前Web應用安全熱點之一,從1998 年第一次出現至今,已有10年發展歷史,被廣為利用并持續發展[4]。要想有效的防護SQL注入攻擊,需要采用系統、綜合的方式來解決,需要每個人一起共同努力。

參考文獻

[1] 翟寶峰. SQL注入攻擊的分析與防范[J]. 遼寧工業大學學報(自然科學版),2021,41(3):141-143,147. DOI:10.15916/j.issn1674-3261.2021.03.001.

[2] 徐鑫濤. 淺析SQL注入攻擊[J]. 中國科技信息,2007(1):97,99. DOI:10.3969/j.issn.1001-8972.2007.01.048.

[3] 遲國棟,錢英軍,姚麗麗. SQL注入攻擊與防范[J]. 世紀橋,2007(3):72-73. DOI:10.3969/j.issn.1001-0475.2007.03.032.

主站蜘蛛池模板: 97在线碰| 日本一本正道综合久久dvd| 小说 亚洲 无码 精品| 精品久久777| 国产主播福利在线观看| 亚洲中文在线看视频一区| 精品无码国产一区二区三区AV| 亚洲一区毛片| 国产欧美精品一区aⅴ影院| 久久九九热视频| 一区二区三区成人| 特级毛片免费视频| 丁香五月亚洲综合在线| 一级高清毛片免费a级高清毛片| 女人18毛片一级毛片在线 | 亚洲 欧美 中文 AⅤ在线视频| 亚洲第一极品精品无码| 高h视频在线| 最新日韩AV网址在线观看| 丰满的少妇人妻无码区| 精品久久久久久中文字幕女| 无码国产伊人| 亚洲午夜天堂| 日韩亚洲综合在线| 亚洲精品天堂在线观看| 又大又硬又爽免费视频| 在线观看网站国产| 丝袜国产一区| 亚洲欧美不卡中文字幕| 亚洲VA中文字幕| 国产爽妇精品| 日韩福利视频导航| 毛片免费高清免费| 国产精品无码AV中文| 怡红院美国分院一区二区| 欧美国产日产一区二区| 国产无码高清视频不卡| 亚洲av无码成人专区| 国产精品尹人在线观看| 人妻无码AⅤ中文字| 欧美爱爱网| 精品欧美日韩国产日漫一区不卡| 欧美亚洲日韩中文| 毛片视频网| 日韩国产无码一区| 97国产精品视频自在拍| 99精品国产自在现线观看| 综1合AV在线播放| 欧美一区二区福利视频| 91在线精品麻豆欧美在线| 有专无码视频| 波多野结衣在线一区二区| 国产区在线看| 日本黄色a视频| 一级香蕉视频在线观看| av天堂最新版在线| 成人在线亚洲| 欧美成人午夜视频| 久久久久无码精品| 狠狠ⅴ日韩v欧美v天堂| 国产高清在线观看91精品| 国产乱子伦手机在线| 日韩在线播放中文字幕| 国产在线一区视频| 精品久久久久久中文字幕女| 精品国产一区91在线| 最新国产成人剧情在线播放| Aⅴ无码专区在线观看| 四虎亚洲国产成人久久精品| 国产美女免费| 欧美在线国产| 精品国产香蕉在线播出| 国产色网站| 色精品视频| 中国精品自拍| 99在线视频精品| 国产成人精品免费av| 亚洲无码37.| 欧美国产在线看| 亚洲国产中文欧美在线人成大黄瓜| 国产精品手机在线播放| 久久综合色播五月男人的天堂|