SQL注入:

如果是常规没有进行预编译,或者直接使用原生的进行拼凑,那么在view的时候就需要多去观察了

【PythonSQL预编译】https://www.cnblogs.com/sevck/p/6733702.html

如果项目使用例如Django,虽然Django自己封装了操作数据库的函数,但是Django也支持raw:

def index(request, *args, **kwargs):
for e in Person.objects.raw('select * from FIRST_Person WHERE first_name = ' + '"' + request.GET.get('user') + '"'):
print(e.last_name)
return render(request, 'home.html')

命令注入:

os,commands,subprocess,multiprocessing,pty,Cpickle/pickle,PyYAML

如果使用了这些需要多去关注和跟踪相关的信息。

例如:

os.system("curl %s",(request.get("url")))

那么攻击者也可以进行拼凑,例如 http://a.com|id等等多种方式去绕过,姿势有$IFS\;\#,等等,

pickle可进行序列化和反序列化操作:

# Create your tests here.
import os
import pickle # Exploit that we want the target to unpickle
class Exploit(object):
def __reduce__(self):
return (os.system, ('ls',)) shellcode = pickle.dumps(Exploit()) pickle.loads(shellcode)

在pickle中,查了网上的,发现关于解决办法,如何修复一直没有人提。

昨天和Phithon交流的时候,总结如下:

https://docs.python.org/3/library/pickle.html?highlight=pickle#restricting-globals

pickle默认也支持做白名单,用户自定义find_class方法即可。

YAML注入:

可参考:

http://blog.knownsec.com/2016/03/pyyaml-tags-parse-to-command-execution/

参考:

【linux下不用空格执行带参数的5种姿势】https://www.cnblogs.com/sevck/p/6072721.html

XSS和其他平台类似,再次不再累赘,主要介绍python特点中需要关注的点.

CSRF:

Django,默认自带且支持防止CSRF,如果取消需要增加修饰符

越权/逻辑/水平漏洞:

python开发很多可能没有特别的关注这方面,在做黑盒或者白盒审计的时候需要多去关注此方面

------------------------------

自动化检测:

笔者在甲方安全实践过程中,开发了代码审计系统,并且上线检测,发现了一些高危、甚至严重的安全漏洞。

在做跟踪安全问题总结了如上,需要关注的安全点;提供pythoner、secer参考:

[甲方安全建设之路]自动化代码审计系统 https://www.cnblogs.com/sevck/p/10432981.html

360的安全客文章也总结的不错,可以参考:

https://www.anquanke.com/post/id/87007

Python代码审计中一些需要重点关注的项的更多相关文章

  1. 【转载】Python编程中常用的12种基础知识总结

    Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  2. Python编程中常用的12种基础知识总结

    原地址:http://blog.jobbole.com/48541/ Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时 ...

  3. 【转载】路径双反斜杠!!!Python IDLE或Python shell中切换路径 切换目录os.chdir("C:\\python37\\2019pythonshel37\\diedai")

    Python IDLE或shell中切换路径在Python自带的编辑器IDLE中或者python shell中不能使用cd命令,那么跳到目标路径呢.方法是使用os包下的相关函数实现路径切换功能. im ...

  4. 获取列表中的最大的N项和最小的N项

    获取列表中的最大的N项和最小的N项 #!/sur/bin/env python # -*- coding:utf-8 -*- # author:zengsf #time:2018/10/31 impo ...

  5. 如何调用另一个python文件中的代码

    模块的搜索路径 模块的搜索路径都放在了sys.path列表中,如果缺省的sys.path中没有含有自己的模块或包的路径,可以动态的加入(sys.path.apend)即可.下面是sys.path在Wi ...

  6. Python编程中 re正则表达式模块 介绍与使用教程

    Python编程中 re正则表达式模块 介绍与使用教程 一.前言: 这篇文章是因为昨天写了一篇 shell script 的文章,在文章中俺大量调用多媒体素材与网址引用.这样就会有一个问题就是:随着俺 ...

  7. Python项目中如何优雅的import

    Python项目中如何优雅的import 前言 之前有一篇关于Python编码规范的随笔, 但是写的比较杂乱, 因为提到了import语句, 在篇文章中, 我专门来讲Python项目中如何更好的imp ...

  8. 29、Python程序中的进程操作(multiprocess.process)

    一.multiprocess模块 multiprocess不是一个模块而是python中一个操作.管理进程的包. 子模块分为四个部分: 创建进程部分 进程同步部分 进程池部分 进程之间数据共享 二.m ...

  9. 《python解释器源码剖析》第13章--python虚拟机中的类机制

    13.0 序 这一章我们就来看看python中类是怎么实现的,我们知道C不是一个面向对象语言,而python却是一个面向对象的语言,那么在python的底层,是如何使用C来支持python实现面向对象 ...

随机推荐

  1. (转)MapReduce Design Patterns(chapter 3 (part 2))(六)

    Top Ten Pattern Description Top ten模式跟前面的有很大的不同,跟输入数据大小无关,最终得到的记录数量是确定的.而在通用filtering中,输出的规模取决于输入数据. ...

  2. VERIFY DATABASE 正在异常终止。 (Microsoft SQL Server,错误: 3169)

    1.错误描述 标题: Microsoft SQL Server Management Studio ------------------------------ 备份介质验证失败: [文件: D:\S ...

  3. MySQL 存储过程,游标,临时表创建

    -- -------------------------------------------------------------------------------- -- Routine DDL - ...

  4. crm 03--->销售页面及逻辑

    基本思路 销售  ------->使用的是customer表来操作 有两个页面: 未成交的客户 公共客户页面  ---  什么属于?  --> 三天未跟进,及十五天内未成交 url    ...

  5. 在crontab中执行shell脚本的问题

    crontab中记录的编写比较简单,下面是一个示例: * * * /app/tpssapp/ftpsrc/tools/statTables/statTables.sh > /app/tpssap ...

  6. BZOJ4150 AMPPZ2014 The Staging 【线段树】*

    BZOJ4150 AMPPZ2014 The Staging Description 在舞台上有n个枪手,第i个枪手瞄准了第p[i]个枪手,将于第u[i]秒开枪.一个枪手如果成功开枪, 那么被瞄准的枪 ...

  7. Nchan 安装试用(openresty 同时支持)

    备注:        使用nginx最新的源码包(nginx-1.13.6),以及源码安装   1. 下载源码包(nginx+ Nchan) https://nginx.org/download/ng ...

  8. 模态对话框中的window.close关闭时会打开新页面

    在模态对话框的页面的<head></head>加上<base target="_self"> 就不会打开新页面了.

  9. [LeetCode系列]爬梯问题的递归解法转换为迭代解法

    有一个n阶的梯子, 你每次只能爬1阶或2阶, 请问共有多少种登顶的爬法?(正好爬完n阶, 不能多也不能少) 本题最优解是直接套用菲波那切数列即可(因为菲波那切数列的第n个元素正好等于第n-1个元素和第 ...

  10. [Oracle] CPU/PSU补丁安装详细教程

    Oracle CPU的全称是Critical Patch Update, Oracle对于其产品每个季度发行一次安全补丁包,通常是为了修复产品中的安全隐患,以下是对CPU/PSU补丁安装的具体操作步骤 ...