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
最新文章
- [No000098]SVN学习笔记5-分支,合并,属性,补丁,锁,分支图
- Java多线程10:ThreadLocal的作用及使用
- Android TextView 高亮字体并添加点击事件
- unity下载文件二(http同步下载)
- PHP Mongodb 基本操作
- 2015 偶数求和 AC 杭电
- 集合运算符之全集、交集、补集【weber出品必属精品】
- Unreal Engine 4 创建Destructible Mesh(可破坏网格)
- jQuery+JSON+jPlayer实现QQ空间音乐查询
- Windows &; Linux服务器如何禁用ping总结
- tensorflow--交叉熵
- kafka问题集锦
- 极致21点开发DAY1
- ROS 双目标定
- linux 之 source命令:
- 第84讲:Scala中List和ListBuffer设计实现思考
- libgdx学习记录17——照相机Camera
- cratedb nodejs 试用
- nuget发布自已的程序集
- vi/sed等遵循的搜索正则语法