SQL注入:html
若是是常規沒有進行預編譯,或者直接使用原生的進行拼湊,那麼在view的時候就須要多去觀察了python
【PythonSQL預編譯】https://www.cnblogs.com/sevck/p/6733702.htmllinux
若是項目使用例如Django,雖然Django本身封裝了操做數據庫的函數,可是Django也支持raw:shell
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安全
若是使用了這些須要多去關注和跟蹤相關的信息。curl
例如:函數
os.system("curl %s",(request.get("url")))post
那麼攻擊者也能夠進行拼湊,例如 http://a.com|id等等多種方式去繞過,姿式有$IFS\;\#,等等,url
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