0x00 CVE-2017-12794(xss)
1、简介
Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。
使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务, Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
————————————————
https://blog.youkuaiyun.com/weixin_42250835/article/details/120946586
2、影响版本
1.11.5之前的版本。
3、搭建
4、复现
访问 http://ip:8000/create_user/?username=<script>alert('xss')</script>
再次
再次访问 http://ip:8000/create_user/?username=<script>alert('xss')</script>,触发xss异常
0x01 CVE-2018-14574(任意url跳转)
1、简介
服务端未对传入的跳转url变量进行检查和控制,可能导致可恶意构造任意一个恶意地址,诱导用户跳转到恶意网站。
由于是从可信的站点跳转出去的,用户会比较信任
2、影响版本
Django (<2.0.8)
3、搭建
4、复现
url后面加上想访问的网址就可以直接访问了
0x02 CVE-2019-14234(sql注入)
1、简介
Django是一款广为流行的开源web框架,由Python编写,许多网站和app都基于Django开发。
相比于Mysql,Postgresql支持的数据类型更加丰富,其对JSON格式数据的支持也让这个关系型数据库拥有了NoSQL的一些特点。
“原因是,Django-Admin中就支持用户控制queryset的查询键名.总的来说,如果你的应用使用了JSONField,且用户可以进入应用的Django-Admin后台,就可以进行SQL注入。同时,通过Postgresql的一些特性(如命令执行方法),即可getshell。”
2、影响版本
Django 主开发分支
Django 2.2.x < 2.2.4
Django 2.1.x < 2.1.11
Django 1.11.x < 1.11.23
3、搭建
4、复现
访问 ip:8000/admin/login/
输入账号 admin
, a123123123
构造 URL payload
在GET参数中构造 detail__a'b=123 提交,其中 detail 是模型 Collection 中的 JSONField
http://139.196.87.102:8000/admin/vuln/collection/?detail__a'b=123