溫馨提示×

溫馨提示×

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

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

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

發(fā)布時間:2021-12-18 18:29:11 來源:億速云 閱讀:237 作者:柒染 欄目:安全技術(shù)

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、CVE-2020-7471介紹

2020年2月3日,Django 官方發(fā)布安全通告公布了一個通過StringAgg(分隔符)實現(xiàn)利用的潛在SQL注入漏洞(CVE-2020-7471)。攻擊者可通過構(gòu)造分隔符傳遞給聚合函數(shù)contrib.postgres.aggregates.StringAgg,從而繞過轉(zhuǎn)義符號(\)并注入惡意SQL語句。

受影響版本:

·Django 1.11.x < 1.11.28

·Django 2.2.x < 2.2.10

·Django 3.0.x < 3.0.3

不受影響產(chǎn)品版本:

·Django 1.11.28

·Django 2.2.10

·Django 3.0.3

二、漏洞復現(xiàn)

1、kali下安裝受影響的django版本 pip3 install Django==3.0.2

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

2、安裝postgres 數(shù)據(jù)庫

apt-get install postgresql-11

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

3、 創(chuàng)建測試數(shù)據(jù)庫

/etc/init.d/postgresql start 開啟數(shù)據(jù)庫

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

Postgresql 已啟動

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

連接數(shù)據(jù)庫,修改密碼為123456,并建立數(shù)據(jù)庫test

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

4、下載poc:

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

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

5、修改/root/CVE-2020-7471/sqlvul_project/settings.py

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

6、初始化測試數(shù)據(jù)庫test中的表

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

7、查看數(shù)據(jù)庫是沒數(shù)據(jù)的

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

8、運行poc

python3 CVE-2020-7471.py

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

9、再次查看數(shù)據(jù)庫,數(shù)據(jù)插入成功

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

三、POC淺析

怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析

initdb函數(shù):給管理器添加初始測試數(shù)據(jù)

query函數(shù):進行模糊測試,找出當delimiter 的值為哪些字符時,會讓程序運行出現(xiàn)錯誤(即使用哪些字符可能會干擾SQL語句的執(zhí)行(將delimiter 輸入的字符帶入了SQL語句,破壞原有語句))

query_with_evil()函數(shù):進行注入點證明測試時,payload前后兩個不同的賦值,是為了得到兩個不同的結(jié)果,前一個使用正確的分隔符-,后一個是使用同樣的分隔符-,但是后面帶有SQL語句:

')AS"mydefinedname"FROM"vul_app_info"GROUPBY"vul_app_info"."gender" LIMIT 1 OFFSET 1 –

數(shù)據(jù)庫進行查詢時,使得整個查詢語句變?yōu)榱耍?/p>

SELECT"vul_app_info"."gender",STRING_AGG("vul_app_info"."name",'-') AS"mydefinedname"FROM"vul_app_info"GROUPBY"vul_app_info"."gender"LIMIT 1 OFFSET 1 –

這里的payload =‘-\’) AS … LIMIT 1 OFFSET 1 –‘中的\’,反斜杠的作用只是在payload字符串賦值時轉(zhuǎn)義單引號,payload中的-’,使得STRING_AGG(“vul_app_info”.“name”, ‘-’)右括號閉合了,導致了后面的SQL語句的執(zhí)行。

看完上述內(nèi)容,你們掌握怎么進行CVE-2020-7471漏洞復現(xiàn)及淺析的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

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

AI