開源資安工具 – 伺服器請求模糊測試 – SSRFmap

伺服器端請求偽造或SSRF是一個漏洞,攻擊者在其中迫使伺服器代其執行請求。

什麼是SSRF?

伺服器端請求偽造(也稱為SSRF)是一個網路安全漏洞,攻擊者可以利用該漏洞誘使伺服器端應用程式向攻擊者選擇的任意網域發出HTTP請求。

在典型的SSRF攻擊中,攻擊者可能導致伺服器建立與組織基礎結構內僅內部服務的連線。在其他情況下,它們可能能夠強制服務器連接到任意外部系統,從而可能洩漏敏感數據(例如授權憑證)。

簡單來說,SSRF是Web應用程序中的漏洞,攻擊者可以通過該漏洞通過服務器發出進一步的HTTP請求 。攻擊者可以利用此漏洞與服務器網絡上通常受防火牆保護的任何內部服務進行溝通。

怎麼產生漏洞?

造成漏洞的主要原因是(通常是)盲目地信任用戶的輸入。對於SSRF 漏洞,將要求用戶輸入URL(或IP地址)。Web應用程序將使用它來發出 請求。如果未正確檢查或過濾輸入,就會出現SSRF。

from flask import Flask, request,  render_template, redirect
import requests

app = Flask(__name__)

@app.route("/")
def index():
    url = request.args.get("id")
    r = requests.head(url)
    return render_template("index.html", result = r.content)

if __name__ == "__main__":
      app.run(host = '0.0.0.0')

很明顯地說,我把用戶傳來的網址儲存成id後,直接顯示在index.html,而且沒有對url做過濾,就有可能注入非正常連結的東西進去了~

工具利用

SSRFmap

SSRF通常用於利用對其他服務的操作,此框架旨在輕鬆查找和利用這些服務。SSRFmap將Burp請求文件作為輸入和fuzz的參數。

https://github.com/swisskyrepo/SSRFmap

操作步驟

$ git clone https://github.com/swisskyrepo/SSRFmap
$ cd SSRFmap/
$ pip3 install -r requirements.txt
$ python3 ssrfmap.py

  usage: ssrfmap.py [-h] [-r REQFILE] [-p PARAM] [-m MODULES] [-l HANDLER]
                    [-v [VERBOSE]] [--lhost LHOST] [--lport LPORT]
                    [--uagent USERAGENT] [--ssl [SSL]] [--level [LEVEL]]

  optional arguments:
    -h, --help          show this help message and exit
    -r REQFILE          SSRF Request file
    -p PARAM            SSRF Parameter to target
    -m MODULES          SSRF Modules to enable
    -l HANDLER          Start an handler for a reverse shell
    -v [VERBOSE]        Enable verbosity
    --lhost LHOST       LHOST reverse shell
    --lport LPORT       LPORT reverse shell
    --uagent USERAGENT  User Agent to use
    --ssl [SSL]         Use HTTPS without verification
    --level [LEVEL]     Level of test to perform (1-5, default: 1)

他有很多模組可以使用

NameDescription
fastcgiFastCGI RCE
redisRedis RCE
githubGithub Enterprise RCE < 2.8.7
zabbixZabbix RCE
mysqlMySQL Command execution
dockerDocker Infoleaks via API
smtpSMTP send mail
portscanScan top 8000 ports for the host
networkscanHTTP Ping sweep over the network
readfilesRead files such as /etc/passwd
alibabaRead files from the provider (e.g: meta-data, user-data)
awsRead files from the provider (e.g: meta-data, user-data)
gceRead files from the provider (e.g: meta-data, user-data)
digitaloceanRead files from the provider (e.g: meta-data, user-data)
socksproxySOCKS4 Proxy
smbhashForce an SMB authentication via a UNC Path
tomcatBruteforce attack against Tomcat Manager
customSend custom data to a listening service, e.g: netcat
memcacheStore data inside the memcache instance

練習網站

https://github.com/m6a-UdS/ssrf-lab

更詳細的說明資源:

https://ithelp.ithome.com.tw/articles/10242449

https://hackmd.io/@Lhaihai/H1B8PJ9hX

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

sixteen − 13 =

Back To Top
error: Content is protected !!