Python代码审计中一些需要重点关注的项
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代码审计中一些需要重点关注的项的更多相关文章
- 【转载】Python编程中常用的12种基础知识总结
Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...
- Python编程中常用的12种基础知识总结
原地址:http://blog.jobbole.com/48541/ Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时 ...
- 【转载】路径双反斜杠!!!Python IDLE或Python shell中切换路径 切换目录os.chdir("C:\\python37\\2019pythonshel37\\diedai")
Python IDLE或shell中切换路径在Python自带的编辑器IDLE中或者python shell中不能使用cd命令,那么跳到目标路径呢.方法是使用os包下的相关函数实现路径切换功能. im ...
- 获取列表中的最大的N项和最小的N项
获取列表中的最大的N项和最小的N项 #!/sur/bin/env python # -*- coding:utf-8 -*- # author:zengsf #time:2018/10/31 impo ...
- 如何调用另一个python文件中的代码
模块的搜索路径 模块的搜索路径都放在了sys.path列表中,如果缺省的sys.path中没有含有自己的模块或包的路径,可以动态的加入(sys.path.apend)即可.下面是sys.path在Wi ...
- Python编程中 re正则表达式模块 介绍与使用教程
Python编程中 re正则表达式模块 介绍与使用教程 一.前言: 这篇文章是因为昨天写了一篇 shell script 的文章,在文章中俺大量调用多媒体素材与网址引用.这样就会有一个问题就是:随着俺 ...
- Python项目中如何优雅的import
Python项目中如何优雅的import 前言 之前有一篇关于Python编码规范的随笔, 但是写的比较杂乱, 因为提到了import语句, 在篇文章中, 我专门来讲Python项目中如何更好的imp ...
- 29、Python程序中的进程操作(multiprocess.process)
一.multiprocess模块 multiprocess不是一个模块而是python中一个操作.管理进程的包. 子模块分为四个部分: 创建进程部分 进程同步部分 进程池部分 进程之间数据共享 二.m ...
- 《python解释器源码剖析》第13章--python虚拟机中的类机制
13.0 序 这一章我们就来看看python中类是怎么实现的,我们知道C不是一个面向对象语言,而python却是一个面向对象的语言,那么在python的底层,是如何使用C来支持python实现面向对象 ...
随机推荐
- Http权威指南(cookie以及web认证机制)
其实对于cookie,想必大家都不陌生,cookie目前主要用于客户端的识别技术. 说到客户端识别技术,就不得不说一个登录态的问题了.登录态顾名思义,用于验证用户的登录与否. 1.登录态 对于PC端网 ...
- Java基础拾遗(二)
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76358523冷血之心的博客) 马上就要秋招了,新的一轮笔试面试马上 ...
- 使用stringstream类
当需要格式化int类型为字符串时,可以使用这个类, 需要包含这个文件头: #include <sstream> 然后这样使用: //打开保存进度的RPG文件. std::stringstr ...
- 创建你的第一个Flutter应用程序
前言 Flutter,Google推出的跨平台开发框架.就在前几天,Flutter的首个发布预览版(Release Preview 1)正式发布! 即将迎来Flutter 正式版(1.0).本篇将带你 ...
- 如何预编译ASP.Net程序
打开Developer Command Prompt,执行命令 aspnet_compiler -v \Target -p 源文件夹地址 -f 目标文件夹地址
- Android:LinearLayout布局中Layout_weight的深刻理解
首先看一下LinearLayout布局中Layout_weight属性的作用:它是用来分配属于空间的一个属性,你可以设置他的权重.很多人不知道剩余空间是个什么概念,下面我先来说说剩余空间. 看下面代码 ...
- spring自定义标签学习
看到几篇很全的自定义标签,从定义到使用,写的很好. 这里我也是在那里学习的,对学习spring源码也很有帮助. 贴出来与大家共享. http://sammor.iteye.com/blog/11009 ...
- hdfs会出现的一些问题
实训的第一篇博客献给坑了我的hdfs…… 由于电脑的原因,突然花屏,虚拟机来不及挂起.之后发现50070端口进不去,查看jps进程发现没有namenode 先用stop-all.sh命令再start还 ...
- pat甲级 1152 Google Recruitment (20 分)
In July 2004, Google posted on a giant billboard along Highway 101 in Silicon Valley (shown in the p ...
- 《DSP using MATLAB》示例Example7.8
窗函数的设计思想就是选择一个理想的频率选择滤波器(通常其脉冲响应函数是 非因果.无限长的),然后截断(取窗)这个无限长脉冲响应,得到一个线性相位.因果的 FIR滤波器.频率域示意图如下: 我们的目的: ...
