在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

最為精簡的一個(gè)Linux Fork炸彈解析

Linux愛好者 ? 來源:博客 ? 作者:Saymagic ? 2021-09-07 16:12 ? 次閱讀

轉(zhuǎn)自:http://blog.saymagic.cn/2015/03/25/fork-bomb.html

Jaromil在2002年設(shè)計(jì)了最為精簡的一個(gè)Linux Fork***,整個(gè)代碼只有13個(gè)字符,在shell中運(yùn)行后幾秒后系統(tǒng)就會(huì)宕機(jī):

:() { :|:& };:

這樣看起來不是很好理解,我們可以更改下格式:

:()

{

:|:&

};

更好理解一點(diǎn)的話就是這樣:

bomb()

{

bomb|bomb&

};

bomb

因?yàn)閟hell中函數(shù)可以省略function關(guān)鍵字,所以上面的十三個(gè)字符是功能是定義一個(gè)函數(shù)與調(diào)用這個(gè)函數(shù),函數(shù)的名稱為:,主要的核心代碼是:|:&,可以看出這是一個(gè)函數(shù)本身的遞歸調(diào)用,通過&實(shí)現(xiàn)在后臺開啟新進(jìn)程運(yùn)行,通過管道實(shí)現(xiàn)進(jìn)程呈幾何形式增長,最后再通過:來調(diào)用函數(shù)引爆***。因此,幾秒鐘系統(tǒng)就會(huì)因?yàn)樘幚聿贿^來太多的進(jìn)程而死機(jī),解決的唯一辦法就是重啟。

Bomb一下

秉著不作不死的心態(tài),我們也來運(yùn)行一下,于是我將矛頭指向云主機(jī),我使用了國內(nèi)的一個(gè)2G內(nèi)存的云主機(jī),首先在本地開啟兩個(gè)終端,在一個(gè)終端連接云主機(jī)后運(yùn)行***,幾秒后再嘗試用另外一個(gè)終端登錄,效果可以看下面Gif圖:

看,運(yùn)行一段時(shí)間后直接報(bào)出了-bash: fork: Cannot allocate memory,說明內(nèi)存不足了。并且我在二號終端上嘗試連接也沒有任何反應(yīng)。因?yàn)槭翘摂M的云主機(jī),所以我只能通過主機(jī)服務(wù)商的后臺來給主機(jī)斷電重啟。然后才能重新登錄:

***危害

Fork***帶來的后果就是耗盡服務(wù)器資源,使服務(wù)器不能正常的對外提供服務(wù),也就是常說的DoS(Denial of Service)。與傳統(tǒng)1v1、通過不斷向服務(wù)器發(fā)送請求造成服務(wù)器崩潰不同,F(xiàn)ork***有種坐山觀虎斗,不費(fèi)一兵一卒斬?cái)橙擞隈R下的感覺。更嚇人的是這個(gè)函數(shù)是不需要root權(quán)限就可以運(yùn)行的??吹骄W(wǎng)上有帖子說某些人將個(gè)性簽名改為Fork***,結(jié)果果真有好奇之人中槍,試想如果中槍的人是在公司服務(wù)器上運(yùn)行的話,oh,!

預(yù)防方式

當(dāng)然,F(xiàn)ork***沒有那么可怕,用其它語言也可以分分鐘寫出來一個(gè),例如,python版:

import os

while True:

os.fork()

Fork***的本質(zhì)無非就是靠創(chuàng)建進(jìn)程來搶占系統(tǒng)資源,在Linux中,我們可以通過ulimit命令來限制用戶的某些行為,運(yùn)行ulimit -a可以查看我們能做哪些限制:

ubuntu@10-10-57-151:~$ ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 7782

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 1024

pipe size (512 bytes, -p) 8

POSIX message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 8192

cpu time (seconds, -t) unlimited

max user processes (-u) 7782

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited

可以看到,-u參數(shù)可以限制用戶創(chuàng)建進(jìn)程數(shù),因此,我們可以使用ulimit -u 20來允許用戶最多創(chuàng)建20個(gè)進(jìn)程。這樣就可以預(yù)防bomb***。但這樣是不徹底的,關(guān)閉終端后這個(gè)命令就失效了。我們可以通過修改/etc/security/limits.conf文件來進(jìn)行更深層次的預(yù)防,在文件里添加如下一行(ubuntu需更換為你的用戶名):

ubuntu - nproc 20

這樣,退出后重新登錄,就會(huì)發(fā)現(xiàn)最大進(jìn)程數(shù)已經(jīng)更改為20了,

