Web Security
HTTP
HTTP status code
- 2xx 一切正常
 - 3xx 重新導向
 - 4xx 客戶端錯誤
 - 5xx 伺服器錯誤
 
Web Attack
- Frontend 瀏覽器
- XSS
 - CSS injection
 - prototype pollution
 - Dom Clobbering
 
 - Backend
- LFI
 - Command injection
 - SQL injection
 - Serializtion
 - SSRF
 - SSTI
 
 - https://github.com/w181496/Web-CTF-Cheatsheet (攻擊手法)
 
Cookie
用途
紀錄使用者資訊在瀏覽器內,紀錄不同網站造訪的cookie,用途是可以記錄使用者資訊,下次造訪會記錄你之前造訪的狀態,透過Name和value的參數紀錄
Session
在後端會有一個亂碼叫做session id,對應到使用者的Data,這些使用者Data會被儲存到server database,前端的cookie會設置session id,發送http 請求時後端會去對照cookie的session id,從Database取得使用者資訊,這種機制讓駭客無法去冒充他人身分
Recon
檢查四網站伺服器類型
- 從 Error message 觀察後端與版本
 - webanalyzer
 
INFO leak
robots.txt
告訴爬蟲哪些路徑能爬,哪些不行
有可能會洩漏敏感路徑!
- ex. 管理後臺、備份檔路徑
 
Git Leak
版本控制系統
可還原網站原始碼
google hacking

註:https://www.exploit-db.com/google-hacking-database
Web Sell
Web 兩種型態
File-base:將檔案映射到檔案路徑下
route base:定義路由,會有對應的function,並且到路由的路徑時就會運行function

Path Traversal
在一個路徑下有一個?file=xx.xx的檔案,這時候可以透過直覺透過../../../去道不同的路徑
LFI (Local File Inclution)
- 一個php的檔案被include,但是因為重要資運被註解了,所以被parse之後就消失了,透過php filter chain 創造不同的編碼方式,像是將php編碼成base64 code讓檔案不會被parse
使用方式:php://filter/read=string.rot13|covert.base64-encode/resource=
string.rot13|covert.base64-encode(編碼方式透過|pipeline讓字串用不同的方式編碼,所以可以透過編碼的方式構造出一個RCE的code)
參考資料: - https://github.com/synacktiv/php_filter_chain_generator/blob/main/php_filter_chain_generator.py
 - https://github.com/wupco/PHP_INCLUDE_TO_SHELL_CHAR_DICT
 
Injection
- Code Injection
 - Command Injection
 - Argument Injection
 - SQL Injection
 - NoSQL Injection
 - Server side template Injection(SSTI)
 - CRLF Injection
 - Css Injection
 
code Injection
Augment Injection
Web Reverse
Webhook reference
SQL injection



SQL injection
- Stacked:用分號隔開各種句子
 - Union:前面的輸出和後面的輸出連在一起
 - Time:透過Sleep來判斷條件
 - Boolean:透過布林直結果來判斷條件
 - Error Based:透過錯誤訊息來取得資料
 - Out of Band:讀檔、寫檔
reference:https://github.com/w181496/Web-CTF-Cheatsheet?tab=readme-ov-file#php-%E5%85%B6%E4%BB%96%E7%89%B9%E6%80%A7
SQL 與 NoSQL(Not Only SQL)
比較:NoSQL不需要提定義schema節
 
Blind Base:Blind-Base 的核心在於利用與法規則來獲得部分答案的正確性,從而迭帶出答案