信息安全之SQL注入

(此爲課堂筆記整理,方便日後學習)

一. SQL注入攻擊原理

原因分析:

      由於程序中對用戶輸入檢查不嚴格,導致用戶提交的非法數據被當作SQL語句的一部分來執行(即改變了系統後臺原有的SQL語句結構),從而使攻擊者獲得某些他想得知的數據。

目標:

      借Web應用的”刀“來攻擊服務器數據庫或操作系統


二. SQL注入攻擊類型

   A. 字符串內聯注入
   B. 數字值內聯注入
   C. 終止式注入:利用註釋符

   D. 搜索型注入:利用搜索關鍵字


A. 字符串內聯注入:

      程序員考慮的場景:
                           Username: admin
                           Password: p@$$w0rd

                           SELECT COUNT(*) FROM Users WHERE username='admin' and password= 'p@$$w0rd'

                           

      程序員未考慮的場景:

                           Username: admin' and 1=1 OR ‘1’=‘1

                           Password: 1

                           SELECT COUNT(*)FROM Users WHERE username=‘admin' and 1=1 OR 1’=‘1 and password='1'

                           

B. 數字值內聯注入:

        常用的判斷SQL注入攻擊方法:在數字型的參數後跟上假條件或真條件
        http://.../list.php?uid=45 and 1=1   頁面返回正確

        http://.../list.php?uid=45 and 1=X   頁面返回錯誤

C. 終止時注入:

        終止式SQL語句注入是指攻擊者在注入SQL代碼時,通過註釋剩下的查詢來成功結束該語句。

       常用的向數據庫添加註釋的語法如下:
           1、--:用於單行註釋,該符號後的SQL語句將不再被執行

           2、/*    */用於多行註釋,處於該符號中間的SQL語句不會被執行


三. SQL注入攻擊常見的方法:

         SQL注入工具:(SQLMAP、BurpSuite等)
         手工注入:
                a. 聯合查詢

                b. SQL盲注


四. SQL注入流程:

        (1)找到帶參的URL或表單
        (2)判斷是否存在注入
        (3)通過SQL注入語句實施注入攻擊:
                       猜解表名;猜解列名;猜解內容

發佈了27 篇原創文章 · 獲贊 11 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章