SQL注入
概念:一種將惡意代碼插入到程序 SQL 語(yǔ)句中,從而誤導(dǎo)數(shù)據(jù)庫(kù)執(zhí)行惡意邏輯的攻擊技術(shù)。通過 SQL 注入,攻擊者可以達(dá)到獲取敏感信息,竊取訪問權(quán)限等目的。
原理:
攻擊方式:
搜索注入
報(bào)錯(cuò)注入
堆疊查詢注入
基于布爾的盲注
基于時(shí)間的盲注(延時(shí)注入)
HTTP頭部注入
寬字節(jié)注入
二階注入
DNSlog外帶注入
XSS
概念:目標(biāo)未對(duì)用戶從前端功能點(diǎn)輸入的數(shù)據(jù)與輸出的內(nèi)容進(jìn)行處理或者處理不當(dāng),從而導(dǎo)致惡意的JS代碼被執(zhí)行造成竊取用戶信息/劫持WEB行為危害的WEB漏洞!
原理:
攻擊者利用瀏覽器執(zhí)行前端代碼(HTML、CSS、JavaScript)的特性,將惡意的JavaScript代碼插入到頁(yè)面中,當(dāng)用戶瀏覽頁(yè)面時(shí),導(dǎo)致惡意代碼被執(zhí)行。
攻擊方式:
1.反射型 xss 攻擊的方法為:攻擊者通過發(fā)送郵件或誘導(dǎo)等方法,將包含有 xss 惡意鏈接發(fā)送給目標(biāo)用戶,當(dāng)目標(biāo)用戶訪問該鏈接時(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ù)沒有過濾或過濾不嚴(yán),那么這些惡意代碼沒有經(jīng)過過濾將儲(chǔ)存到數(shù)據(jù)庫(kù)中,用戶訪問該頁(yè)面的時(shí)候,沒有進(jìn)行編碼過濾輸出到瀏覽器上,就會(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ì)象包含屬性、方法和事件??梢酝ㄟ^ JS 腳本對(duì)文檔對(duì)象進(jìn)行編輯從而修改頁(yè)面的元素。也就是說(shuō),客戶端的腳本程序可以通過 DOM 來(lái)動(dòng)態(tài)修改頁(yè)面內(nèi)容,從客戶端獲取 DOM 中的數(shù)據(jù)并在本地執(zhí)行。基于這個(gè)特性,就可以利用 JS 腳本來(lái)實(shí)現(xiàn) XSS 漏洞的利用!
三者區(qū)別:
CSRF
概念:由于網(wǎng)站對(duì)用戶網(wǎng)頁(yè)瀏覽器的信任導(dǎo)致用戶在當(dāng)前已登錄的Web站點(diǎn)的狀態(tài)下,訪問攻擊者構(gòu)造的攻擊連接從而執(zhí)行非本意的操作的漏洞。
原理:
攻擊方式:
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
概念:由于服務(wù)端提供了從其他服務(wù)器應(yīng)用獲取數(shù)據(jù)的功能,但又沒有對(duì)目標(biāo)地址做嚴(yán)格過濾與限制,導(dǎo)致攻擊者可以傳入任意的地址來(lái)讓后端服務(wù)器對(duì)其發(fā)送請(qǐng)求,并返回對(duì)該目標(biāo)地址請(qǐng)求的數(shù)據(jù)的Web安全漏洞!
原理:
攻擊方式:
1.訪問內(nèi)部資源:攻擊者通過在目標(biāo)應(yīng)用程序中構(gòu)造惡意請(qǐng)求,使其發(fā)起針對(duì)內(nèi)部網(wǎng)絡(luò)的請(qǐng)求。
2.攻擊內(nèi)部系統(tǒng):攻擊者可以通過SSRF攻擊利用受害者服務(wù)器作為跳板攻擊其他系統(tǒng)。
3.繞過訪問控制:攻擊者可以利用SSRF漏洞繞過訪問控制,直接訪問目標(biāo)系統(tǒng)。
4.DOS攻擊:攻擊者可以通過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)站生成訪問控制策略,指定用戶瀏覽器放寬SOP的限制,實(shí)現(xiàn)與指定的目標(biāo)網(wǎng)站共享數(shù)據(jù)。
CORS跨域漏洞
概念:因?yàn)橥床呗缘拇嬖?,不同源的客戶端腳本不能訪問目標(biāo)站點(diǎn)的資源,如果目標(biāo)站點(diǎn)CORS配置不當(dāng),沒有對(duì)請(qǐng)求源的域做嚴(yán)格限制,導(dǎo)致任意源都可以訪問時(shí),就存在cors跨域漏洞問題。
原理:
攻擊者可以利用Web應(yīng)用對(duì)用戶請(qǐng)求數(shù)據(jù)包的Origin頭校驗(yàn)不嚴(yá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ì)象可以被前端的用戶控制且沒有經(jīng)過過濾或嚴(yán)格的定義,用戶可以將其他的文件作為參數(shù)帶入到PHP代碼中解釋執(zhí)行,從而造成敏感信息泄露/程序文件讀取/GetShell等危害的漏洞。
原理:
在應(yīng)用程序中未正確過濾用戶控制的文件路徑,并將用戶提供的輸入直接或間接地包含在動(dòng)態(tài)文件包含語(yǔ)句中。
攻擊方式:
1. 本地文件包含(Local File Inclusion,LFI)攻擊:攻擊者通過構(gòu)造惡意請(qǐng)求,直接或間接地包含服務(wù)器上的本地文件。如果攻擊成功,攻擊者可以讀取敏感文件的內(nèi)容,如配置文件、用戶憑證、日志文件等。有時(shí)候攻擊者甚至可以通過修改包含的文件來(lái)達(dá)到任意代碼執(zhí)行的目的。
2. 遠(yuǎn)程文件包含(Remote File Inclusion,RFI)攻擊:攻擊者通過構(gòu)造惡意請(qǐng)求,將遠(yuǎn)程服務(wù)器上的文件包含到應(yīng)用程序中。攻擊者通常會(huì)在遠(yuǎn)程服務(wù)器上放置惡意腳本,然后通過文件包含漏洞來(lái)執(zhí)行這些惡意腳本。這使得攻擊者能夠在目標(biāo)服務(wù)器上執(zhí)行任意的代碼,并可能導(dǎo)致服務(wù)器完全被控制。
文件上傳漏洞
概念:由于程序員未對(duì)上傳的文件進(jìn)行嚴(yán)格的驗(yàn)證和過濾,而導(dǎo)致的用戶可以越過其本身權(quán)限向服務(wù)器上傳可執(zhí)行的動(dòng)態(tài)腳本文件。
原理:
網(wǎng)站web應(yīng)用都有一些文件上傳功能,比如文檔、圖片、頭像、視頻上傳,當(dāng)上傳功能的實(shí)現(xiàn)代碼沒有嚴(yán)格校驗(yàn)上傳文件的后綴和文件類型,此時(shí)攻擊者就可以上傳一個(gè)webshell到一個(gè)web可訪問的目錄上,并將惡意文件傳遞給PHP解釋器去執(zhí)行,之后就可以在服務(wù)器上執(zhí)行惡意代碼,進(jìn)行數(shù)據(jù)庫(kù)執(zhí)行、服務(wù)器文件管理,服務(wù)器命令執(zhí)行等惡意操作。
攻擊方式:
尋找測(cè)試網(wǎng)站的文件上傳的模塊,常見:頭像上傳,修改上傳,文件編輯器中文件上傳,圖片上傳、媒體上傳等,通過抓包上傳惡意的文件進(jìn)行測(cè)試,上傳后綴名 asp php aspx 等的動(dòng)態(tài)語(yǔ)言腳本,查看上傳時(shí)的返回信息,判斷是否能直接上傳,如果不能直接上傳,再進(jìn)行測(cè)試上傳突破,例如上傳文件的時(shí)候只允許圖片格式的后綴,但是修改文件時(shí),卻沒有限制后綴名,圖片文件可以修改成動(dòng)態(tài)語(yǔ)言格式如php,則可能訪問這個(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ù)未正確過濾用戶輸入的路徑導(dǎo)致的漏洞,嘗試獲取系統(tǒng)中的敏感文件。攻擊者可能使用"../"等字符序列來(lái)跳出當(dāng)前目錄,訪問系統(tǒng)中的其他目錄和文件。
2. 文件包含漏洞:攻擊者通過向應(yīng)用程序提交惡意請(qǐng)求,利用應(yīng)用程序在包含外部文件時(shí)未進(jìn)行恰當(dāng)驗(yàn)證的漏洞。攻擊者可能通過在URL參數(shù)、請(qǐng)求頭部或配置文件中注入惡意文件路徑來(lái)實(shí)現(xiàn)對(duì)惡意代碼的執(zhí)行。
3. 遠(yuǎn)程文件包含(RFI)攻擊:攻擊者通過利用包含遠(yuǎn)程文件的功能,向應(yīng)用程序注入惡意代碼。攻擊者可以通過提供指向惡意腳本的遠(yuǎn)程URL,使應(yīng)用程序?qū)⒃撃_本下載并在服務(wù)器上執(zhí)行。
4. 本地文件包含(LFI)攻擊:攻擊者通過注入文件路徑或惡意代碼,利用應(yīng)用程序在包含本地文件時(shí)未進(jìn)行適當(dāng)驗(yàn)證的漏洞。攻擊者可能訪問系統(tǒng)中的敏感文件、加密密碼、配置文件等。
5. Null字節(jié)注入攻擊:攻擊者通過在文件名中插入空字節(jié)(0x00),欺騙解析函數(shù)將文件截?cái)?,從而繞過文件擴(kuò)展名控制,執(zhí)行惡意代碼。
反序列化漏洞
概念:當(dāng)程序在進(jìn)行反序列化時(shí),會(huì)自動(dòng)調(diào)用一些函數(shù),例如__wakeup(),__destruct()等函數(shù),但是如果傳入函數(shù)的參數(shù)可以被用戶控制的話,用戶可以輸入一些惡意代碼到函數(shù)中,從而導(dǎo)致反序列化漏洞。
原理:
1. 序列化和反序列化:在編程中,對(duì)象可以通過序列化轉(zhuǎn)換為字節(jié)流,以便在不同的系統(tǒng)之間傳輸或存儲(chǔ)。序列化是將對(duì)象轉(zhuǎn)換為字節(jié)流的過程,而反序列化是將字節(jié)流轉(zhuǎn)換回對(duì)象的過程。
2. 反序列化漏洞:反序列化漏洞通常出現(xiàn)在輸入信任的序列化數(shù)據(jù)上。攻擊者可以構(gòu)造包含特定有效負(fù)載的惡意序列化數(shù)據(jù),并將其提供給目標(biāo)應(yīng)用程序。
3. 不安全的反序列化:應(yīng)用程序未正確驗(yàn)證或過濾反序列化數(shù)據(jù),導(dǎo)致攻擊者能夠執(zhí)行惡意操作。這可能是由于應(yīng)用程序信任反序列化數(shù)據(jù),而沒有恰當(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ù)污染攻擊:攻擊者可以通過修改應(yīng)用程序或請(qǐng)求的參數(shù),將惡意的序列化數(shù)據(jù)傳遞給應(yīng)用程序。應(yīng)用程序在反序列化時(shí),會(huì)解析并執(zhí)行這些惡意數(shù)據(jù),導(dǎo)致安全漏洞。
2. 遠(yuǎn)程代碼執(zhí)行(RCE):攻擊者通過傳遞經(jīng)過特殊構(gòu)造的惡意序列化數(shù)據(jù)到應(yīng)用程序,成功執(zhí)行遠(yuǎn)程代碼。這使得攻擊者可以獲取應(yīng)用程序的控制權(quán),并執(zhí)行任意操作。
3. 敏感信息泄露:在某些情況下,應(yīng)用程序在執(zhí)行反序列化過程中,可能會(huì)暴露敏感信息。攻擊者可以通過構(gòu)造特定的序列化數(shù)據(jù),使得應(yīng)用程序在反序列化時(shí)泄露敏感數(shù)據(jù)。
4. 服務(wù)拒絕(Denial of Service,DoS)攻擊:攻擊者可以構(gòu)造惡意的序列化數(shù)據(jù),使目標(biāo)應(yīng)用程序在反序列化過程中消耗大量計(jì)算資源或內(nèi)存,導(dǎo)致系統(tǒng)崩潰或無(wú)法響應(yīng)正常請(qǐng)求。
5. 鏈?zhǔn)椒葱蛄谢簦汗粽呃脧?fù)雜的對(duì)象關(guān)聯(lián)和嵌套,通過構(gòu)造惡意的序列化數(shù)據(jù),觸發(fā)多次反序列化操作。這些操作可能會(huì)引起應(yīng)用程序中的意外行為,導(dǎo)致安全漏洞。
命令執(zhí)行漏洞
概念:由于PHP程序未對(duì)前端用戶提交的數(shù)據(jù)進(jìn)行嚴(yán)格過濾或限制,從而導(dǎo)致傳入的字段被帶入到命令執(zhí)行函數(shù)中作為參數(shù)執(zhí)行,造成GetShell或接管服務(wù)器權(quán)限等高危害的Web漏洞!
原理:
服務(wù)端沒有對(duì)執(zhí)行命令的函數(shù)做出過濾導(dǎo)致的。我們可通過編寫一些系統(tǒng)函數(shù)來(lái)輸入疑似存在命令執(zhí)行接口的地方,來(lái)檢測(cè)是否此接口是否存在命令執(zhí)行漏洞。
攻擊方式:
1. 輸入驗(yàn)證不足:當(dāng)用戶輸入被直接傳遞給系統(tǒng)命令時(shí),沒有進(jìn)行充分的輸入驗(yàn)證和過濾,攻擊者可以通過在輸入中插入特殊字符或命令注入,執(zhí)行任意命令。
2. 操作系統(tǒng)調(diào)用:當(dāng)程序在執(zhí)行命令時(shí)使用操作系統(tǒng)的調(diào)用函數(shù),但沒有正確驗(yàn)證和過濾輸入數(shù)據(jù),攻擊者可以通過構(gòu)造惡意輸入來(lái)執(zhí)行任意系統(tǒng)命令。
3. Shell接管:當(dāng)程序在執(zhí)行命令時(shí),通過使用系統(tǒng)調(diào)用函數(shù)將命令傳遞給一種外部程序解釋器,如Shell,但在傳遞命令時(shí),未正確過濾和驗(yàn)證輸入,攻擊者可以通過構(gòu)造特殊字符或命令注入來(lái)接管Shell并執(zhí)行任意命令。
4. 文件包含漏洞:當(dāng)應(yīng)用程序允許通過用戶輸入包含外部文件時(shí),如果沒有正確驗(yàn)證和過濾輸入,攻擊者可以構(gòu)造惡意輸入來(lái)包含并執(zhí)行任意命令。
5. 操作系統(tǒng)環(huán)境變量:當(dāng)應(yīng)用程序使用操作系統(tǒng)的環(huán)境變量來(lái)執(zhí)行命令時(shí),如果沒有正確驗(yàn)證和過濾環(huán)境變量,攻擊者可以通過修改環(huán)境變量的值來(lái)執(zhí)行任意命令。
代碼執(zhí)行漏洞
概念:由于PHP程序未對(duì)前端用戶提交的數(shù)據(jù)進(jìn)行嚴(yán)格過濾或限制,從而導(dǎo)致傳入的字段被帶入到代碼執(zhí)行函數(shù)中作為參數(shù)執(zhí)行,造成GetShell或接管服務(wù)器權(quán)限等高危害的Web漏洞!
原理:
由于開發(fā)者在編寫代碼時(shí)沒有預(yù)見到或考慮到攻擊者可能利用輸入來(lái)執(zhí)行惡意操作的情況,或者在編寫過程中沒有充分地進(jìn)行輸入驗(yàn)證、數(shù)據(jù)過濾和安全控制,從而導(dǎo)致了漏洞的產(chǎn)生。
攻擊方式:
1. 遠(yuǎn)程代碼執(zhí)行(Remote Code Execution,RCE):攻擊者通過輸入惡意數(shù)據(jù)觸發(fā)目標(biāo)系統(tǒng)上的代碼執(zhí)行,進(jìn)而控制目標(biāo)系統(tǒng)。常見的遠(yuǎn)程代碼執(zhí)行漏洞包括未經(jīng)正確過濾的用戶輸入傳遞給命令執(zhí)行函數(shù)、不安全的反序列化等。
2. SQL 注入(SQL Injection):攻擊者通過在用戶輸入中注入惡意的 SQL 語(yǔ)句,繞過輸入驗(yàn)證和過濾,從而執(zhí)行惡意代碼。如果目標(biāo)系統(tǒng)沒有正確處理用戶輸入的 SQL 查詢,就容易受到 SQL 注入攻擊。
3. 命令注入(Command Injection):攻擊者通過在用戶輸入中注入惡意的命令,繞過輸入驗(yàn)證和過濾,從而在目標(biāo)系統(tǒng)上執(zhí)行任意命令。常見的命令注入漏洞出現(xiàn)在系統(tǒng)調(diào)用、Shell 命令執(zhí)行、遠(yuǎn)程管理協(xié)議等地方。
4. 文件包含漏洞(File Inclusion Vulnerabilities):攻擊者通過包含惡意文件的方式執(zhí)行代碼。這種漏洞通常出現(xiàn)在動(dòng)態(tài)包含文件的語(yǔ)言中,如 PHP。如果目標(biāo)系統(tǒng)未對(duì)用戶輸入進(jìn)行適當(dāng)校驗(yàn)和過濾,攻擊者就可以通過構(gòu)造惡意的文件路徑或遠(yuǎn)程 URL,包含并執(zhí)行惡意文件。
5. eval() 函數(shù)調(diào)用:如果目標(biāo)系統(tǒng)的代碼中使用 eval() 函數(shù)動(dòng)態(tài)執(zhí)行用戶輸入的代碼,而沒有對(duì)輸入進(jìn)行適當(dāng)處理和驗(yàn)證,攻擊者就可以通過注入惡意代碼利用這個(gè)漏洞執(zhí)行任意代碼。
6. 反序列化漏洞(Deserialization Vulnerabilities):攻擊者可以通過構(gòu)造惡意的序列化數(shù)據(jù)來(lái)實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行。當(dāng)目標(biāo)系統(tǒng)未正確驗(yàn)證和過濾反序列化的數(shù)據(jù)時(shí),攻擊者可以注入惡意代碼。
常見的執(zhí)行命令, 獲取敏感信息,寫入 web 后門等
webshell免殺
概念:攻擊者通過各種技術(shù)手段繞過安全軟件的檢測(cè)和防御機(jī)制,使其植入的Webshell能夠在目標(biāo)系統(tǒng)中長(zhǎng)期存在而不被發(fā)現(xiàn)。
原理:
通過對(duì)Webshell進(jìn)行修改或加密,使其能夠繞過安全軟件的檢測(cè)和防御機(jī)制。
1. 代碼混淆:通過對(duì) webshell 代碼進(jìn)行混淆,使其難以被靜態(tài)分析引擎或模式匹配規(guī)則識(shí)別和檢測(cè)?;煜梢园ㄗ兞棵?、函數(shù)名、常量字符串等的更改、添加冗余代碼、使用編碼或加密等手段。
2. 動(dòng)態(tài)加載:將 webshell 拆分為多個(gè)模塊,通過動(dòng)態(tài)加載和組合來(lái)還原完整的功能。這樣做可以使原有的 webshell 樣本變得不連續(xù),使其更難被基于特征匹配的檢測(cè)機(jī)制檢測(cè)到。
3. 命令執(zhí)行繞過:在執(zhí)行命令時(shí),采用一些繞過技巧來(lái)規(guī)避安全軟件的檢測(cè)和防御。例如,利用操作系統(tǒng)的特殊命令、檢測(cè)環(huán)境是否在沙盒內(nèi)、模擬用戶登錄等。
4. 數(shù)據(jù)包加密:對(duì) webshell 和與其交互的數(shù)據(jù)進(jìn)行加密,使其在傳輸過程中難以被網(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.變形和變量替換:攻擊者通過改變Webshell的代碼結(jié)構(gòu)和變量命名,使其與常見的安全檢測(cè)規(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í)行。這種方式可以繞過靜態(tài)文件掃描和惡意代碼檢測(cè)。
4.高級(jí)免殺工具和技術(shù):攻擊者使用高級(jí)的免殺工具和技術(shù),例如使用自定義的加密算法、虛擬化技術(shù)、多級(jí)反射執(zhí)行等,以提高Webshell的免殺能力。這些工具和技術(shù)通常能夠繞過常見的安全防御工具和規(guī)則。
5.文件格式的利用:攻擊者利用一些特定文件格式的漏洞來(lái)傳播和執(zhí)行Webshell。例如,利用圖片或文檔文件格式的漏洞,將Webshell嵌入其中,從而繞過文件掃描和安全檢測(cè)。
6.時(shí)間延遲和睡眠機(jī)制:攻擊者通過在Webshell代碼中添加時(shí)間延遲和睡眠機(jī)制,使Webshell的活動(dòng)在特定時(shí)間范圍內(nèi)變得較為稀少,從而減少被檢測(cè)到的可能性。
該文章在 2024/1/24 22:48:42 編輯過