十年專注于品牌網(wǎng)站建設(shè) 十余年專注于網(wǎng)站建設(shè)_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
      南昌百恒網(wǎng)絡(luò)微信公眾號 掃一掃關(guān)注
      小程序
      tel-icon全國服務(wù)熱線:400-680-9298,0791-88117053
      掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
      掃一掃打開百恒網(wǎng)絡(luò)微信小程序

      百恒網(wǎng)絡(luò)

      南昌百恒網(wǎng)絡(luò)

      Web應(yīng)用之常規(guī)SQL注入檢測

      百恒網(wǎng)絡(luò) 2017-07-21 4782

      SQL注入或SQLi漏洞指的是攻擊者可以修改從Web應(yīng)用發(fā)送到數(shù)據(jù)庫的SQL語句。今天,南昌網(wǎng)絡(luò)公司小編就來為大家介紹一下Web 應(yīng)用中常規(guī)SQL注入檢測方法。

      首先要說的是SQL注入攻擊可以根據(jù)bug的不同分為不同類別。通常來說,可以按照HTTP響應(yīng)返回的數(shù)據(jù)種類來區(qū)分注入。如果返回的是類似下面這樣的SQL錯誤,就可以實施基于錯誤的SQLi:

      You have an error in your SQL syntax; check the

      manual that corresponds to your MySQL server version

      for the right syntax to use near ''' at line 1

      某些情況下,即使SQL語句中包含錯誤,Web應(yīng)用也根本不會返回錯誤。這種類型的SQLi通常叫作Blind SQLi,因為從數(shù)據(jù)庫或應(yīng)用得不到任何錯誤。

      此時,通過對比正常請求和惡意請求的HTTP響應(yīng)之間的區(qū)別,也可以檢測到SQLi是否會影響某些資源。前述區(qū)別可以分為兩種。一種是內(nèi)容長度不同,也就是返回的響應(yīng)體的內(nèi)容不同。另一種是響應(yīng)時間不同,比如常規(guī)響應(yīng)時間是1秒,而惡意響應(yīng)卻需要5秒。下面來看一段Ruby代碼,這段代碼是可以被SQL注入的:

      get "/" do

      @config = ConfigReader.instance.config

      # 從GET請求中取得book_id參數(shù)

      book_id = params[:book_id]

      # MySQL連接池

      pool = Mysql2::Client.new(

      :host => @config['db_host'],

      :username => @config['restricted_db_user'],

      :password => @config['restricted_db_userpasswd'],

      :database => @config['db_name']

      )

      begin

      if book_id == nil

      @rs = pool.query "SELECT * FROM books;"

      else

      # 若找到一個特定的book_id參數(shù)

      # 就執(zhí)行以下未加密查詢

      query = "SELECT * FROM books WHERE id=" + book_id + ";"

      @rs = pool.query query

      end

      erb :"sqlinjection"

      rescue Exception => e

      @rs = {}

      @error_message = e.message

      erb :"sqlinjection"

      end

      end

      如果將一個類似/page?book_id=1'的GET請求發(fā)送給這段代碼中的處理程序,那么數(shù)據(jù)庫就會返回類似前面的錯誤信息。只要發(fā)送像下面這樣檢索MySQL數(shù)據(jù)庫版本的查詢,就可以利用這種基于錯誤的SQLi:

      /page?book_id=1+UNION+ALL+SELECT+NULL%2C%40%40VERSION%2CNULL%23

      最終的SQL語句會被攻擊者在SELECT * FROM books WHERE id=1后面追加上UNION ALL SELECT NULL, @@VERSION, NULL。Web應(yīng)用的那個拼接的查詢(query = "SELECT * FROM books WHERE id=" + book_id + ";")之所以不安全,是因為參數(shù)值book_id未經(jīng)輸入驗證就被用于字符串拼接。這種[沒有預(yù)處理語句(Prepared Statements)18]的查詢結(jié)果,會使應(yīng)用面臨SQL注入的風(fēng)險。

      再考慮一種情況。假設(shè)前面存在漏洞的代碼除了把底部的一行(@error_message = e.message)刪除之外,其余都相同,那么此時仍然可以被SQL注入攻擊,只不過變成了Blind。

      假設(shè)你事先并不知道這一點,而想要檢測某個資源是否可以實施SQLi。可以發(fā)送下面這個GET請求:

      /page?book_id=1+AND+SLEEP(5)

      然后,經(jīng)過大約5秒鐘,你才會收到HTTP響應(yīng)。這么長的響應(yīng)時間意味著該資源存在SQL注入漏洞,因為SLEEP語句被成功執(zhí)行了。

      以上內(nèi)容便是南昌網(wǎng)絡(luò)公司小編為大家介紹的關(guān)于SQL注入的檢測方法,這些只是比較淺顯的SQL注入檢測,想進(jìn)一步了解這方面知識的朋友,歡迎關(guān)注本公司官網(wǎng)動態(tài),更多技術(shù)性文章與您來分享。此外,如有需要關(guān)于南昌網(wǎng)站建設(shè)、微信開發(fā)、手機APP開發(fā)等方面的服務(wù),百恒網(wǎng)絡(luò)隨時為您效勞!


      400-680-9298,0791-88117053
      掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
      掃一掃打開百恒網(wǎng)絡(luò)小程序

      歡迎您的光顧,我們將竭誠為您服務(wù)×

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務(wù) 售后服務(wù)
       
      售后服務(wù) 售后服務(wù)
       
      備案專線 備案專線
       
      ×
      亚洲精品网站在线观看不卡无广告| 久久精品国产只有精品2020| 国产精品成人99一区无码| 亚洲另类精品xxxx人妖| 久久香蕉精品视频| 尹人久久久香蕉精品| 精品成人乱色一区二区| 国产精品久久久尹人香蕉| 久久久久久久久66精品片| 亚洲∧v久久久无码精品| 99精品国产一区二区三区| 久9视频这里只有精品8| 久久精品国产亚洲αv忘忧草| 久久午夜精品视频| 国产美女亚洲精品久久久综合| 国产精品亚洲w码日韩中文| 日韩精品无码久久一区二区三| 日韩精品无码免费专区午夜| 国产精品无码一区二区三区在| 久久精品免费一区二区喷潮| 99精品视频在线在线视频观看| 国产精品美女网站| 日韩影院在线观看| 亚洲日韩一区精品射精| 四虎永久在线精品视频免费观看 | 久久99国产亚洲精品观看| 国产美女精品视频| 日韩乱码人妻无码中文字幕久久| 亚洲а∨精品天堂在线| 91精品手机国产免费| 久久亚洲精品中文字幕无码| 精品aⅴ一区二区三区| xxxxbbbb国产精品| 日韩色图在线观看| 日韩中文在线视频| 精品无码国产污污污免费| 欧美成人aaa片一区国产精品| 亚洲精品在线免费观看| 麻豆精品不卡国产免费看| 99久久免费国产精精品| 中文字幕在线精品视频入口一区 |