Open mylamour opened 6 years ago
因为参与到SDLChina的文档编写,恰好公司内的编程语言采用的是Python,故整理之。此文亦可在sdlchina官网看见。
SDLChina
Python
本身要注意的有,一些危险函数,危险模块的调用,主要是系统调用。这个如果调用一定要对输入输出做好过滤,以下是代码中各种导致进行系统调用的方式。尽量避免。
exec('import os ;os.system("ls")')
eval('__import__("os").system("ls")')
f'''{__import__('os').system('ls')}'''
[].__class__.__mro__[-1].__subclasses__()
_builtin__.open('/etc/passwd')
system('ls')
[].__class__.__base__.__subclasses__()[59]()._module.linecache.__dict__['o'+'s'].__dict__['sy'+'stem']('l'+'s') # only python2
[].__class__.__base__.__subclasses__()[59](linecache.getlines, '/etc/password')
[].__class__.__base__.__subclasses__()[59](exec, '("__import__("os").system("ls")")')
subprocess.Popen('ls')
os.popen('ls')
importlib
builtins.open('/etc/passwd')
linecache.getlines('/etc/passwd')
__import
import
import sys sys.modules['NB']='/Users/mour/anaconda3/lib/python3.6/os.py' import NB
对应Web编程中安全概念在python web框架中的实现。url跳转,目录遍历,任意文件读取也需要考虑在内。针对不同的框架也需要。
可参考phithon的博客,有较多相关资料。
安装使用方式较为简单,所以不做介绍。
因为参与到
SDLChina
的文档编写,恰好公司内的编程语言采用的是Python
,故整理之。此文亦可在sdlchina官网看见。python语言安全
本身要注意的有,一些危险函数,危险模块的调用,主要是系统调用。这个如果调用一定要对输入输出做好过滤,以下是代码中各种导致进行系统调用的方式。尽量避免。
type 1: keywords
exec('import os ;os.system("ls")')
eval('__import__("os").system("ls")')
f'''{__import__('os').system('ls')}'''
[].__class__.__mro__[-1].__subclasses__()
_builtin__.open('/etc/passwd')
system('ls')
[].__class__.__base__.__subclasses__()[59]()._module.linecache.__dict__['o'+'s'].__dict__['sy'+'stem']('l'+'s') # only python2
[].__class__.__base__.__subclasses__()[59](linecache.getlines, '/etc/password')
[].__class__.__base__.__subclasses__()[59](exec, '("__import__("os").system("ls")")')
type 2: python lib
subprocess.Popen('ls')
os.popen('ls')
importlib
builtins.open('/etc/passwd')
linecache.getlines('/etc/passwd')
type 3: python import
__import
import
importlib
type 4: other
Web编程
对应Web编程中安全概念在python web框架中的实现。url跳转,目录遍历,任意文件读取也需要考虑在内。针对不同的框架也需要。
Flask 安全
Django 安全
可参考phithon的博客,有较多相关资料。
审计工具
安装使用方式较为简单,所以不做介绍。
引用