安全測試-基礎(chǔ)知識

一、安全測試基礎(chǔ)知識
1.XSS簡介
(1) 什么是XSS?
XSS(Cross Site Scripting)跨站腳本攻擊,Web攻擊的一種,通過對網(wǎng)頁注入可執(zhí)行代碼(html代碼或JS代碼)成功被瀏覽器執(zhí)行。
(2) 實施XSS具備的條件?
需要向web頁面能夠注入惡意代碼(輸入框、url);
惡意代碼能夠被瀏覽器成功執(zhí)行;
(3) XSS攻擊原理?
用戶傳入的數(shù)據(jù)被當(dāng)做是程序,所以會執(zhí)行程序。
(4) XSS攻擊方式?
反射型XSS:用戶訪問一個被攻擊者篡改后的鏈接時,被植入的腳本會被用戶瀏覽器執(zhí)行,也稱非持久型因為是一次性,僅對當(dāng)次的頁面訪問產(chǎn)生影響;
反射型XSS場景:帶有XSS腳本的鏈接轉(zhuǎn)成的短鏈;【在url后跟xss腳本】,網(wǎng)址跳轉(zhuǎn);
存儲型XSS:包含XSS攻擊腳本的內(nèi)容會被存儲到服務(wù)器端,也稱持久型,用戶讀取到內(nèi)容時會自動執(zhí)行腳本;
存儲型XSS場景:其他用戶查看別人發(fā)布的留言、評論,管理員發(fā)布的公告,黑客發(fā)布的博客文章;反饋功能,投訴功能,聊天記錄功能。
(5) XSS攻擊注入點?
HTML節(jié)點內(nèi)容:動態(tài)生成,包含用戶輸入的內(nèi)容,從而包含XSS腳本;
HTML屬性:像img的src、輸入框的value等需要用戶自行輸入的地方;
JS代碼:某個JS代碼需要用戶傳值進(jìn)入;
富文本:富文本編輯框本身保存的內(nèi)容就包含html標(biāo)簽,用戶可輸入XSS腳本。
(6) XSS攻擊的危害性?
獲取頁面數(shù)據(jù):通過document即可獲取指定元素的值,如獲取用戶名稱、手機號、住址等【偷取網(wǎng)站任意數(shù)據(jù)包括用戶資料】;
獲取cookies:通過document.cookies可以獲取網(wǎng)站當(dāng)前的所有cookies,盜取當(dāng)前登錄用戶的登錄態(tài),從而冒充被盜用戶登錄網(wǎng)站甚至后臺管理系統(tǒng)【偷取用戶密碼和登錄態(tài)】;
劫持前端邏輯:可以修改某個操作的反饋內(nèi)容,譬如點擊某個按鈕本來應(yīng)該只提交一個請求,但通過XSS腳本可篡改該請求地址,然后用戶提交的信息發(fā)送到攻擊者封裝的接口;或可改變用戶跳轉(zhuǎn)的頁面【欺騙用戶,流量劫持】;
發(fā)送請求:攻擊者可以讓用戶在不知情的情況下發(fā)送某個請求收集用戶信息。
(7) 如何防御XSS攻擊?
瀏覽器自帶防御,X-XSS-Protection,主要防御反射型XSS攻擊,如參數(shù)出現(xiàn)在HTML內(nèi)容和屬性;
對html內(nèi)容進(jìn)行轉(zhuǎn)義,譬如將【<>】轉(zhuǎn)義成< > 存入數(shù)據(jù)庫時即轉(zhuǎn)義,或顯示時轉(zhuǎn)義;
對html屬性中的雙引號和單引號【"" ''】轉(zhuǎn)義成&quto; '
CSP1(Content SecurityPolicy)內(nèi)容安全策略,用于指定哪些內(nèi)容可執(zhí)行。

2.CSRF簡介
(1) 什么是CSRF?
CSRF(Cross Site Request Forgy)跨站請求偽造,用戶訪問的網(wǎng)站對惡意網(wǎng)站發(fā)出了一些請求,且這些請求是用戶不知情的情況下完成的;攻擊者盜用受信任用戶的身份,以他的名義向第三方網(wǎng)站發(fā)送惡意請求,對于服務(wù)器來說這個請求是合法的。
(2) CSRF是如何攻擊的?
站點B向站點A發(fā)送請求
請求帶站點Acookies;
不訪問站點A前端;
referer為站點B;
(3) CSRF攻擊的危害性?
利用用戶登錄態(tài)
用戶不知情
完成業(yè)務(wù)請求(盜取用戶資金、冒充用戶發(fā)帖背鍋)
造成蠕蟲攻擊

3.SQL注入
(1) 什么是SQL注入?
SQL注入是比較常見的網(wǎng)絡(luò)攻擊方式之一,它不是利用操作系統(tǒng)的BUG來實現(xiàn)攻擊,而是針對程序員編寫時的疏忽,通過SQL語句,實現(xiàn)無賬號登錄,甚至篡改數(shù)據(jù)庫。
(2) SQL注入原理?
尋找到SQL注入的位置;
判斷服務(wù)器類型和后臺數(shù)據(jù)庫類型;
針對不同的服務(wù)器和數(shù)據(jù)庫特點進(jìn)行SQL注入攻擊;
(3) 如何防御SQL注入?
檢查變量數(shù)據(jù)類型和格式;
過濾特殊符號;
綁定變量,使用預(yù)編譯語句;

4.XPath注入
(1) 什么是XPath注入?
XPath注入攻擊本質(zhì)上和SQL注入攻擊是類似的,都是輸入一些惡意的查詢等代碼字符串,從而對網(wǎng)站進(jìn)行攻擊。
XPath注入攻擊,是利用XPath 解析器的松散輸入和容錯特性,能夠在 URL、表單或其它信息上附帶惡意的XPath 查詢代碼,以獲得權(quán)限信息的訪問權(quán)并更改這些信息。
(2) XPath注入原理?
XPath注入攻擊主要是通過構(gòu)建特殊的輸入,這些輸入往往是XPath語法中的一些組合,這些輸入將作為參數(shù)傳入Web 應(yīng)用程序,通過執(zhí)行XPath查詢而執(zhí)行入侵者想要的操作。(3) 如何防御XPath注入?
數(shù)據(jù)提交到服務(wù)器上端,在服務(wù)端正式處理這批數(shù)據(jù)之前,對提交數(shù)據(jù)的合法性進(jìn)行驗證。
檢查提交的數(shù)據(jù)是否包含特殊字符,對特殊字符進(jìn)行編碼轉(zhuǎn)換或替換、刪除敏感字符或字符串。
對于系統(tǒng)出現(xiàn)的錯誤信息,以IE錯誤編碼信息替換,屏蔽系統(tǒng)本身的出錯信息。
參數(shù)化XPath查詢,將需要構(gòu)建的XPath查詢表達(dá)式,以變量的形式表示,變量不是可以執(zhí)行的腳本。
通過MD5、SSL等加密算法,對于數(shù)據(jù)敏感信息和在數(shù)據(jù)傳輸過程中加密,即使某些非法用戶通過非法手法獲取數(shù)據(jù)包,看到的也是加密后的信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容