加入收藏 | 设为首页 | 会员中心 | 我要投稿 四平站长网 (https://www.0434zz.com.cn/)- 云服务器、对象存储、基础存储、视频终端、数据应用!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

Python代码审计实战案例总结

发布时间:2021-03-07 16:01:34 所属栏目:外闻 来源:互联网
导读:一个简单的HTTP服务器,目前在Python2中可以正常运行。通过urllib.splitquery获取GET请求的参数,uri_c 里面为请求参数的值。用值传递到SQL语句中拼接,从而产生注入问题。这是比较简单的一种,正常情况下调用链可能会比较长,长短取决于平台的设计架构。 2.

一个简单的HTTP服务器,目前在Python2中可以正常运行。通过urllib.splitquery获取GET请求的参数,uri_c 里面为请求参数的值。用值传递到SQL语句中拼接,从而产生注入问题。这是比较简单的一种,正常情况下调用链可能会比较长,长短取决于平台的设计架构。

2. ORM注入

(1) sqlalchemy ORM注入(CNVD-2019-17301)

考虑到的理解上比较容易,用模块进行举例,并不涉及到框架。ORM注入是SQL注入的一种特殊情况,ORM模块将SQL语句进行模板化,所以找SQL语句字符串的办法不好用了。那么应该怎么办?根据模块来找寻执行方法,如果模块存在问题和未妥善过滤或转义、存在可控变量则可能会产生问题。如何去发现和查找Python ORM模块,展现朋友们搜索技能的时候到了,不再老生常谈。下面进入案例:




 

是使用sqlalchemy的ORM注入,它存在任意执行SQL语句的接口。道理上讲这个是功能,实际情况大多数程序员都会认为ORM是能够防御SQL注入,这个可能会成为漏洞。通过转义可以更好的解决问题,但是官方可能并不重视。另外还有sqlalchemy几个问题利用order_by注入、利用”limit”和”offset”关键词向”select()”函数传递注入等等,方法一样利用模块过滤不严,暂不多论。

(2) Django JSON SQL注入(CVE-2019-14234)

咱们继续看来 Django JSON SQL注入,关于这个漏洞已经有前人分析过了。这个分析有些难度需要咱们了解Django和PostgreSQL,如果感觉吃力不妨先去学习一番。了解在PostgreSQL之中关于JSON数据的查询主要使用ArrayField、JSONField、HStoreField,通过Django如何进行查询PostgreSQL,Json.objects.filter()和QuerySet.filter()实现,准备工作就绪。

查询使用方法如下:

(编辑:四平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读