山東網(wǎng)站建設(shè)網(wǎng)絡(luò)公司首頁(yè)排名關(guān)鍵詞優(yōu)化
文章目錄:
一:任意文件讀取漏洞?
1.定義
2.危害
3.產(chǎn)生原因
4.發(fā)現(xiàn)漏洞?
5.利用漏洞
6.防范措施
7.讀取漏洞舉例
二:任意文件下載漏洞
1.定義
2.漏洞利用
3.漏洞挖掘
4.漏洞驗(yàn)證
5.漏洞防御修復(fù)
?pikachu靶場(chǎng):是一個(gè)網(wǎng)絡(luò)安全訓(xùn)練平臺(tái),旨在模擬真實(shí)世界中的網(wǎng)絡(luò)攻擊和防御場(chǎng)景,幫助用戶提高網(wǎng)絡(luò)安全技能和知識(shí)
一:任意文件讀取漏洞?
1.定義
任意文件讀取漏洞屬于文件操作漏洞的一種,攻擊者通過(guò)提交特定的輸入,可以繞過(guò)安全限制,讀取服務(wù)器上的敏感文件或配置文件這種漏洞通常發(fā)生在文件讀取函數(shù)(如readfile(), file_get_contents(), fopen()等)的使用過(guò)程中 當(dāng)這些函數(shù)的輸入路徑未經(jīng)過(guò)嚴(yán)格校驗(yàn)或校驗(yàn)不嚴(yán)時(shí),攻擊者就可以控制這個(gè)變量來(lái)讀取任意文件
2.危害
任意文件讀取漏洞的危害極大,它不僅可以泄露網(wǎng)站的結(jié)構(gòu)目錄,還可能導(dǎo)致敏感信息(如用戶密碼、數(shù)據(jù)庫(kù)配置文件、系統(tǒng)配置文件等)的泄露這些敏感信息一旦被攻擊者獲取,就可能被用于進(jìn)一步的攻擊,如密碼破解、數(shù)據(jù)篡改、系統(tǒng)控制等
3.產(chǎn)生原因
1.文件讀取函數(shù)的輸入路徑用戶可控2.輸入路徑未經(jīng)過(guò)嚴(yán)格校驗(yàn)或校驗(yàn)不嚴(yán)3.服務(wù)器未對(duì)文件訪問(wèn)權(quán)限進(jìn)行嚴(yán)格控制
4.發(fā)現(xiàn)漏洞?
一般可以通過(guò)構(gòu)造特殊的URL請(qǐng)求來(lái)嘗試觸發(fā)文件讀取漏洞例如,在URL中添加特殊的路徑參數(shù)(如../或~/),并觀察服務(wù)器是否返回了非預(yù)期的文件內(nèi)容
5.利用漏洞
1.讀取系統(tǒng)配置文件(如/etc/passwd, /etc/shadow等),獲取系統(tǒng)用戶信息2.讀取數(shù)據(jù)庫(kù)配置文件(如數(shù)據(jù)庫(kù)連接字符串),嘗試直接連接數(shù)據(jù)庫(kù)3.讀取網(wǎng)站源代碼或配置文件,尋找其他安全漏洞4.讀取日志文件,獲取網(wǎng)站訪問(wèn)記錄或用戶操作記錄
6.防范措施
1.對(duì)所有輸入進(jìn)行嚴(yán)格的校驗(yàn)和過(guò)濾,確保輸入路徑符合預(yù)期2.使用白名單機(jī)制來(lái)限制可訪問(wèn)的文件類型和路徑3.對(duì)敏感文件和目錄設(shè)置嚴(yán)格的訪問(wèn)權(quán)限,對(duì)所有文件路徑輸入進(jìn)行嚴(yán)格的驗(yàn)證和清理4.使用參數(shù)化查詢或安全的文件操作函數(shù)來(lái)避免直接拼接用戶輸入5.定期對(duì)網(wǎng)站進(jìn)行安全審計(jì)和漏洞掃描,及時(shí)發(fā)現(xiàn)并修復(fù)安全漏洞6.始終將上傳的文件存儲(chǔ)在Web根目錄之外的安全目錄中,禁用或嚴(yán)格限制文件上傳功能,如果它們不是必需的7.確保服務(wù)器配置正確,以防止符號(hào)鏈接和其他潛在的文件系統(tǒng)攻擊8.記錄和監(jiān)控所有文件上傳和下載嘗試,以便在發(fā)生安全事件時(shí)進(jìn)行檢測(cè)和響應(yīng)記錄和監(jiān)控所有文件訪問(wèn)嘗試,以便在發(fā)生安全事件時(shí)進(jìn)行檢測(cè)和響應(yīng)9.考慮使用Web應(yīng)用防火墻(WAF)來(lái)增強(qiáng)安全性10.始終使用最新版本的PHP和服務(wù)器軟件,并應(yīng)用所有安全補(bǔ)丁
7.讀取漏洞舉例
?假設(shè)有一個(gè)Web應(yīng)用程序,它提供了一個(gè)文件下載功能,允許用戶通過(guò)URL參數(shù)指定要下載的文件名
<?php $filename = $_GET['file']; // 從URL參數(shù)中獲取文件名 // 假設(shè)有某種簡(jiǎn)單的安全檢查,但不夠嚴(yán)格 if (strpos($filename, '..') === false) { // 如果文件名中不包含"..",則認(rèn)為是安全的 if (file_exists('/path/to/files/' . $filename)) { // 文件存在,則讀取并發(fā)送給用戶 readfile('/path/to/files/' . $filename); } else { echo "文件不存在"; } } else { echo "非法請(qǐng)求"; } ?>
代碼審計(jì)、漏洞分析
在這個(gè)例子中,雖然有一個(gè)簡(jiǎn)單的安全檢查來(lái)防止路徑遍歷(即檢查文件名中是否包含"..")http://example.com/download.php?file=../../../etc/passwd但這種檢查是不充分的,攻擊者可以利用:編碼、URL編碼/百分比編碼、符號(hào)鏈接或其他技巧來(lái)繞過(guò)這種檢查URL編碼/百分比編碼http://example.com/download.php?file=%2e%2e%2f%2e%2e%2f%2e%2e%2fetc%2fpasswdUnicode編碼:假設(shè)服務(wù)器錯(cuò)誤地將Unicode字符U+202E(右至左標(biāo)記)與文件名處理結(jié)合,導(dǎo)致路徑解析被逆轉(zhuǎn)http://example.com/download.php?file=a.txt%E2%80%AE..%E2%80%AE..%E2%80%AEetc%E2%80%AEpasswd路徑截?cái)鄅ttp://example.com/download.php?file=a.txt%00../etc/passwd
二:任意文件下載漏洞
1.定義
任意文件下載 實(shí)現(xiàn)過(guò)程是:根據(jù)參數(shù)filename的值,獲得該文件在網(wǎng)站上的絕對(duì)路徑,讀取文件內(nèi)容,發(fā)生給客戶端進(jìn)行下載任意文件下載漏洞:網(wǎng)站由于業(yè)務(wù)需求,往往需要提供文件查看或文件下載功能,但若對(duì)用戶查看或下載的文件類型、目錄不做限制則惡意用戶就能夠查看或下載服務(wù)器上任意敏感文件,這就是文件查看與下載漏洞本來(lái)是指定目錄下的下載展示文件,但是我們可以下載目錄下頁(yè)面沒(méi)有展示的文件 ?filename=downloadfile.png目錄穿越漏洞:下載任意目錄下的文件 ?filename=../../downloadfile.txt
2.漏洞利用
漏洞利用獲取源碼(黑盒——>百盒);獲得站點(diǎn)與中間件配置文件; 獲得應(yīng)用與系統(tǒng)配置文件(ssh、mysql)針對(duì)web應(yīng)用php:獲取inc/config.php獲得數(shù)據(jù)庫(kù)連接字符串中的口令信息。asp:獲取inc/conn.asp文件,獲得數(shù)據(jù)庫(kù)連接字符串,得到數(shù)據(jù)庫(kù)口令。若是ACCESs數(shù)據(jù)庫(kù),可以得到數(shù)據(jù)庫(kù)路徑,在下載數(shù)據(jù)庫(kù)內(nèi)容aspX獲取網(wǎng)站根目錄web.config文件,獲得數(shù)據(jù)庫(kù)連接字符串中的口令信息獲取bin/*.dll文件,獲取網(wǎng)站源碼(不完整代碼)。使用.NET reflector工具打開編譯后的dll文件jsp獲取conf/tomcat-user.xml文件,獲得tomcat管理界面的口令信息,上傳war包GetShell獲取wEB-INF/Web.xml文件,獲得數(shù)據(jù)庫(kù)連接字符串中的口令信息針對(duì)操作系統(tǒng)WindowsC:\boot.ini //查看系統(tǒng)版本C:\WindowslSystem32\inetsrvMetaBase.xml //llS配置文件C:\Windows\repairsam //存儲(chǔ)系統(tǒng)初次安裝的密碼C:\Program Filesimysqlmy.ini //Mysql配置C:Program Filesimysqlldatalmysqlluser.MYD //Mysql rootC:\Windowsiphp.ini //php配置信息C:lWindowsimy.ini //Mysql配置信息C:lWindowslwin.ini //Windows系統(tǒng)的一個(gè)基本系統(tǒng)配置文件LinuX/root/.ssh/authorized keys/root/.ssh/id_rsa/root/.ssh/id ras.keystore/root/.ssh/known hosts //記錄每個(gè)訪問(wèn)計(jì)算機(jī)用戶的公鑰/etc/passwd/etc/shadow/etc/my.cnf //mysql配置文件/ctc/httpd/conf/httpd.conf //apachc配置文件/root/.bash_history //用戶歷史命令記錄文件/root/.mysql_history //mysql歷史命令記錄文件
3.漏洞挖掘
漏洞挖掘1.Google Hacker利用inurl:"readfile.php?file=" //搜索含有關(guān)鍵字的url地址 allinurlintitle:關(guān)鍵字 //把網(wǎng)頁(yè)標(biāo)題中某個(gè)關(guān)鍵字作為搜索條件 allintitle完全匹配intext:關(guān)鍵字 //把網(wǎng)頁(yè)正文中某個(gè)關(guān)鍵字作為搜索條件 allintext完全匹配關(guān)鍵字 site:網(wǎng)址 //返回域名中所有的url地址filetype:拓展名(不可單獨(dú)使用) //搜索特點(diǎn)格式的文件.pwI 口令文件.tmp 臨時(shí)文件.cfg 配置文件.ini 系統(tǒng)文件.hlp 幫助文件.dat 數(shù)據(jù)文件.log 日志文件.par 交互文件.pdf\.doc\.docx 文檔文件.xls\.xlsx\.csv 表格文件.ppt\.pptx 幻燈片文件.zip\.rar\.7z\.iso 壓縮文件 cache:網(wǎng)站 //搜索一個(gè)網(wǎng)站的緩存運(yùn)行info:關(guān)鍵字 //搜索指定站點(diǎn)的一些基本信息define //搜索關(guān)鍵字的定義link //查找與關(guān)鍵字做了鏈接的 URL 地址related:URL //搜索與指定 URL 相關(guān)的頁(yè)面stocks //搜索有關(guān)一家公司的股票市場(chǎng)信息insubject //搜索 Google 組的標(biāo)題行msgid //搜索識(shí)別新聞組帖子的Google 組信息標(biāo)識(shí)符和字符串group //搜索 Google 組搜索詞匯帖子的題目author //搜索新聞組帖子的作者bphonebook //僅搜索商業(yè)電話號(hào)碼簿 rphonebook //僅搜索住宅電話號(hào)碼簿phonebook //搜索商業(yè)或者住宅電話號(hào)碼簿daterange //搜索某個(gè)日期范圍內(nèi)Google做索引的網(wǎng)頁(yè)inanchor //搜索一個(gè) HTML 標(biāo)記中的一個(gè)鏈接的文本表現(xiàn)形式運(yùn)算符空格 邏輯與操作- 邏輯非操作,如 A-C表示搜索有A但沒(méi)C的網(wǎng)頁(yè)OR | 邏輯或,如A OR B表示搜索含有A的網(wǎng)頁(yè)B的網(wǎng)頁(yè)和同時(shí)含A和B的網(wǎng)頁(yè)''' 精確搜索用雙引號(hào)通配符* 代替任意字符串? 代替任意字符~ 代替同義詞.. 數(shù)字范圍 1..4==1,2,3,4其他事項(xiàng)Google 對(duì)英文關(guān)鍵字的大小寫不敏感Google對(duì)出現(xiàn)頻率極高的英文單詞做忽略處理。如.com i www http等如果要對(duì)忽略的關(guān)鍵字進(jìn)行強(qiáng)制搜索,則需要在該關(guān)鍵字前加上明文的”+”號(hào)Google大部分常用英文符號(hào)(如問(wèn)號(hào),句號(hào),逗號(hào)等)無(wú)法成為搜索關(guān)鍵字,加強(qiáng)制也不行2.從鏈接上看download.php?path=download.php?file=down.php?file=data.php?filc=readfile.php?fileread.php?filename3.從參數(shù)上看&realPath=&filePath=&filepath=&filepath=&path=&path=&inputFile=&Inputfile=&urls=&url=
4.漏洞驗(yàn)證
漏洞驗(yàn)證index.php?f=../../../../../../etc/passwdindex.php?f=../../../../windows/win.iniindex.php?f=../index.php
5.漏洞防御修復(fù)
漏洞防御修復(fù)1.正則表達(dá)式嚴(yán)格判斷用戶輸入?yún)?shù)的格式2.下載路徑不可控,而是程序自動(dòng)生成后保存在數(shù)據(jù)庫(kù)中,根據(jù)ID進(jìn)行下載3.過(guò)濾.:對(duì)參數(shù)做嚴(yán)格的過(guò)濾,不能進(jìn)行目錄遍歷(穿越)4.php.ini配置open basedir限定文件訪問(wèn)范圍