柚子快報(bào)激活碼778899分享:秋招 安全面試
柚子快報(bào)激活碼778899分享:秋招 安全面試
黑盒漏洞:
一、SQL注入漏洞
原理:在數(shù)據(jù)交互中,前端的數(shù)據(jù)傳入到后臺處理時(shí),由于后端沒有做嚴(yán)格的判斷,導(dǎo)致其傳入的“數(shù)據(jù)”拼接到SQL語句中后,被當(dāng)作SQL語句的一部分執(zhí)行。
種類:字符,數(shù)字,布爾,報(bào)錯(cuò),延遲,聯(lián)合,堆疊,寬字節(jié),XFF等防御:預(yù)編譯,加裝waf,正則表達(dá)式過濾,開啟魔術(shù)引號。
sql注入寫webshell條件
1、知道絕對路徑;2、有文件寫入權(quán)限(root) 3、開啟·secure_file_priv設(shè)置
二、xss漏洞
原理:XSS是指惡意攻擊者利用網(wǎng)站沒有對用戶提交數(shù)據(jù)進(jìn)行轉(zhuǎn)義處理或者過濾不足的缺點(diǎn),進(jìn)而添加一些代碼,嵌入到web頁面中去。使別的用戶訪問都會執(zhí)行相應(yīng)的嵌入代碼,從而盜取用戶資料、利用用戶身份進(jìn)行某種動作或者對訪問者進(jìn)行病毒侵害的一種攻擊方式。
種類:存儲型,反射型,DOM型
區(qū)別:存儲型:常出現(xiàn)在信息修改添加等地方,導(dǎo)致惡意代碼被存儲在數(shù)據(jù)庫中,每當(dāng)被攻擊者訪問到后就會觸發(fā)執(zhí)行;反射型:常出現(xiàn)在url中,一般需要攻擊者提前構(gòu)造好惡意鏈接,欺騙用戶點(diǎn)擊,觸發(fā)攻擊代碼;DOM型:攻擊代碼在url中,然后輸出在了瀏覽器的DOM節(jié)點(diǎn)中。簡單比較會發(fā)現(xiàn),存儲和反射都經(jīng)過服務(wù)器,而DOM是純前端。
修復(fù):對輸入數(shù)據(jù)進(jìn)行Html Encode 處理,白名單過濾,過濾JavaScript 事件的標(biāo)簽,開啟http-only,裝WAF等。
三、服務(wù)段請求偽造漏洞(ssrf)
原理:攻擊者能夠通過偽裝成終端用戶或服務(wù)器自身,將惡意數(shù)據(jù)發(fā)送到目標(biāo)網(wǎng)站內(nèi)部網(wǎng)絡(luò),以達(dá)到讀取敏感信息、竊取密碼等危害。
種類:參數(shù)污染型SSRF、基于缺陷的SSRF、反射性SSRF。
修復(fù): ①輸入驗(yàn)證:對于所有從客戶端輸入的數(shù)據(jù),包括URL、表單和HTTP頭字段,都要進(jìn)行驗(yàn)證和過濾,刪除不必要的字符和空格,并限制輸入長度。 ②明確白名單:建立一個(gè)明確的白名單,只允許應(yīng)用程序訪問合法的資源。例如,定義一個(gè)URL庫,在應(yīng)用程序中僅允許訪問這個(gè)庫中的URL。 ③限制重定向:使用HTTP響應(yīng)頭來限制服務(wù)器的重定向行為,避免惡意重定向?qū)е碌腟SRF風(fēng)險(xiǎn)。 ④檢測遠(yuǎn)程地址:應(yīng)用程序應(yīng)該檢測所有遠(yuǎn)程URLs和IP地址,以確保它們指向預(yù)期的目標(biāo)并且可信。 ⑤安全配置:安全地配置服務(wù)器和其他基礎(chǔ)設(shè)施,包括對端口、協(xié)議和代理服務(wù)器的限制,以減少攻擊表面。
四、跨站點(diǎn)請求偽造漏洞(csrf)
原理:CSRF(跨站點(diǎn)請求偽造)漏洞是一種利用受害者已經(jīng)登錄了某個(gè)網(wǎng)站的身份認(rèn)證信息這一事實(shí)進(jìn)行攻擊的手段。攻擊者通過構(gòu)造一個(gè)特制的請求,誘導(dǎo)受害者在該網(wǎng)站上訪問并執(zhí)行該請求,從而實(shí)現(xiàn)攻擊目的。
種類:CSRF漏洞可以分為get型、post型和jsonp型三種類型。其中,get型攻擊主要利用圖片、鏈接等標(biāo)簽的src屬性來觸發(fā),post型則是提交表單或請求,jsonp型則是利用JSONP跨域特性進(jìn)行攻擊。
修復(fù):防止CSRF漏洞的方法主要有Token驗(yàn)證、Referer驗(yàn)證、使用驗(yàn)證碼、同源檢測和限制Cookie作用域等。具體來說,建議在表單和請求中加入隨機(jī)生成的Token值,并在服務(wù)器端對Token進(jìn)行驗(yàn)證;使用Referer驗(yàn)證來判斷請求是否來源于本站;使用驗(yàn)證碼來防止自動化攻擊;限制Cookie的作用域,使其僅在必要的URL路徑下生效;檢查并確保應(yīng)用程序不會直接響應(yīng)用戶提交的數(shù)據(jù)等。
白盒漏洞
一、JAVA反序列化? ?
Java中的ObjectOutputStream類的writeObject()方法可以實(shí)現(xiàn)序列化,其作用把對象轉(zhuǎn)換成字節(jié)流,便于保存或者傳輸,而ObjectInputStream類的readObject()方法用于反序列化,作用就是把字節(jié)流還原成對象。
Java反序列化就是將java對象轉(zhuǎn)化為字節(jié)序列的過程。反序列化的過程就是
1,創(chuàng)建一個(gè)對象輸出流
2,通過對象輸出流的ReadObject()方法來讀取對象
二、PHP反序列化
序列化就是將一個(gè)對象轉(zhuǎn)換成字符串,反序列化則反之,將字符串重新轉(zhuǎn)化為對象。此外,PHP反序列化又可以簡單分成兩種,一種無類,一種有類,無類利用就略微簡單,如果源碼會將輸入的值進(jìn)行反序列化,那我們就需要提前將數(shù)據(jù)序列化后再傳入。而想要利用有類就要用到魔術(shù)方法,而魔術(shù)方法就像一個(gè)潛規(guī)則一樣,例如我們在創(chuàng)建對象時(shí),就會觸發(fā) construct(),并執(zhí)行 construct()中的代碼。
三、常見的框架漏洞
log4j遠(yuǎn)程代碼執(zhí)行漏洞
原理:
Log4j 是Apache 的一個(gè)開源項(xiàng)目,是一款基于Java 的開源日志記錄工具。該漏洞主要是由于日志在打印時(shí)當(dāng)遇到`${`后,以:號作為分割,將表達(dá)式內(nèi)容分割成兩部分,前面一部分prefix,后面部分作為key,然后通過prefix去找對應(yīng)的lookup,通過對應(yīng)的lookup實(shí)例調(diào)用lookup方法,最后將key作為參數(shù)帶入執(zhí)行,引發(fā)遠(yuǎn)程代碼執(zhí)行漏洞。 具體操作:
在正常的log處理過程中對**${**這兩個(gè)緊鄰的字符做了檢測,一旦匹配到類似于表達(dá)式結(jié)構(gòu)的字符串就會觸發(fā)替換機(jī)制,將表達(dá)式的內(nèi)容替換為表達(dá)式解析后的內(nèi)容,而不是表達(dá)式本身,從而導(dǎo)致攻擊者構(gòu)造符合要求的表達(dá)式供系統(tǒng)執(zhí)行 ? ? ? ?
Fastjson反序列化漏洞
判斷:
正常請求是get請求并且沒有請求體,可以通過構(gòu)造錯(cuò)誤的POST請求,即可查看在返回包中是否有fastjson這個(gè)字符串來判斷。
原理:
fastjson是阿里巴巴開發(fā)的一款將json字符串和java對象進(jìn)行序列化和反序列化的開源json解析庫。fastjson提供了autotype功能,在請求過程中,我們可以在請求包中通過修改@type的值,來反序列化為指定的類型,而fastjson在反序列化過程中會設(shè)置和獲取類中的屬性,如果類中存在惡意方法,就會導(dǎo)致代碼執(zhí)行等這類問題。
無回顯怎么辦:
1.一種是直接將命令執(zhí)行結(jié)果寫入到靜態(tài)資源文件里,如html、js等,然后通過http訪問就可以直接看到結(jié)果 2.通過dnslog進(jìn)行數(shù)據(jù)外帶,但如果無法執(zhí)行dns請求就無法驗(yàn)證了 3.直接將命令執(zhí)行結(jié)果回顯到請求Poc的HTTP響應(yīng)中
Shiro反序列化漏洞
原理:
Shiro是Apache下的一個(gè)開源Java安全框架,執(zhí)行身份認(rèn)證,授權(quán),密碼和會話管理。shiro在用戶登錄時(shí)除了賬號密碼外還提供了可傳遞選項(xiàng)remember me。用戶在登錄時(shí)如果勾選了remember me選項(xiàng),那么在下一次登錄時(shí)瀏覽器會攜帶cookie中的remember me字段發(fā)起請求,就不需要重新輸入用戶名和密碼。
判斷:
1.數(shù)據(jù)返回包中包含rememberMe=deleteMe字段。
2.直接發(fā)送原數(shù)據(jù)包,返回的數(shù)據(jù)中不存在關(guān)鍵字可以通過在發(fā)送數(shù)據(jù)包的cookie中增加字段:****rememberMe=然后查看返回?cái)?shù)據(jù)包中是否存在關(guān)鍵字。
shiro-550:
shiro反序列化漏洞利用有兩個(gè)關(guān)鍵點(diǎn),首先是在shiro<1.2.4時(shí),AES加密的密鑰Key被硬編碼在代碼里,只要能獲取到這個(gè)key就可以構(gòu)造惡意數(shù)據(jù)讓shiro識別為正常數(shù)據(jù)。另外就是shiro在驗(yàn)證rememberMe時(shí)使用了readObject方法,readObject用來執(zhí)行反序列化后需要執(zhí)行的代碼片段,從而造成惡意命令可以被執(zhí)行。攻擊者構(gòu)造惡意代碼,并且序列化,AES加密,base64編碼后,作為cookie的rememberMe字段發(fā)送。Shiro將rememberMe進(jìn)行編碼,解密并且反序列化,最終造成反序列化漏洞。
shiro-721: 不需要key,利用Padding Oracle Attack構(gòu)造出RememberMe字段后段的值結(jié)合合法的Remember。
應(yīng)急響應(yīng)
一、應(yīng)急響應(yīng)的流程
1、收集信息:收集客戶信息和中毒主機(jī)信息,包括樣本 2、判斷類型:判斷是否是安全事件,何種安全事件,勒索、挖礦、斷網(wǎng)、DoS 等等 3、抑制范圍:隔離使受害?不繼續(xù)擴(kuò)?(做好隔離) 4、深入分析:日志分析、進(jìn)程分析、啟動項(xiàng)分析、樣本分析方便后期溯源 5、清理處置:殺掉進(jìn)程,刪除文件,打補(bǔ)丁,刪除異常系統(tǒng)服務(wù),清除后門賬號防止事件擴(kuò)大,處理完畢后恢復(fù)生產(chǎn) 6、產(chǎn)出報(bào)告:整理并輸出完整的安全事件報(bào)告
二、系統(tǒng)排查
1、windows
2、Linux
查看定時(shí)任務(wù):
1、利用 crontab 查詢創(chuàng)建的定時(shí)任務(wù) 基本命令 crontab -l 列出某個(gè)用戶 cron 服務(wù)的詳細(xì)內(nèi)容 Tips : 默 認(rèn) 編 寫 的 crontab 文 件 會 保 存 在 (/var/spool/cron/ 用 戶 名 例 如 : /var/spool/cron/root crontab -r 刪除每個(gè)用戶 cront 任務(wù)(謹(jǐn)慎:刪除所有的計(jì)劃任務(wù))
crontab -e 使用編輯器編輯當(dāng)前的 crontab 文件 如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分鐘寫入文件
2、利用 anacron 命令實(shí)現(xiàn)異步定時(shí)任務(wù)調(diào)度 使用案例 每天運(yùn)行 /home/backup.sh 腳本: vi /etc/anacrontab @daily 10 example.daily /bin/bash /home/backup.sh 當(dāng)機(jī)器在 backup.sh 期望被運(yùn)行時(shí)是關(guān)機(jī)的,anacron 會在機(jī)器開機(jī)十分鐘之后運(yùn)行它,而 不用再等待 7 天
溯源相關(guān)
柚子快報(bào)激活碼778899分享:秋招 安全面試
好文鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。