您好,登錄后才能下訂單哦!
怎樣分析CVE-2020-7471 Django sql注入漏洞復現,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Django 是一個由 Python 編寫的一個開放源代碼的 Web 應用框架。
使用 Django,只要很少的代碼,Python 的程序開發人員就可以輕松地完成一個正式網站所需要的大部分內容,并進一步開發出全功能的 Web 服務 Django 本身基于 MVC 模型,即 Model(模型)+ View(視圖)+ Controller(控制器)設計模式,MVC 模式使后續對程序的修改和擴展簡化,并且使程序某一部分的重復利用成為可能。
攻擊者可通過構造分隔符傳遞給聚合函數contrib.postgres.aggregates.StringAgg,從而繞過轉義符號(\)并注入惡意SQL語句。
Django 1.11.x < 1.11.28
Django 2.2.x < 2.2.10
Django 3.0.x < 3.0.3
Django 主開發分支
不受影響范圍:
Django 1.11.28
Django 2.2.10
Django 3.0.3
1.使用kali搭建django 漏洞版本使用版本為3.0.2
pip3 install django==3.0.2
2. 安裝postgres 數據庫,由于kali自帶了postgres數據庫,這里直接啟動
systemctl start postgresql
3.使用命令sudo -i -u postgres進入postgres賬戶,然后輸入psql進入數據庫,并創建測試數據庫test。CREATE DATABASE test;
4.修改數據庫密碼,ALTER USER postgres WITH PASSWORD 'root';
1.這里使用poc來進行實驗,下載poc到本地
git clone https://github.com/Saferman/CVE-2020-7471.git
2.然后進入到CVE-2020-7471/sqlvul_projects/settings.py,修改數據庫配置,如果之前安裝postgres數據庫使用的默認配置(包括密碼),這里就不需修改任何任何配置
3. 修改完成后回到上層,然后利用CVE中的代碼初始化測試數據庫test中的表
python3 manage.py migrate python3 manage.py makemigrations vul_app python3 manage.py migrate vul_app
運行沒有改變數據沒關系,初始化環境完成
4.進test數據庫查看數據表
\c test //進入test數據庫 \d 查看全部表
查看vul_app_info表的信息
select * from vul_app_info;
5.沒有插入數據沒沒關系,使用vim 查看CVE-2020-7471.py里內容
vim CVE-2020-7471.py
6.執行poc向數據庫插入數據
python3 CVE-2020-7471.py
可以看到POC里面的數據寫入到數據庫中,注入成功
升級到Django最新版3.0.3
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。