各類web應(yīng)用充斥在我們的網(wǎng)絡(luò)生活中,但是因?yàn)殚_發(fā)者安全意識不強(qiáng)而導(dǎo)致的安全問題同樣層出不窮,畢竟僅僅依靠個人編寫代碼總會有考慮不周全的時候。一旦這些WEB漏洞被黑客攻擊者利用,他可以輕易控制整個網(wǎng)站,并可進(jìn)一步提權(quán)獲取網(wǎng)站服務(wù)器權(quán)限,控制整個服務(wù)器。
e小安就總結(jié)了常見的web安全漏洞與測試方法,供大家交流學(xué)習(xí)。
一、SQL注入
SQL注入(SQL Injection),是最常見影響非常廣泛的漏洞。攻擊者通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令,從而入侵?jǐn)?shù)據(jù)庫來執(zhí)行未授意的任意查詢。
SQL注入可能造成的危害有:網(wǎng)頁、數(shù)據(jù)被篡改,核心數(shù)據(jù)被竊取,數(shù)據(jù)庫所在的服務(wù)器被攻擊,變成傀儡主機(jī)。
例如有些網(wǎng)站沒有使用預(yù)編譯sql,用戶在界面上輸入的一些字段被添加到sql中,很有可能這些字段包含一些惡意的sql命令。如:password = "1' OR '1'='1";即使不知道用戶密碼,也能正常登錄。
測試方法:在需要進(jìn)行查詢的頁面,輸入正確查詢條件 and 1=1等簡單sql語句,查看應(yīng)答結(jié)果,如與輸入正確查詢條件返回結(jié)果一致,表明應(yīng)用程序?qū)τ脩糨斎胛催M(jìn)行過濾,可以初步判斷此處存在SQL注入漏洞
二、XSS跨站腳本攻擊
SS(Cross Site Script),與SQL注入相似,XSS是通過網(wǎng)頁插入惡意腳本,主要用到的技術(shù)也是前端的HTML和java script腳本。當(dāng)用戶瀏覽網(wǎng)頁時,實(shí)現(xiàn)控制用戶瀏覽器行為的攻擊方式。
一次成功的XSS,可以獲取到用戶的cookie,利用該cookie盜取用戶對該網(wǎng)站的操作權(quán)限;也可以獲取到用戶聯(lián)系人列表,利用被攻擊者的身份向特定的目標(biāo)群發(fā)送大量的垃圾信息,等等。
XSS分為三類:存儲型(持久性XSS)、反射型(非持久性XSS)、DOM型。
測試方法:在數(shù)據(jù)輸入界面,輸入:《script》alert(/123/),保存成功后如果彈出對話框,表明此處存在一個XSS 漏洞。
或把url請求中參數(shù)改為《script》alert(/123/),如果頁面彈出對話框,表明此處存在一個XSS 漏洞。
三、CSRF跨站偽造請求攻擊
CSRF(Cross Site Request Forgery),利用已登錄的用戶身份,以用戶的名義發(fā)送惡意請求,完成非法操作。
例如:用戶如果瀏覽并信任了存在CSRF漏洞的網(wǎng)站A,瀏覽器產(chǎn)生了相應(yīng)的cookie,用戶在沒有退出該網(wǎng)站的情況下,訪問了危險(xiǎn)網(wǎng)站B 。
危險(xiǎn)網(wǎng)站B要求訪問網(wǎng)站A,發(fā)出一個請求。瀏覽器帶著用戶的cookie信息訪問了網(wǎng)站A,因?yàn)榫W(wǎng)站A不知道是用戶自身發(fā)出的請求還是危險(xiǎn)網(wǎng)站B發(fā)出的請求,所以就會處理危險(xiǎn)網(wǎng)站B的請求,這樣就完成了模擬用戶操作的目的。這就是CSRF攻擊的基本思想。
測試方法:同個瀏覽器打開兩個頁面,一個頁面權(quán)限失效后,另一個頁面是否可操作成功,如果仍然能操作成功即存在風(fēng)險(xiǎn)。
2.使用工具發(fā)送請求,在http請求頭中不加入referer字段,檢驗(yàn)返回消息的應(yīng)答,應(yīng)該重新定位到錯誤界面或者登錄界面。
四、文件上傳漏洞
文件上傳攻擊是指攻擊者上傳了一個可執(zhí)行文件到服務(wù)器上,并執(zhí)行。
這種攻擊方式是最直接有效的。上傳的文件可以是病毒、木馬、惡意腳本或者是webshell等等。
Webshell是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,也可以說是一種網(wǎng)頁后門。攻擊者在受影響系統(tǒng)防止或插入webshell后,可以通過webshell方便進(jìn)入系統(tǒng),達(dá)到控制網(wǎng)站服務(wù)器的目的。
測試方法:對上傳的文件類型、大小等進(jìn)行嚴(yán)格校驗(yàn),禁止上傳惡意代碼的文件。對相關(guān)目錄的執(zhí)行權(quán)限進(jìn)行校驗(yàn),可以通過瀏覽器訪問Web 服務(wù)器上的所有目錄,檢查是否返回目錄結(jié)構(gòu),如果顯示的是目錄結(jié)構(gòu),則可能存在安全問題。
五、URL跳轉(zhuǎn)漏洞
URL跳轉(zhuǎn)漏洞,即未經(jīng)驗(yàn)證的重定向漏洞,是指Web程序直接跳轉(zhuǎn)到參數(shù)中的URL,或者在頁面中引入了任意開發(fā)者的URL,將程序引導(dǎo)到不安全的第三方區(qū)域,從而導(dǎo)致安全問題。
測試方法:1.使用抓包工具抓取請求。2.抓取302的url,修改目標(biāo)地址,查看是否能跳轉(zhuǎn)。ps:不過現(xiàn)在很多跳轉(zhuǎn)都加了referer的校驗(yàn)導(dǎo)致攻擊者跳轉(zhuǎn)失敗。
總結(jié)以上便是一些常見的Web安全漏洞及測試方法,在當(dāng)下網(wǎng)絡(luò)安全越來越被重視的情況下,Web安全測試在測試流程中的重要性也日益凸顯,雖然也存在AppScan等漏洞掃描工具,測試人員對常見的安全漏洞也需要有一定的認(rèn)知。