1.sql注入
原理: SQL 注入就是指 web 應(yīng)用程序?qū)τ脩糨斎氲臄?shù)據(jù)合法性沒有過濾或者是判斷,前端傳入的參數(shù)是攻擊者可以控制,并且參數(shù)帶入數(shù)據(jù)庫(kù)的查詢,攻擊者可以通過構(gòu)造惡意的 sql 語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的任意操作。 ? 分類: 1、報(bào)錯(cuò)注入 2、bool 型注入 3、延時(shí)注入 4、寬字節(jié)注入 ? 防御: 1.使用預(yù)編譯語(yǔ)句,綁定變量 2.使用存儲(chǔ)過程 3.使用安全函數(shù) 4.檢查數(shù)據(jù)類型 ? 1.獲取數(shù)據(jù)庫(kù)名 select SCHEMA_NAME from information_schema.SCHEMATA 2.獲取表名 select TABLE_NAME from information_schema.TABLES 3.獲取字段名 select * from information_schema.COLUMNS where TABLE_NAME="users" and TABLE_SCHEMA="security" 4.獲取數(shù)據(jù) select id,username,password from users ?
2.失效的身份認(rèn)證和會(huì)話管理
原理: 在開發(fā)web應(yīng)用程序時(shí),開發(fā)人員往往只關(guān)注Web應(yīng)用程序所需的功能,所以常常會(huì)建立自定義的認(rèn)證和會(huì)話方案。但是要正確的實(shí)現(xiàn)這些方案卻是很難的。結(jié)果就在退出、密碼管理、超時(shí)、密碼找回、帳戶更新等方面存在漏洞。 ? 防御: 1、區(qū)分公共區(qū)域和受限區(qū)域。 2、對(duì)最終用戶帳戶使用帳戶鎖定策略。 3、支持密碼有效期。 4、能夠禁用帳戶。 5、不要存儲(chǔ)用戶密碼。 6、要求使用強(qiáng)密碼。 7、不要在網(wǎng)絡(luò)上以純文本形式發(fā)送密碼。 8、保護(hù)身份驗(yàn)證 Cookie。 9、使用 SSL 保護(hù)會(huì)話身份驗(yàn)證 Cookie。 10、對(duì)身份驗(yàn)證 cookie 的內(nèi)容進(jìn)行加密。 11、限制會(huì)話壽命。 12、避免未經(jīng)授權(quán)訪問會(huì)話狀態(tài)。
3.跨站腳本攻擊 XSS
XSS是跨站腳本攻擊,原理是攻擊者向有XSS漏洞的網(wǎng)站中輸入惡意的HTML代碼,當(dāng)其它用戶瀏覽該網(wǎng)站時(shí),這段HTML代碼會(huì)自動(dòng)執(zhí)行,從而達(dá)到攻擊的目的。 ? 分類:反射型(非持久型)XSS、存儲(chǔ)型(持久型)XSS、DOM型XSS. ? 區(qū)別: DOM XSS和反射型XSS、存儲(chǔ)型XSS的差別在于DOM XSS的代碼并不需要服務(wù)器參與,觸發(fā)XSS靠的是瀏覽器端的DOM解析,完全是客戶端的事情。 ? 什么是 HttpOnly? 如果您在 cookie 中設(shè)置了 HttpOnly 屬性,那么通過 js 腳本將無(wú)法讀取到cookie 信息,這樣能有效的防止 XSS 攻擊。 ? 預(yù)防: 1.使用XSS Filter,即跨站腳本過濾器,用于分析用戶提交的輸入,并過濾可能存在的腳本攻擊及惡意的THML或簡(jiǎn)單的HTML格式錯(cuò)誤等。 ? 2.輸入過濾 輸入是否僅僅包含合法的字符; 輸入字符串是否超過最大長(zhǎng)度限制; 輸入如果為數(shù)字,數(shù)字是否在指定的范圍; 輸入是否符合特殊的格式要求,如E-mail地址、IP地址等 3.輸出編碼 <(小于號(hào)) 轉(zhuǎn)成 < > (大于號(hào))轉(zhuǎn)成 > & (和號(hào))轉(zhuǎn)成 & " (雙引號(hào))轉(zhuǎn)成 " ' (單引號(hào))轉(zhuǎn)成 ' 4.黑名單和白名單 5.內(nèi)容安全策略(csp):CSP用于限制瀏覽器查看您的頁(yè)面,以便它只能使用從受信任來(lái)源下載的資源。
4.直接引用不安全的對(duì)象
定義: 不安全的直接對(duì)象引用(IDOR)允許攻擊者繞過網(wǎng)站的身份驗(yàn)證機(jī)制,并通過修改指向?qū)ο箧溄又械膮?shù)值來(lái)直接訪問目標(biāo)對(duì)象資源,這類資源可以是屬于其他用戶的數(shù)據(jù)庫(kù)條目以及服務(wù)器系統(tǒng)中的隱私文件等等。 ? 出現(xiàn)的原因: Web應(yīng)用往往在生成Web頁(yè)面時(shí)會(huì)用它的真實(shí)名字,且并不會(huì)對(duì)所有的目標(biāo)對(duì)象訪問時(shí)來(lái)檢查用戶權(quán)限,所以這就造成了不安全的對(duì)象直接引用的漏洞。 服務(wù)器上的具體文件名、路徑或數(shù)據(jù)庫(kù)關(guān)鍵字等內(nèi)部資源被暴露在URL或網(wǎng)頁(yè)中,攻擊者可以嘗試直接訪問其他資源。 ? 防御措施: 1.使用基于用戶或會(huì)話的間接對(duì)象訪問,這樣可防止攻擊者直接攻擊未授權(quán)資源 2.訪問檢查:對(duì)任何來(lái)自不受信源所使用的所有對(duì)象進(jìn)行訪問控制檢查 3.避免在url或網(wǎng)頁(yè)中直接引用內(nèi)部文件名或數(shù)據(jù)庫(kù)關(guān)鍵字 4.驗(yàn)證用戶輸入和url請(qǐng)求,拒絕包含./ …/的請(qǐng)求
5.安全配置錯(cuò)誤
定義: 安全配置錯(cuò)誤可以發(fā)生在一個(gè)應(yīng)用程序堆棧的任何層面,通常是由于不安全的默認(rèn)配置、不完整的臨時(shí)配置、開源云存儲(chǔ)、錯(cuò)誤的HTTP 標(biāo)頭配置以及包含敏感信息的詳細(xì)錯(cuò)誤信息所造成的。 ? 影響: 攻擊者能夠通過未修復(fù)的漏洞、訪問默認(rèn)賬戶、不再使用的頁(yè)面、未受保護(hù)的文件和目錄等來(lái)取得對(duì)系統(tǒng)的未授權(quán)的訪問或了解。 ? 防御措施: 1、 配置所有的安全機(jī)制 2、 最小原則,關(guān)掉或限制不使用的服務(wù) 3、 更改默認(rèn)賬戶信息 4、 使用日志和警報(bào) 5、 回顯信息不顯示任何與實(shí)際錯(cuò)誤相關(guān)的信息 6、 檢查和修復(fù)安全配置項(xiàng)
6.敏感信息泄露
漏洞描述: 由于管理員或者技術(shù)人員等各種原因?qū)е旅舾行畔⑿孤丁TS多web應(yīng)用程序和app都無(wú)法正確保護(hù)敏感數(shù)據(jù),攻擊者可以通過竊取或修改未加密的數(shù)據(jù)來(lái)實(shí)施信用卡詐騙、身份盜竊或其他犯罪行為。未加密的敏感數(shù)據(jù)容易受到破壞,因此,我們需要對(duì)敏感數(shù)據(jù)加密,這些數(shù)據(jù)包括:傳輸過程中的數(shù)據(jù)、存儲(chǔ)的數(shù)據(jù)以及瀏覽器的交互數(shù)據(jù)。 ? 檢測(cè)方法: 1、手工挖掘,查看web容器或網(wǎng)頁(yè)源碼代碼,可能存在敏感信息。比如訪問url下的目錄,直接列出了目錄下的文件列表,錯(cuò)誤的報(bào)錯(cuò)信息包含了網(wǎng)站的信息。 2、工具挖掘,像爬蟲之類的工具可以掃描到敏感文件路徑,從而找到敏感數(shù)據(jù)。 ? 防范措施: 1、 對(duì)系統(tǒng)處理、存儲(chǔ)或傳輸?shù)臄?shù)據(jù)進(jìn)行分類,根據(jù)分類進(jìn)行訪問控制。 2、 對(duì)用戶敏感信息的傳輸和存儲(chǔ)進(jìn)行加密 3、 強(qiáng)化安全意識(shí)
7.缺少功能級(jí)的訪問控制
原理: 大多數(shù)Web應(yīng)用程序的功能在UI頁(yè)面顯示之前,會(huì)驗(yàn)證功能級(jí)別的訪問權(quán)限。但是,應(yīng)用程序需要在每個(gè)功能被訪問時(shí)在服務(wù)器端執(zhí)行相同的訪問控制檢查。如果請(qǐng)求沒有被驗(yàn)證,攻擊者能夠偽造請(qǐng)求從而在未經(jīng)適當(dāng)授權(quán)時(shí)訪問功能。 ? 測(cè)試方法: 1、 保證合法授權(quán)用戶可以訪問成功 2、 限制非法未授權(quán)用戶的訪問 ? 防御措施: 1、 設(shè)計(jì)嚴(yán)格的權(quán)限控制系統(tǒng),對(duì)于每個(gè)請(qǐng)求和URL都要進(jìn)行校驗(yàn)和權(quán)限確認(rèn),防止非法請(qǐng)求被執(zhí)行 2、 對(duì)于每個(gè)功能的訪問,都要有明確的角色授權(quán),采用過濾器的方式校驗(yàn)每個(gè)請(qǐng)求的合法性 3、 實(shí)現(xiàn)Web訪問的IP白名單列表,禁止不可信的IP訪問Web系統(tǒng)
8.跨站請(qǐng)求偽造 CSRF
CSRF概念: CSRF跨站點(diǎn)請(qǐng)求偽造(Cross—Site Request Forgery),跟XSS攻擊一樣,存在巨大的危害性,你可以這樣來(lái)理解:攻擊者盜用了你的身份,以你的名義發(fā)送惡意請(qǐng)求,對(duì)服務(wù)器來(lái)說(shuō)這個(gè)請(qǐng)求是完全合法的,但是卻完成了攻擊者所期望的一個(gè)操作,比如以你的名義發(fā)送郵件、發(fā)消息,盜取你的賬號(hào),添加系統(tǒng)管理員,甚至于購(gòu)買商品、虛擬貨幣轉(zhuǎn)賬等。 如下:其中Web A為存在CSRF漏洞的網(wǎng)站,Web B為攻擊者構(gòu)建的惡意網(wǎng)站,User C為Web A網(wǎng)站的合法用戶。 ? 攻擊原理: CSRF攻擊攻擊原理及過程如下: 1. 用戶C打開瀏覽器,訪問受信任網(wǎng)站A,輸入用戶名和密碼請(qǐng)求登錄網(wǎng)站A; 2.在用戶信息通過驗(yàn)證后,網(wǎng)站A產(chǎn)生Cookie信息并返回給瀏覽器,此時(shí)用戶登錄網(wǎng)站A成功,可以正常發(fā)送請(qǐng)求到網(wǎng)站A; 3. 用戶未退出網(wǎng)站A之前,在同一瀏覽器中,打開一個(gè)TAB頁(yè)訪問網(wǎng)站B; 4. 網(wǎng)站B接收到用戶請(qǐng)求后,返回一些攻擊性代碼,并發(fā)出一個(gè)請(qǐng)求要求訪問第三方站點(diǎn)A; 5. 瀏覽器在接收到這些攻擊性代碼后,根據(jù)網(wǎng)站B的請(qǐng)求,在用戶不知情的情況下攜帶Cookie信息,向網(wǎng)站A發(fā)出請(qǐng)求。網(wǎng)站A并不知道該請(qǐng)求其實(shí)是由B發(fā)起的,所以會(huì)根據(jù)用戶C的Cookie信息以C的權(quán)限處理該請(qǐng)求,導(dǎo)致來(lái)自網(wǎng)站B的惡意代碼被執(zhí)行。 ? 分類: GET型和POST型。 ? 防御手段: 1、驗(yàn)證 HTTP Referer 字段。 根據(jù)HTTP協(xié)議,在HTTP頭中有一個(gè)字段叫Referer,它記錄了該HTTP請(qǐng)求的來(lái)源地址。 2、在請(qǐng)求地址中添加 token 并驗(yàn)證 在HTTP請(qǐng)求中以參數(shù)的形式加入一個(gè)隨機(jī)產(chǎn)生的token(隨機(jī)字符串),并在服務(wù)器端建立一個(gè)攔截器來(lái)驗(yàn)證這個(gè)token,如果請(qǐng)求中沒有token或者token內(nèi)容不正確,則認(rèn)為可能是CSRF攻擊而拒絕該請(qǐng)求。 3、二次驗(yàn)證 在轉(zhuǎn)賬等關(guān)鍵操作之前提供當(dāng)前用戶的密碼或者驗(yàn)證碼。二次驗(yàn)證可以有效防御CSRF 攻擊。
9.使用含有已知漏洞的組件
原理: 大多數(shù)的開發(fā)團(tuán)隊(duì)并不會(huì)把及時(shí)更新組件和庫(kù)當(dāng)成他們的工作重心,更不關(guān)心組件和庫(kù)的版本,然而應(yīng)用程序使用帶有已知漏洞的組件會(huì)破壞應(yīng)用程序防御系統(tǒng),可能導(dǎo)致嚴(yán)重的數(shù)據(jù)丟失或服務(wù)器接管。 ? 防御措施: 1.標(biāo)識(shí)正在使用的所有組件和版本,包括所有依賴項(xiàng)。 2.及時(shí)關(guān)注這些組件的安全信息并保證他們是最新的。 3.建立使用組件的安全策略,禁止使用未經(jīng)安全評(píng)估的組件。 4.在適當(dāng)情況下,對(duì)組件進(jìn)行安全封裝,精簡(jiǎn)不必要的功能,封裝易受攻擊部分。
10.未驗(yàn)證的重定向和轉(zhuǎn)發(fā)
重定向: 重定向是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼(通常為3xx),告訴瀏覽器重新去請(qǐng)求那個(gè)地址.所以地址欄顯示的是新的URL。(重定向是在客戶端完成的) 轉(zhuǎn)發(fā): 轉(zhuǎn)發(fā)是在服務(wù)器內(nèi)部將請(qǐng)求轉(zhuǎn)發(fā)給另一個(gè)資源,把那個(gè)URL的響應(yīng)內(nèi)容讀取過來(lái),然后把這些內(nèi)容再發(fā)給瀏覽器.瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容從哪里來(lái)的,因?yàn)檫@個(gè)跳轉(zhuǎn)過程是在服務(wù)器實(shí)現(xiàn)的,并不是在客戶端實(shí)現(xiàn)的所以客戶端并不知道這個(gè)跳轉(zhuǎn)動(dòng)作,所以它的地址欄還是原來(lái)的地址。(轉(zhuǎn)發(fā)是在服務(wù)器端完成的) ? 兩者的區(qū)別: 1、重定向是瀏覽器向服務(wù)器發(fā)送一個(gè)請(qǐng)求并收到響應(yīng)后再次向一個(gè)新地址發(fā)出請(qǐng)求,轉(zhuǎn)發(fā)是服務(wù)器收到請(qǐng)求后為了完成響應(yīng)跳轉(zhuǎn)到一個(gè)新的地址。 2、重定向有兩次請(qǐng)求,不共享數(shù)據(jù),轉(zhuǎn)發(fā)是有一次請(qǐng)求且共享數(shù)據(jù)。 3、重定向后地址欄會(huì)發(fā)生變化,轉(zhuǎn)發(fā)不會(huì)。 4、重定向的地址可以是任意地址,轉(zhuǎn)發(fā)的地址只能是當(dāng)前應(yīng)用類的某一個(gè)地址。 ? 預(yù)防措施: 1、重定向外部網(wǎng)站需要驗(yàn)證是否在白名單。 2、轉(zhuǎn)發(fā)內(nèi)部網(wǎng)站要驗(yàn)證是否有權(quán)限,有權(quán)限才轉(zhuǎn)發(fā)。
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-629788.html
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-629788.html
到了這里,關(guān)于2022-滲透測(cè)試-OWASP TOP10詳細(xì)講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!