在網(wǎng)絡(luò)安全領(lǐng)域,各種攻擊手段層出不窮,時(shí)刻威脅著網(wǎng)絡(luò)系統(tǒng)的安全與穩(wěn)定。本文將深入剖析 SQL 注入、XSS、CSRF 等十四種常見的網(wǎng)絡(luò)攻擊類型,詳細(xì)闡述它們的概念、原理與攻擊方式,為大家揭開網(wǎng)絡(luò)安全威脅的神秘面紗。
一、SQL注入:
概念:一種將惡意代碼插入到程序 SQL 語(yǔ)句中,從而誤導(dǎo)數(shù)據(jù)庫(kù)執(zhí)行惡意邏輯的攻擊技術(shù)。
通過(guò) SQL 注入,攻擊者可以達(dá)到獲取敏感信息,竊取訪問(wèn)權(quán)限等目的。
攻擊方式:
搜索注入
報(bào)錯(cuò)注入
堆疊查詢注入
基于布爾的盲注
基于時(shí)間的盲注(延時(shí)注入)
HTTP頭部注入
寬字節(jié)注入
二階注入
DNSlog外帶注入
二、XSS
原理:
攻擊者利用瀏覽器執(zhí)行前端代碼(HTML、CSS、JavaScript)的特性,將惡意的JavaScript代碼插入到頁(yè)面中,當(dāng)用戶瀏覽頁(yè)面時(shí),導(dǎo)致惡意代碼被執(zhí)行。
攻擊方式:
1.反射型 xss 攻擊的方法為:攻擊者通過(guò)發(fā)送郵件或誘導(dǎo)等方法,將包含有 xss 惡意鏈接發(fā)送給目標(biāo)用戶,當(dāng)目標(biāo)用戶訪問(wèn)該鏈接時(shí),服務(wù)器將接收該用戶的請(qǐng)求并進(jìn)行處理,然后服務(wù)器把帶有 xss 惡意腳本發(fā)送給目標(biāo)用戶的瀏覽器,瀏覽器解析這段帶有 xss 代碼的惡意腳本后,就會(huì)觸發(fā) xss 攻擊
2.存儲(chǔ)型 XSS為持久化攻擊,代碼是存儲(chǔ)在服務(wù)器中的數(shù)據(jù)庫(kù)里,如在個(gè)人信息或發(fā)表文章等地方,可以插入代碼,如果插入的數(shù)據(jù)沒(méi)有過(guò)濾或過(guò)濾不嚴(yán),那么這些惡意代碼沒(méi)有經(jīng)過(guò)過(guò)濾將儲(chǔ)存到數(shù)據(jù)庫(kù)中,用戶訪問(wèn)該頁(yè)面的時(shí)候,沒(méi)有進(jìn)行編碼過(guò)濾輸出到瀏覽器上,就會(huì)觸發(fā)代碼執(zhí)行,造成 xss 攻擊
3.DOM型 xss,DOM 型 XSS 其實(shí)是一種特殊類型的反射型 XSS,它是基于 DOM 文檔對(duì)象模型的一種漏洞。在網(wǎng)站頁(yè)面中有許多頁(yè)面的元素,當(dāng)頁(yè)面到達(dá)瀏覽器時(shí)瀏覽器會(huì)為頁(yè)面創(chuàng)建一個(gè)頂級(jí)的 Document object 文檔對(duì)象,接著生成各個(gè)子文檔對(duì)象,每個(gè)頁(yè)面元素對(duì)應(yīng)一個(gè)文檔對(duì)象,每個(gè)文檔對(duì)象包含屬性、方法和事件。可以通過(guò) JS 腳本對(duì)文檔對(duì)象進(jìn)行編輯從而修改頁(yè)面的元素。也就是說(shuō),客戶端的腳本程序可以通過(guò) DOM 來(lái)動(dòng)態(tài)修改頁(yè)面內(nèi)容,從客戶端獲取 DOM 中的數(shù)據(jù)并在本地執(zhí)行。基于這個(gè)特性,就可以利用 JS 腳本來(lái)實(shí)現(xiàn) XSS 漏洞的利用!
三、CSRF
攻擊方式:
1. 以受害者名義發(fā)送郵件,發(fā)消息。
2. 盜取受害者的賬號(hào),甚至購(gòu)買商品,虛擬貨幣轉(zhuǎn)賬。
3. 修改受害者的網(wǎng)絡(luò)配置(比如修改路由器DNS、重置路由器密碼)。
4. 網(wǎng)站后臺(tái)創(chuàng)建管理員用戶,破壞網(wǎng)站,獲取服務(wù)器權(quán)限等。
四、SSRF
攻擊方式:
1.訪問(wèn)內(nèi)部資源:攻擊者通過(guò)在目標(biāo)應(yīng)用程序中構(gòu)造惡意請(qǐng)求,使其發(fā)起針對(duì)內(nèi)部網(wǎng)絡(luò)的請(qǐng)求。
2.攻擊內(nèi)部系統(tǒng):攻擊者可以通過(guò)SSRF攻擊利用受害者服務(wù)器作為跳板攻擊其他系統(tǒng)。
3.繞過(guò)訪問(wèn)控制:攻擊者可以利用SSRF漏洞繞過(guò)訪問(wèn)控制,直接訪問(wèn)目標(biāo)系統(tǒng)。
4.DOS攻擊:攻擊者可以通過(guò)SSRF攻擊使目標(biāo)服務(wù)器發(fā)起大量的請(qǐng)求,從而導(dǎo)致拒絕服務(wù)(DoS)狀態(tài)。
5.利用其他漏洞:攻擊者可以將SSRF與其他漏洞結(jié)合使用,以增強(qiáng)攻擊效果。
五、CORS
概念:跨域資源共享,其思想是使用自定義的HTTP頭部讓瀏覽器與服務(wù)器進(jìn)行溝通,它允許瀏覽器向跨域服務(wù)器發(fā)出XMLHttpRequest請(qǐng)求,從而克服AX只能同源使用的限制。
原理:
第三方網(wǎng)站生成訪問(wèn)控制策略,指定用戶瀏覽器放寬SOP的限制,實(shí)現(xiàn)與指定的目標(biāo)網(wǎng)站共享數(shù)據(jù)。
六、CORS跨域漏洞
概念:因?yàn)橥床呗缘拇嬖冢煌吹目蛻舳四_本不能訪問(wèn)目標(biāo)站點(diǎn)的資源,如果目標(biāo)站點(diǎn)CORS配置不當(dāng),沒(méi)有對(duì)請(qǐng)求源的域做嚴(yán)格限制,導(dǎo)致任意源都可以訪問(wèn)時(shí),就存在cors跨域漏洞問(wèn)題。
原理:
攻擊者可以利用Web應(yīng)用對(duì)用戶請(qǐng)求數(shù)據(jù)包的Origin頭校驗(yàn)不嚴(yán)格,誘騙受害者訪問(wèn)攻擊者制作好的惡意網(wǎng)站,從而跨域獲取受害者的敏感數(shù)據(jù)。
攻擊方式:
構(gòu)造惡意的html頁(yè)面,利用鏈接誘導(dǎo)受害者進(jìn)行點(diǎn)擊,從而獲取受害者的敏感信息
七、JSONP
概念:JSONP是JSON with padding(填充式JSON或參數(shù)式JSON)的簡(jiǎn)寫,是基于JSON格式達(dá)的為解決跨域請(qǐng)求資源而產(chǎn)生的解決方案。
原理:
他實(shí)現(xiàn)的基本原理是利用的script標(biāo)簽的src屬性不受同源策略影響的特性,來(lái)跨越獲取數(shù)據(jù)。
說(shuō)人話就是:可以讓網(wǎng)頁(yè)從別的域名(網(wǎng)站)那獲取資料,即跨域讀取數(shù)據(jù)。
攻擊方式:
構(gòu)造惡意的html頁(yè)面,利用鏈接誘導(dǎo)受害者進(jìn)行點(diǎn)擊,從而獲取到受害者的敏感信息
八、文件包含漏洞
概念:在PHP程序中使用文件包含的對(duì)象可以被前端的用戶控制且沒(méi)有經(jīng)過(guò)過(guò)濾或嚴(yán)格的定義,用戶可以將其他的文件作為參數(shù)帶入到PHP代碼中解釋執(zhí)行,從而造成敏感信息泄露/程序文件讀取/GetShell等危害的漏洞。
原理:
在應(yīng)用程序中未正確過(guò)濾用戶控制的文件路徑,并將用戶提供的輸入直接或間接地包含在動(dòng)態(tài)文件包含語(yǔ)句中。
攻擊方式:
1. 本地文件包含(Local File Inclusion,LFI)攻擊:攻擊者通過(guò)構(gòu)造惡意請(qǐng)求,直接或間接地包含服務(wù)器上的本地文件。如果攻擊成功,攻擊者可以讀取敏感文件的內(nèi)容,如配置文件、用戶憑證、日志文件等。有時(shí)候攻擊者甚至可以通過(guò)修改包含的文件來(lái)達(dá)到任意代碼執(zhí)行的目的。
2. 遠(yuǎn)程文件包含(Remote File Inclusion,RFI)攻擊:攻擊者通過(guò)構(gòu)造惡意請(qǐng)求,將遠(yuǎn)程服務(wù)器上的文件包含到應(yīng)用程序中。攻擊者通常會(huì)在遠(yuǎn)程服務(wù)器上放置惡意腳本,然后通過(guò)文件包含漏洞來(lái)執(zhí)行這些惡意腳本。這使得攻擊者能夠在目標(biāo)服務(wù)器上執(zhí)行任意的代碼,并可能導(dǎo)致服務(wù)器完全被控制。
九、文件上傳漏洞
概念:由于程序員未對(duì)上傳的文件進(jìn)行嚴(yán)格的驗(yàn)證和過(guò)濾,而導(dǎo)致的用戶可以越過(guò)其本身權(quán)限向服務(wù)器上傳可執(zhí)行的動(dòng)態(tài)腳本文件。
原理:
網(wǎng)站web應(yīng)用都有一些文件上傳功能,比如文檔、圖片、頭像、視頻上傳,當(dāng)上傳功能的實(shí)現(xiàn)代碼沒(méi)有嚴(yán)格校驗(yàn)上傳文件的后綴和文件類型,此時(shí)攻擊者就可以上傳一個(gè)webshell到一個(gè)web可訪問(wèn)的目錄上,并將惡意文件傳遞給PHP解釋器去執(zhí)行,之后就可以在服務(wù)器上執(zhí)行惡意代碼,進(jìn)行數(shù)據(jù)庫(kù)執(zhí)行、服務(wù)器文件管理,服務(wù)器命令執(zhí)行等惡意操作。
攻擊方式:
尋找測(cè)試網(wǎng)站的文件上傳的模塊,常見:頭像上傳,修改上傳,文件編輯器中文件上傳,圖片上傳、媒體上傳等,通過(guò)抓包上傳惡意的文件進(jìn)行測(cè)試,上傳后綴名 asp php aspx 等的動(dòng)態(tài)語(yǔ)言腳本,查看上傳時(shí)的返回信息,判斷是否能直接上傳,如果不能直接上傳,再進(jìn)行測(cè)試上傳突破,例如上傳文件的時(shí)候只允許圖片格式的后綴,但是修改文件時(shí),卻沒(méi)有限制后綴名,圖片文件可以修改成動(dòng)態(tài)語(yǔ)言格式如php,則可能訪問(wèn)這個(gè)文件的 URL 直接 getshell,可以控制網(wǎng)站。
十、文件解析漏洞
概念:由于中間件錯(cuò)誤的將任意格式的文件解析成網(wǎng)頁(yè)可執(zhí)行文件,配合文件上傳漏洞進(jìn)行GetShell的漏洞!
原理:
由于網(wǎng)站管理者操作不當(dāng)或者web服務(wù)器自身的漏洞,導(dǎo)致一些特殊文件被IIS,apache,nginx或者其他web服務(wù)器在某種情況下解析成腳本文件去執(zhí)行。
攻擊方式:
1. 目錄遍歷攻擊:攻擊者利用文件解析函數(shù)未正確過(guò)濾用戶輸入的路徑導(dǎo)致的漏洞,嘗試獲取系統(tǒng)中的敏感文件。攻擊者可能使用"../"等字符序列來(lái)跳出當(dāng)前目錄,訪問(wèn)系統(tǒng)中的其他目錄和文件。
2. 文件包含漏洞:攻擊者通過(guò)向應(yīng)用程序提交惡意請(qǐng)求,利用應(yīng)用程序在包含外部文件時(shí)未進(jìn)行恰當(dāng)驗(yàn)證的漏洞。攻擊者可能通過(guò)在URL參數(shù)、請(qǐng)求頭部或配置文件中注入惡意文件路徑來(lái)實(shí)現(xiàn)對(duì)惡意代碼的執(zhí)行。
3. 遠(yuǎn)程文件包含(RFI)攻擊:攻擊者通過(guò)利用包含遠(yuǎn)程文件的功能,向應(yīng)用程序注入惡意代碼。攻擊者可以通過(guò)提供指向惡意腳本的遠(yuǎn)程URL,使應(yīng)用程序?qū)⒃撃_本下載并在服務(wù)器上執(zhí)行。
4. 本地文件包含(LFI)攻擊:攻擊者通過(guò)注入文件路徑或惡意代碼,利用應(yīng)用程序在包含本地文件時(shí)未進(jìn)行適當(dāng)驗(yàn)證的漏洞。攻擊者可能訪問(wèn)系統(tǒng)中的敏感文件、加密密碼、配置文件等。
5. Null字節(jié)注入攻擊:攻擊者通過(guò)在文件名中插入空字節(jié)(0x00),欺騙解析函數(shù)將文件截?cái)啵瑥亩@過(guò)文件擴(kuò)展名控制,執(zhí)行惡意代碼。
十一、反序列化漏洞
概念:當(dāng)程序在進(jìn)行反序列化時(shí),會(huì)自動(dòng)調(diào)用一些函數(shù),例如__wakeup(),__destruct()等函數(shù),但是如果傳入函數(shù)的參數(shù)可以被用戶控制的話,用戶可以輸入一些惡意代碼到函數(shù)中,從而導(dǎo)致反序列化漏洞。
原理:
1. 序列化和反序列化:在編程中,對(duì)象可以通過(guò)序列化轉(zhuǎn)換為字節(jié)流,以便在不同的系統(tǒng)之間傳輸或存儲(chǔ)。序列化是將對(duì)象轉(zhuǎn)換為字節(jié)流的過(guò)程,而反序列化是將字節(jié)流轉(zhuǎn)換回對(duì)象的過(guò)程。
2. 反序列化漏洞:反序列化漏洞通常出現(xiàn)在輸入信任的序列化數(shù)據(jù)上。攻擊者可以構(gòu)造包含特定有效負(fù)載的惡意序列化數(shù)據(jù),并將其提供給目標(biāo)應(yīng)用程序。
3. 不安全的反序列化:應(yīng)用程序未正確驗(yàn)證或過(guò)濾反序列化數(shù)據(jù),導(dǎo)致攻擊者能夠執(zhí)行惡意操作。這可能是由于應(yīng)用程序信任反序列化數(shù)據(jù),而沒(méi)有恰當(dāng)?shù)仳?yàn)證其內(nèi)容或結(jié)構(gòu)。
4. 惡意負(fù)載執(zhí)行:攻擊者可以在惡意序列化數(shù)據(jù)中嵌入可執(zhí)行代碼。當(dāng)應(yīng)用程序反序列化此數(shù)據(jù)時(shí),惡意代碼將被執(zhí)行,從而使攻擊者能夠執(zhí)行任意操作,包括遠(yuǎn)程代碼執(zhí)行、拒絕服務(wù)攻擊、數(shù)據(jù)泄露等。
5. 特定漏洞類型:具體的反序列化漏洞類型包括Java中的Java反序列化漏洞(例如Apache Commons Collections漏洞)、PHP中的PHP反序列化漏洞(例如PHP對(duì)象注入漏洞)。這些漏洞通常是由于設(shè)計(jì)缺陷或使用不當(dāng)?shù)姆葱蛄谢瘞?kù)、框架或功能引起的。
攻擊方式:
1. 參數(shù)污染攻擊:攻擊者可以通過(guò)修改應(yīng)用程序或請(qǐng)求的參數(shù),將惡意的序列化數(shù)據(jù)傳遞給應(yīng)用程序。應(yīng)用程序在反序列化時(shí),會(huì)解析并執(zhí)行這些惡意數(shù)據(jù),導(dǎo)致安全漏洞。
2. 遠(yuǎn)程代碼執(zhí)行(RCE):攻擊者通過(guò)傳遞經(jīng)過(guò)特殊構(gòu)造的惡意序列化數(shù)據(jù)到應(yīng)用程序,成功執(zhí)行遠(yuǎn)程代碼。這使得攻擊者可以獲取應(yīng)用程序的控制權(quán),并執(zhí)行任意操作。
3. 敏感信息泄露:在某些情況下,應(yīng)用程序在執(zhí)行反序列化過(guò)程中,可能會(huì)暴露敏感信息。攻擊者可以通過(guò)構(gòu)造特定的序列化數(shù)據(jù),使得應(yīng)用程序在反序列化時(shí)泄露敏感數(shù)據(jù)。
4. 服務(wù)拒絕(Denial of Service,DoS)攻擊:攻擊者可以構(gòu)造惡意的序列化數(shù)據(jù),使目標(biāo)應(yīng)用程序在反序列化過(guò)程中消耗大量計(jì)算資源或內(nèi)存,導(dǎo)致系統(tǒng)崩潰或無(wú)法響應(yīng)正常請(qǐng)求。
5. 鏈?zhǔn)椒葱蛄谢簦汗粽呃脧?fù)雜的對(duì)象關(guān)聯(lián)和嵌套,通過(guò)構(gòu)造惡意的序列化數(shù)據(jù),觸發(fā)多次反序列化操作。這些操作可能會(huì)引起應(yīng)用程序中的意外行為,導(dǎo)致安全漏洞。
十二、命令執(zhí)行漏洞
概念:由于PHP程序未對(duì)前端用戶提交的數(shù)據(jù)進(jìn)行嚴(yán)格過(guò)濾或限制,從而導(dǎo)致傳入的字段被帶入到命令執(zhí)行函數(shù)中作為參數(shù)執(zhí)行,造成GetShell或接管服務(wù)器權(quán)限等高危害的Web漏洞!
原理:
服務(wù)端沒(méi)有對(duì)執(zhí)行命令的函數(shù)做出過(guò)濾導(dǎo)致的。我們可通過(guò)編寫一些系統(tǒng)函數(shù)來(lái)輸入疑似存在命令執(zhí)行接口的地方,來(lái)檢測(cè)是否此接口是否存在命令執(zhí)行漏洞。
攻擊方式:
1. 輸入驗(yàn)證不足:當(dāng)用戶輸入被直接傳遞給系統(tǒng)命令時(shí),沒(méi)有進(jìn)行充分的輸入驗(yàn)證和過(guò)濾,攻擊者可以通過(guò)在輸入中插入特殊字符或命令注入,執(zhí)行任意命令。
2. 操作系統(tǒng)調(diào)用:當(dāng)程序在執(zhí)行命令時(shí)使用操作系統(tǒng)的調(diào)用函數(shù),但沒(méi)有正確驗(yàn)證和過(guò)濾輸入數(shù)據(jù),攻擊者可以通過(guò)構(gòu)造惡意輸入來(lái)執(zhí)行任意系統(tǒng)命令。
3. Shell接管:當(dāng)程序在執(zhí)行命令時(shí),通過(guò)使用系統(tǒng)調(diào)用函數(shù)將命令傳遞給一種外部程序解釋器,如Shell,但在傳遞命令時(shí),未正確過(guò)濾和驗(yàn)證輸入,攻擊者可以通過(guò)構(gòu)造特殊字符或命令注入來(lái)接管Shell并執(zhí)行任意命令。
4. 文件包含漏洞:當(dāng)應(yīng)用程序允許通過(guò)用戶輸入包含外部文件時(shí),如果沒(méi)有正確驗(yàn)證和過(guò)濾輸入,攻擊者可以構(gòu)造惡意輸入來(lái)包含并執(zhí)行任意命令。
5. 操作系統(tǒng)環(huán)境變量:當(dāng)應(yīng)用程序使用操作系統(tǒng)的環(huán)境變量來(lái)執(zhí)行命令時(shí),如果沒(méi)有正確驗(yàn)證和過(guò)濾環(huán)境變量,攻擊者可以通過(guò)修改環(huán)境變量的值來(lái)執(zhí)行任意命令。
十三、代碼執(zhí)行漏洞
概念:由于PHP程序未對(duì)前端用戶提交的數(shù)據(jù)進(jìn)行嚴(yán)格過(guò)濾或限制,從而導(dǎo)致傳入的字段被帶入到代碼執(zhí)行函數(shù)中作為參數(shù)執(zhí)行,造成GetShell或接管服務(wù)器權(quán)限等高危害的Web漏洞!
原理:
由于開發(fā)者在編寫代碼時(shí)沒(méi)有預(yù)見到或考慮到攻擊者可能利用輸入來(lái)執(zhí)行惡意操作的情況,或者在編寫過(guò)程中沒(méi)有充分地進(jìn)行輸入驗(yàn)證、數(shù)據(jù)過(guò)濾和安全控制,從而導(dǎo)致了漏洞的產(chǎn)生。
攻擊方式:
1. 遠(yuǎn)程代碼執(zhí)行(Remote Code Execution,RCE):攻擊者通過(guò)輸入惡意數(shù)據(jù)觸發(fā)目標(biāo)系統(tǒng)上的代碼執(zhí)行,進(jìn)而控制目標(biāo)系統(tǒng)。常見的遠(yuǎn)程代碼執(zhí)行漏洞包括未經(jīng)正確過(guò)濾的用戶輸入傳遞給命令執(zhí)行函數(shù)、不安全的反序列化等。
2. SQL 注入(SQL Injection):攻擊者通過(guò)在用戶輸入中注入惡意的 SQL 語(yǔ)句,繞過(guò)輸入驗(yàn)證和過(guò)濾,從而執(zhí)行惡意代碼。如果目標(biāo)系統(tǒng)沒(méi)有正確處理用戶輸入的 SQL 查詢,就容易受到 SQL 注入攻擊。
3. 命令注入(Command Injection):攻擊者通過(guò)在用戶輸入中注入惡意的命令,繞過(guò)輸入驗(yàn)證和過(guò)濾,從而在目標(biāo)系統(tǒng)上執(zhí)行任意命令。常見的命令注入漏洞出現(xiàn)在系統(tǒng)調(diào)用、Shell 命令執(zhí)行、遠(yuǎn)程管理協(xié)議等地方。
4. 文件包含漏洞(File Inclusion Vulnerabilities):攻擊者通過(guò)包含惡意文件的方式執(zhí)行代碼。這種漏洞通常出現(xiàn)在動(dòng)態(tài)包含文件的語(yǔ)言中,如 PHP。如果目標(biāo)系統(tǒng)未對(duì)用戶輸入進(jìn)行適當(dāng)校驗(yàn)和過(guò)濾,攻擊者就可以通過(guò)構(gòu)造惡意的文件路徑或遠(yuǎn)程 URL,包含并執(zhí)行惡意文件。
5. eval() 函數(shù)調(diào)用:如果目標(biāo)系統(tǒng)的代碼中使用 eval() 函數(shù)動(dòng)態(tài)執(zhí)行用戶輸入的代碼,而沒(méi)有對(duì)輸入進(jìn)行適當(dāng)處理和驗(yàn)證,攻擊者就可以通過(guò)注入惡意代碼利用這個(gè)漏洞執(zhí)行任意代碼。
6. 反序列化漏洞(Deserialization Vulnerabilities):攻擊者可以通過(guò)構(gòu)造惡意的序列化數(shù)據(jù)來(lái)實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行。當(dāng)目標(biāo)系統(tǒng)未正確驗(yàn)證和過(guò)濾反序列化的數(shù)據(jù)時(shí),攻擊者可以注入惡意代碼。
常見的執(zhí)行命令, 獲取敏感信息,寫入 web 后門等
十四、webshell免殺
概念:攻擊者通過(guò)各種技術(shù)手段繞過(guò)安全軟件的檢測(cè)和防御機(jī)制,使其植入的Webshell能夠在目標(biāo)系統(tǒng)中長(zhǎng)期存在而不被發(fā)現(xiàn)。
原理:
通過(guò)對(duì)Webshell進(jìn)行修改或加密,使其能夠繞過(guò)安全軟件的檢測(cè)和防御機(jī)制。
1. 代碼混淆:通過(guò)對(duì) webshell 代碼進(jìn)行混淆,使其難以被靜態(tài)分析引擎或模式匹配規(guī)則識(shí)別和檢測(cè)。混淆可以包括變量名、函數(shù)名、常量字符串等的更改、添加冗余代碼、使用編碼或加密等手段。
2. 動(dòng)態(tài)加載:將 webshell 拆分為多個(gè)模塊,通過(guò)動(dòng)態(tài)加載和組合來(lái)還原完整的功能。這樣做可以使原有的 webshell 樣本變得不連續(xù),使其更難被基于特征匹配的檢測(cè)機(jī)制檢測(cè)到。
3. 命令執(zhí)行繞過(guò):在執(zhí)行命令時(shí),采用一些繞過(guò)技巧來(lái)規(guī)避安全軟件的檢測(cè)和防御。例如,利用操作系統(tǒng)的特殊命令、檢測(cè)環(huán)境是否在沙盒內(nèi)、模擬用戶登錄等。
4. 數(shù)據(jù)包加密:對(duì) webshell 和與其交互的數(shù)據(jù)進(jìn)行加密,使其在傳輸過(guò)程中難以被網(wǎng)絡(luò)安全設(shè)備或入侵檢測(cè)系統(tǒng)(IDS/IPS)檢測(cè)到。
5. 反調(diào)試和反追蹤:在 webshell 中添加反調(diào)試和反追蹤的代碼,以防止安全人員對(duì)其進(jìn)行分析和調(diào)試。
6. 文件偽裝:將 webshell 文件偽裝成系統(tǒng)或合法應(yīng)用程序的文件,使其更難被安全軟件或系統(tǒng)文件掃描檢測(cè)到。
攻擊方式:
1.代碼混淆和加密:攻擊者使用代碼混淆和加密技術(shù),使Webshell的代碼難以被識(shí)別和分析。這可以包括使用多種編碼、加密算法和混淆工具,使Webshell的代碼變得無(wú)法直接識(shí)別和理解。
2.變形和變量替換:攻擊者通過(guò)改變Webshell的代碼結(jié)構(gòu)和變量命名,使其與常見的安全檢測(cè)規(guī)則和模式不匹配。這樣可以繞過(guò)檢測(cè)系統(tǒng)的靜態(tài)和動(dòng)態(tài)分析。
3.動(dòng)態(tài)生成和反射執(zhí)行:攻擊者使用動(dòng)態(tài)代碼生成和反射執(zhí)行技術(shù),使Webshell的代碼不存儲(chǔ)在磁盤上,而是在運(yùn)行時(shí)動(dòng)態(tài)生成并執(zhí)行。這種方式可以繞過(guò)靜態(tài)文件掃描和惡意代碼檢測(cè)。
4.高級(jí)免殺工具和技術(shù):攻擊者使用高級(jí)的免殺工具和技術(shù),例如使用自定義的加密算法、虛擬化技術(shù)、多級(jí)反射執(zhí)行等,以提高Webshell的免殺能力。這些工具和技術(shù)通常能夠繞過(guò)常見的安全防御工具和規(guī)則。
5.文件格式的利用:攻擊者利用一些特定文件格式的漏洞來(lái)傳播和執(zhí)行Webshell。例如,利用圖片或文檔文件格式的漏洞,將Webshell嵌入其中,從而繞過(guò)文件掃描和安全檢測(cè)。
6.時(shí)間延遲和睡眠機(jī)制:攻擊者通過(guò)在Webshell代碼中添加時(shí)間延遲和睡眠機(jī)制,使Webshell的活動(dòng)在特定時(shí)間范圍內(nèi)變得較為稀少,從而減少被檢測(cè)到的可能性。
了解這些網(wǎng)絡(luò)攻擊類型的相關(guān)知識(shí),是構(gòu)建堅(jiān)固網(wǎng)絡(luò)安全防線的重要基礎(chǔ)。無(wú)論是網(wǎng)絡(luò)安全從業(yè)者,還是普通的網(wǎng)絡(luò)用戶,都應(yīng)重視這些潛在威脅,采取有效的防范措施,共同守護(hù)網(wǎng)絡(luò)空間的安全與秩序。
想了解更多技術(shù)小分享歡迎上藍(lán)隊(duì)云官網(wǎng)查詢,更多免費(fèi)技術(shù)學(xué)習(xí)文檔,藍(lán)隊(duì)云期待與您一起探索。