介紹一下如何利用路徑遍歷進(jìn)行攻擊及如何防范筆試題目
如果應用程序使用用戶(hù)可控制的數據,以危險的'方式訪(fǎng)問(wèn)位于應用服務(wù)器或其它后端文件系統的文件或目錄,就會(huì )出現路徑遍歷
String rurl = request.getParameter(“rurl”);
BufferedWriter utput2 = new BufferedWriter(new FileWriter(new File(“/home/chenyz/”+rurl)));
攻擊者可以將路徑遍歷序列放入文件名內,向上回溯,從而訪(fǎng)問(wèn)服務(wù)器上的任何文件,路徑遍歷序列叫“點(diǎn)-點(diǎn)-斜線(xiàn)”(..\)
http://***/go.action?file=..\..\etc\passwd
避開(kāi)過(guò)濾
第一種是過(guò)濾文件名參數中是否存在任何路徑遍歷序列(..\)
如果程序嘗試刪除(..\)來(lái)凈化用戶(hù)輸入,可以用
….// ….\/ …./\ ….\\
進(jìn)行URL編碼
點(diǎn)–>%2e 反斜杠–>%2f 正斜杠–>%5c
進(jìn)行16為Unicode編碼
點(diǎn)–>%u002e 反斜杠–>%u2215 正斜杠–>%u2216
進(jìn)行雙倍URL編碼
點(diǎn)–>%252e 反斜杠–>%u252f 正斜杠–>%u255c
進(jìn)行超長(cháng)UTF-8 Unicode編碼
點(diǎn)–>%c0%2e %e0$40%ae %c0ae
反斜杠–>%c0af %e0%80af %c0%af
正斜杠–>%c0%5c %c0%80%5c
預防路徑遍歷的方法:
1.對用戶(hù)提交的文件名進(jìn)行相關(guān)解碼與規范化
2.程序使用一個(gè)硬編碼,被允許訪(fǎng)問(wèn)的文件類(lèi)型列表
3.使用getCanonicalPath方法檢查訪(fǎng)問(wèn)的文件是否位于應用程序指定的起始位置
【介紹一下如何利用路徑遍歷進(jìn)行攻擊及如何防范筆試題目】相關(guān)文章:
如何防范勒索軟件攻擊08-09
談?wù)勅绾畏婪禔RP攻擊10-30
如何利用暑期進(jìn)行考研復習08-22
物業(yè)企業(yè)如何利用制度進(jìn)行管理08-26
企業(yè)如何利用稅法規定進(jìn)行納稅籌劃10-10
護士面試如何進(jìn)行自我介紹及范文11-05