设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 安全 > 正文

Python代码审计实战案例总结之SQL和ORM注入(3)

发布时间:2019-12-18 02:16 所属栏目:53 来源:站长网
导读:咱们继续看来 Django JSON SQL注入,关于这个漏洞已经有前人分析过了。这个分析有些难度需要咱们了解Django和PostgreSQL,如果感觉吃力不妨先去学习一番。了解在PostgreSQL之中关于JSON数据的查询主要使用ArrayFiel

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

查询使用方法如下:

# 查询方法 

# 查询data数据下名称为test的内容为'user'的整个字段 

Json.objects.filter(data__test='user') 

or 

Json.objects.filter(**{"data__test":'user'}) 

通过补丁判断实现方法使用了 self.key_name ,QuerySet.filter()的调用和self.key_name传递有关。

Python代码审计实战案例总结之SQL和ORM注入

紧接着发现类 KeyTransformFactory 调用了 KeyTransform 传入了 self.key_name ,后续是字符串拼接。这里不多详细阐述感兴趣的朋友跟下流程。

class KeyTextTransform(KeyTransform): 

    operator = '->>' 

    ... 

    # 字符串拼接 

    (%s %s %s)" % (lhs, self.operator, lookup) 

结合注入的知识进行实施测试,结果如下。

# 使用注入 

# 拼接补全SQL语法 

Json.objects.filter(**{"""data__breed'='"a"') OR 11=1 OR('d""":'x',}) 

总结

本次总结Python的SQL注入和ORM注入的挖掘方法和相关案例,SQL注入方面没有找到对应的实际案例,咱们编写简单的案例作为参考。ORM注入为两个案例,分别是关于模块和框架。综合作为实战挖掘的参考,个人之力,恐有疏漏,盼斧正。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读