這個(gè)時(shí)候我們再次運(yùn)行***就不會(huì)報(bào)內(nèi)存不足了,而是提示-bash: fork: retry: No child processes,很棒,此時(shí)說明Linux限制了***創(chuàng)建線程。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11353

    瀏覽量

    210623
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4841

    瀏覽量

    69176

原文標(biāo)題:解析超經(jīng)典的 Fork 炸彈

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    電氣系統(tǒng)中,如何選擇最為適配的數(shù)字隔離芯片?

    數(shù)字隔離芯片歷經(jīng)多年發(fā)展,其應(yīng)用范圍已十分廣泛,凡涉及到在高、低壓系統(tǒng)之間進(jìn)行信號傳輸?shù)膱鼍爸谢径夹枰獞?yīng)用到此種芯片。那么,電氣工程師在進(jìn)行電路設(shè)計(jì)時(shí)到底該如何評估選擇最為適配的數(shù)字隔離芯片呢?
    的頭像 發(fā)表于 02-12 14:30 ?96次閱讀
    電氣系統(tǒng)中,如何選擇<b class='flag-5'>一</b>款<b class='flag-5'>最為</b>適配的數(shù)字隔離芯片?

    為什么你的串口總是丟些特殊字符?

    。Linux下串口設(shè)備名稱般為"/dev/ttySn",n是數(shù)字,若串口是USB擴(kuò)展的,則串口設(shè)備文件命名多為/dev/ttyUSBn。串口是個(gè)終端設(shè)備,在L
    的頭像 發(fā)表于 02-06 13:26 ?82次閱讀
    為什么你的串口總是丟<b class='flag-5'>一</b>些特殊字符?

    域名解析是什么 為什么要進(jìn)行域名解析

    云的官方網(wǎng)站,這個(gè)背后就是域名解析的過程。 域名解析種說法就是把域名轉(zhuǎn)換為IP地址。當(dāng)我們對個(gè)網(wǎng)站進(jìn)行訪問的時(shí)候,實(shí)際上就是與
    的頭像 發(fā)表于 11-22 10:12 ?258次閱讀

    Linux系統(tǒng)中shell命令解析

    shell是Linux系統(tǒng)的用戶界面,提供了用戶與內(nèi)核交互的種接口,它接收用戶輸入的命令并到送到內(nèi)核去執(zhí)行,因此也被稱為Linux的命令解釋器。
    的頭像 發(fā)表于 11-05 15:40 ?396次閱讀

    Linux應(yīng)用編程的基本概念

    Linux應(yīng)用編程涉及到在Linux環(huán)境下開發(fā)和運(yùn)行應(yīng)用程序的系列概念。以下是些涵蓋Linux應(yīng)用編程的基本概念。
    的頭像 發(fā)表于 10-24 17:19 ?304次閱讀

    Linux根文件系統(tǒng)的掛載過程

    Linux根文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)文件系統(tǒng)。
    的頭像 發(fā)表于 10-05 16:50 ?551次閱讀

    如何構(gòu)建Linux根文件系統(tǒng)

    構(gòu)建Linux根文件系統(tǒng)是個(gè)涉及多個(gè)步驟和概念的過程,它對于Linux系統(tǒng)的啟動(dòng)和運(yùn)行至關(guān)重要。
    的頭像 發(fā)表于 10-05 16:47 ?366次閱讀

    深度解析linux HID核心

    linux內(nèi)核中,HID核心是完成HID功能的關(guān)鍵組件,如果內(nèi)核支持HID,在啟動(dòng)過程中,則會(huì)對HID進(jìn)行初始化,完成該操作的函數(shù)是hid_init(),實(shí)現(xiàn)在/drivers/hid/hid-core.c中。
    的頭像 發(fā)表于 09-29 17:04 ?706次閱讀
    深度<b class='flag-5'>解析</b><b class='flag-5'>linux</b> HID核心

    如何優(yōu)化Linux服務(wù)器的性能

    優(yōu)化Linux服務(wù)器的性能是個(gè)綜合性的任務(wù),涉及硬件、軟件、配置、監(jiān)控等多個(gè)方面。以下是個(gè)詳細(xì)的指南,旨在幫助系統(tǒng)管理員和運(yùn)維人員提升
    的頭像 發(fā)表于 09-29 16:50 ?434次閱讀

    深度解析linux時(shí)鐘子系統(tǒng)

    linux內(nèi)核中實(shí)現(xiàn)了個(gè)CLK子系統(tǒng),用于對上層提供各模塊(例如需要時(shí)鐘信號的外設(shè),USB等)的時(shí)鐘驅(qū)動(dòng)接口,對下層提供具體SOC的時(shí)鐘操作細(xì)節(jié)。
    的頭像 發(fā)表于 09-29 16:46 ?689次閱讀
    深度<b class='flag-5'>解析</b><b class='flag-5'>linux</b>時(shí)鐘子系統(tǒng)

    小白也會(huì)的,在linux上跑android應(yīng)用的方案

    介紹個(gè)可以在linux上跑安卓應(yīng)用的linux桌面——OpenFDE
    的頭像 發(fā)表于 08-23 11:14 ?779次閱讀
    小白也會(huì)的,在<b class='flag-5'>linux</b>上跑android應(yīng)用的方案

    產(chǎn)生諧波電流最為突出的設(shè)備是什么

    、機(jī)電控制、充電裝置等許多方面,給電網(wǎng)帶來了相當(dāng)多的諧波。據(jù)統(tǒng)計(jì),由整流設(shè)備引起的諧波將近達(dá)到全部諧波的40%,是諧波的個(gè)主要來源。 以具有強(qiáng)烈非線性特性的電弧為工作介質(zhì)的設(shè)備 :如氣體放電燈(如高壓鈉燈、高壓汞燈、
    的頭像 發(fā)表于 08-14 14:52 ?621次閱讀

    python解析netflow數(shù)據(jù)到csv的流程詳解

    本文主要講解了linux下通過tcpdump抓取netflow數(shù)據(jù)包,并將其導(dǎo)入到wireshark進(jìn)行解析,然后通過wireshark導(dǎo)出數(shù)據(jù)為json文件,再通過python腳本將其解析為csv文件以便做數(shù)據(jù)分析。
    的頭像 發(fā)表于 05-01 11:18 ?747次閱讀
    python<b class='flag-5'>解析</b>netflow數(shù)據(jù)到csv的流程詳解

    如何實(shí)現(xiàn)個(gè)軟件定時(shí)器?

    Linux,uC/OS,F(xiàn)reeRTOS等操作系統(tǒng)中,都帶有軟件定時(shí)器,原理大同小異。典型的實(shí)現(xiàn)方法是:通過個(gè)硬件定時(shí)器產(chǎn)生固定的時(shí)鐘節(jié)拍,每次硬件定時(shí)器中斷到,就對
    的頭像 發(fā)表于 04-29 11:00 ?770次閱讀

    如何采用“狀態(tài)機(jī)”解析UART數(shù)據(jù)幀

    如果個(gè)系統(tǒng)接收上述“不定長度”的協(xié)議幀,將會(huì)有個(gè)挑戰(zhàn)--如何高效接收與解析。 為簡化系統(tǒng)設(shè)計(jì),我們強(qiáng)烈建議您采用“狀態(tài)機(jī)”來
    的頭像 發(fā)表于 03-25 14:29 ?816次閱讀
    如何采用“狀態(tài)機(jī)”<b class='flag-5'>解析</b>UART數(shù)據(jù)幀
    主站蜘蛛池模板: 直接观看黄网站免费视频 | 午夜精 | 东莞a级毛片 | 美女扒开尿口给男人爽免费视频 | 国产午夜精品一区二区 | 男男宿舍高h炒肉bl 男男污肉高h坐便器调教 | 五月婷婷丁香在线视频 | 永久视频免费 | 91欧美精品激情在线观看 | 入逼视频 | 久久精品亚洲一区二区三区浴池 | 色偷偷888欧美精品久久久 | 免费我看视频在线观看 | 天天做天天爱天天爽综合区 | 久久奇米| 午夜伦伦 | 天堂网在线www资源网 | 香蕉视频网站在线播放 | 8050午夜网| 免费边摸边吃奶边叫床视频gif | 三区在线观看 | 色视频免费观看 | 综合网自拍 | 夜色福利久久久久久777777 | 欧美性妇| 色狠狠综合 | 色多多高清在线观看视频www | 婷婷国产成人久久精品激情 | 久久精品视频国产 | 日韩美女拍拍免费视频网站 | 亚洲免费视频一区 | 亚洲性人人天天夜夜摸 | 色偷偷97 | 国产美女视频爽爽爽 | 网www天堂资源在线 网红和老师啪啪对白清晰 网络色综合久久 | 国产小福利 | 天堂资源在线bt种子 | 日韩精品在线第一页 | 久久精品人人爽人人爽 | 欧美综合在线视频 | 亚洲成年人网 |