這是一篇長期更新的隨筆,如有更好的面試經驗 / 題目分享,歡迎聯絡我~
Web安全方面
該部分主要收集關於Web安全方面的面試經驗,主要是TOP10,外網打點,Web資訊收集等。
推薦配合靶場練習更容易理解。
1. SQL隱碼攻擊的原理是什麼?
SQL隱碼攻擊主要是由於意料之外的拼接和解析SQL語句造成。
當服務端使用語句拼接的方式構建SQL語句並帶入後臺查詢時,
如果使用者構造惡意的SQL語句並與服務端SQL語句拼接,
就會造成SQL隱碼攻擊。
2. SQL隱碼攻擊繞過WAF的方式有哪些?
包括但不限於:編碼偽裝(如URL編碼,Unicode編碼),跳脫字元偽裝,大小寫偽裝,雙寫偽裝,內聯註釋偽裝
3. 如何利用SQL隱碼攻擊寫入Shell?
利用into outfile函式即可寫入Shell,或利用sqlmap的--os-shell功能。
4. 如何防止SQL隱碼攻擊?
使用預編譯語句或者引數化查詢,或最小化資料庫許可權,安全配置資料庫引數,使用WAF檢測等。
5. SQL隱碼攻擊除了可以在網頁構造注入點,還有哪些地方可以成為注入點?
還可以在HTTP請求的頭資訊進行SQL隱碼攻擊,包括但不限於:User-Agent,Referer,Cookie,X-Forwarded-For,Host等。
6. SQL隱碼攻擊的報錯函式有哪些?請舉例。
updatexml(),extractvalue(),floor(),ST_LatFromGeoHash(),ST_LongFromGeoHash(),
GTID_SUBSET(),GTID_SUBTRACT(),ST_Pointfromgeohash()
(一般只用到前三個)
7. 關於SQL盲注,你能簡單說一下嗎?
好的,盲注是在有回顯SQL隱碼攻擊的基礎上,依然將SQL語句代入執行,但並無直觀的回顯,這種型別的SQL隱碼攻擊叫做SQL盲注。
盲注大致分兩種型別:布林盲注 / 時間盲注
布林盲注是有且只有True / False 兩種情況的直觀回顯。
時間盲注是並無任何直觀回顯,我們需要利用if(),sleep()等函式構造時間差來使回顯直觀化。
8. sqlmap你有使用過嗎?簡單說一下一個sqlmap攻擊流程?
有用過,sqlmap主要是先用--dbs探測能否注入出來資料庫,然後再用--tables來注入出來資料表,
隨後--columns注入出列(欄位),最後--dump注入出資料。
同時也可以--os-shell直接寫入Shell。
9. MySQL5.0以下和5.0以上注入有什麼區別?
5.0以下沒有information_schema這個內建表,只能利用類似盲注的方式暴力跑庫。
5.0以上可以用information_schema來直觀注入。
10. SQL隱碼攻擊如果空格被過濾了,那麼應該怎麼替代空格?
%0a,%0b,%a0,/**/等。
11. XSS的原理是什麼?
XSS全稱為跨站指令碼攻擊,其漏洞主要是惡意攻擊者在Web頁面裡插入惡意HTML語句,
當使用者瀏覽該頁面時,巢狀在Web頁面中的惡意HTML語句被觸發,從而達到惡意目的。
12. XSS的幾種型別可以說一下嗎?
好的,XSS一共有三種型別,分別是:反射型,儲存型,DOM型。
反射型XSS一般透過使用者的不自覺輸入惡意引數觸發,一般在URL上構造引數,直接反射到頁面上。
儲存型XSS直接將惡意指令碼語句儲存在目標伺服器中,當其它使用者訪問該網頁時不附帶任何引數即可直接觸發。
DOM型XSS是透過客戶端指令碼來修改DOM的方式實現的,不涉及伺服器端的指令碼處理。
13. XSS攻擊能用來做什麼?
XSS攻擊可以利用的目的包括但不限於:竊取使用者Cookie,會話劫持,釣魚攻擊,篡改網頁等。
14. 如果你被XSS攻擊了,你該怎麼最快速度判斷你受的是何種XSS攻擊?
這個需要具體情況具體分析:
反射型XSS的判斷方式是:再次傳送一遍帶有XSS程式碼的請求,只能在第一次返回的資料包中發現XSS程式碼。
儲存型XSS的判斷方式是:再次傳送一遍帶有XSS程式碼的請求,返回包裡還存在XSS程式碼。
DOM型XSS的判斷方式是:再次傳送一遍帶有XSS程式碼的請求,你在返回包中看不到XSS程式碼。
15. XSS繞過方式簡單說一下?
包括但不限於:編碼繞過(例如URL編碼,HTML實體編碼,多次編碼),雙寫繞過,無意義字元繞過,事件屬性繞過等。
16. 請簡單說一下CSRF的原理是什麼?
好的,CSRF全稱為跨站請求偽造,原理是使用者的身份被攻擊者惡意盜用,以使用者的身份對伺服器傳送惡意請求,
對於伺服器來說認為這個請求是完全合法合規的,於是完成了攻擊者的意圖。
17. CSRF的危害有哪些呢?
CSRF的具體使用場景有很多,包括但不限於:
在不經意見接管賬戶,
傳播CSRF蠕蟲,
利用CSRF獲取敏感資訊等。
18. 關於CSRF漏洞的防護思路,請簡述一下。
CSRF的防禦方式包括但不限於:
儘量使用POST傳參,這樣能規避引數直接在URL中被傳遞出去。
利用Token進行校驗。
19. SSRF漏洞是什麼?
SSRF是伺服器端請求偽造,與CSRF相似,但利用方式從客戶機變成了伺服器。透過伺服器對外部系統進行意外的請求。
20. SSRF漏洞應該怎麼事先防禦?
SSRF的防護方式包括但不限於:
輸入驗證(即常見的黑白名單),
網路訪問控制(ACL),
身份驗證和授權(如請求許可權校驗,API金鑰和OAuth進行身份校驗)等。
長期更新,未完待續......