# 2020 程安 Web筆記3 (SSRF. 反序列化) ###### tags: `程式安全` ## SSRF(Server side request forgery) - 攻擊者在無須獲得系統權限的情況下,利用Server端主動發起請求,已獲得特定資源 > 請求的目標通常是client無法碰到的內網資源 ### 發生場景 - 各種user給網址,server再去抓網址的狀況 (ex.上傳圖片網址, 連結預覽, etc) ### 如何判別有無SSRF - 會回傳user給的網址的內容 - 自己架一個server,給目標server自己server的IP,看自己server的log - 但目標server可能會擋對外的http - 看目標server是否有進行DNS query - 因為比起http,通常比較不會擋DNS ### 攻擊甚麼 - 可以讀本地檔案 - `file:///etc/passwd` - `file://127.0.0.1/etc/passwd` - Python: - 較舊的版本 `local_file:///etc/passwd` - Java: - 可以列目錄 `file:///etc/` `netdoc:///etc/` - php: `php://filter...` `php://fd` - 內部web service - `http(s)://` : 只能送GET - `gopher://` : 可以構造任意TCP封包 - http get request  ```python gopher://127.0.0.1:80/_GET%2520/%2520HTTP/1.1%250d%250aHOST:127.0.0.1%250d%250a%250d%250a ``` - `%25 = %` : 因為總共會經過兩次url decode | input | %0d%0a | %250d%250a | | ------------ | ------ | ---------- | | browser | \r\n | %0d%0a | | server(curl) | | \r\n | | | (X) | (0) | ## 反序列化(Deserialization)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up