溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)

發(fā)布時(shí)間:2021-12-08 16:18:24 來(lái)源:億速云 閱讀:214 作者:柒染 欄目:安全技術(shù)

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn),很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

0x00簡(jiǎn)介

Django 是一個(gè)由 Python 編寫(xiě)的一個(gè)開(kāi)放源代碼的 Web 應(yīng)用框架。

使用 Django,只要很少的代碼,Python 的程序開(kāi)發(fā)人員就可以輕松地完成一個(gè)正式網(wǎng)站所需要的大部分內(nèi)容,并進(jìn)一步開(kāi)發(fā)出全功能的 Web 服務(wù) Django 本身基于 MVC 模型,即 Model(模型)+ View(視圖)+ Controller(控制器)設(shè)計(jì)模式,MVC 模式使后續(xù)對(duì)程序的修改和擴(kuò)展簡(jiǎn)化,并且使程序某一部分的重復(fù)利用成為可能。

0x01漏洞概述

攻擊者可通過(guò)構(gòu)造分隔符傳遞給聚合函數(shù)contrib.postgres.aggregates.StringAgg,從而繞過(guò)轉(zhuǎn)義符號(hào)(\)并注入惡意SQL語(yǔ)句。

0x02影響范圍

Django 1.11.x < 1.11.28

Django 2.2.x < 2.2.10

Django 3.0.x < 3.0.3

Django 主開(kāi)發(fā)分支

不受影響范圍:

Django 1.11.28

Django 2.2.10

Django 3.0.3

0x03環(huán)境搭建

1.使用kali搭建django 漏洞版本使用版本為3.0.2

pip3 install django==3.0.2

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)

2. 安裝postgres 數(shù)據(jù)庫(kù),由于kali自帶了postgres數(shù)據(jù)庫(kù),這里直接啟動(dòng)

systemctl start postgresql

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)

3.使用命令sudo -i -u postgres進(jìn)入postgres賬戶(hù),然后輸入psql進(jìn)入數(shù)據(jù)庫(kù),并創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)test。CREATE DATABASE test;

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)

4.修改數(shù)據(jù)庫(kù)密碼,ALTER USER postgres WITH PASSWORD 'root';

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)

0x04漏洞復(fù)現(xiàn)

1.這里使用poc來(lái)進(jìn)行實(shí)驗(yàn),下載poc到本地

git clone https://github.com/Saferman/CVE-2020-7471.git

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)

2.然后進(jìn)入到CVE-2020-7471/sqlvul_projects/settings.py,修改數(shù)據(jù)庫(kù)配置,如果之前安裝postgres數(shù)據(jù)庫(kù)使用的默認(rèn)配置(包括密碼),這里就不需修改任何任何配置

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)

3. 修改完成后回到上層,然后利用CVE中的代碼初始化測(cè)試數(shù)據(jù)庫(kù)test中的表

python3 manage.py migrate
python3 manage.py makemigrations vul_app
python3 manage.py migrate vul_app

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)

運(yùn)行沒(méi)有改變數(shù)據(jù)沒(méi)關(guān)系,初始化環(huán)境完成

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)

4.進(jìn)test數(shù)據(jù)庫(kù)查看數(shù)據(jù)表

\c test //進(jìn)入test數(shù)據(jù)庫(kù)
\d 查看全部表

查看vul_app_info表的信息

select * from vul_app_info;

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)

5.沒(méi)有插入數(shù)據(jù)沒(méi)沒(méi)關(guān)系,使用vim 查看CVE-2020-7471.py里內(nèi)容

vim CVE-2020-7471.py

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)

6.執(zhí)行poc向數(shù)據(jù)庫(kù)插入數(shù)據(jù)

python3 CVE-2020-7471.py

怎樣分析CVE-2020-7471 Django sql注入漏洞復(fù)現(xiàn)可以看到POC里面的數(shù)據(jù)寫(xiě)入到數(shù)據(jù)庫(kù)中,注入成功

0x05修復(fù)方式

升級(jí)到Django最新版3.0.3

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI