Python 格式化字符串漏洞(Django为例)

作者: 分类: 网络安全 时间: 2017-1-5 16:27 评论: 1条评论 浏览: 520人看过 标签: python安全 django 字符串格式化漏洞

原文我发表在先知技术社区: https://xianzhi.aliyun.com/forum/read/615.html ,转载请联系阿里云Aliyun_xianzhi@service.alibaba.com 。本文涉及版权问题,侵权者后果自负。


在C语言里有一类特别有趣的漏洞,格式化字符串漏洞。轻则破坏内存,重则读写任意地址内容,二进制的内容我就不说了,说也不懂,分享个链接 https://github.com/shiyanlou/seedlab/blob/master/formatstring.md

Python中的格式化字符串

Python中也有格式化字符串的方法,在Python2老版本中使用如下方法格式化字符串:

"My name is %s" % ('phithon', )
"My name is %(name)%" % {'name':'phithon'} 

后面为字符串对象增加了format方法,改进后的格式化字符串用法为:

"My name is {}".format('phithon')
"My na...

阅读全文>>

Bottle HTTP 头注入漏洞探究

作者: 分类: 网络安全 时间: 2016-12-22 0:42 评论: 1条评论 浏览: 1260人看过 标签: CRLF python安全 Bottle

今天看到两个头注入,一个ASP.NET的 http://seclists.org/bugtraq/2016/Dec/43 ,一个Bottle的。

漏洞分析

这几天更新的bottle,修复了一个漏洞(CVE-2016-9964),介绍是这样说的

It was discovered that bottle, a WSGI-framework for the Python
programming language, did not properly filter "\r\n" sequences when
handling redirections. This allowed an attacker to perform CRLF
attacks such as HTTP header injection.

分析一下,实际上和redirect没有太大关系,只要是能设置HTTP返回头的地方,都存在头注入的问题。先看github的fix: https://github.com/bottlepy/bottle/commit/6d7e13da0f998820800ecb3fe9ccee4189aefb54https://github.com/bottlepy/bottle/commit/3f838d...

阅读全文>>

Cookie-Form型CSRF防御机制的不足与反思

作者: 分类: 网络安全 时间: 2016-9-27 6:23 评论: 4条评论 浏览: 1387人看过 标签: CSRF漏洞 python安全

今天看了 https://hackerone.com/reports/26647 有感。这个漏洞很漂亮,另外让我联想到很多之前自己挖过的漏洞和写过的程序,有感而发。

Django已经在昨天修复了该漏洞 https://www.djangoproject.com/weblog/2016/sep/26/security-releases/

0x01 借助Session防御CSRF漏洞

我最早接触Web安全的时候(大概大一暑假),写过一个站点。当时边看道哥的《白帽子讲Web安全》,边在写站点的过程中熟悉每种漏洞,并编写尽量安全的代码。

初识CSRF漏洞的我使用了一种中规中矩的方法来防御CSRF漏洞:

  1. 后端生成随机字符串Token,储存在SESSION中。
  2. 每当有表单时,从SESSION中取出Token,写入一个隐藏框中,放在表单最底部。
  3. 接受POST数据时,先验证$_POST['token'] === $_SESSION['token'],再执行其他逻辑。

这是一个很标准的CSRF防御方法,也很难找出其破绽。但这个方法有个致命的弱点:Session。原因有二:

  1. 所有用户,不论是否会提交表单,不论是否会用到这些功能,都将生成一个Session,这将是很大的资源浪费。举个例子,Sec-News的Session储存...

阅读全文>>

掌阅iReader某站Python漏洞挖掘

作者: 分类: 网络安全 时间: 2016-7-14 15:04 评论: 5条评论 浏览: 3848人看过 标签: redis python安全

Python作为新一代的web开发语言,不少互联网公司内外网使用其开发站点。Python web周边还存在redis、memcached、mongod、supervisord等等服务,我们结合这些服务的一系列安全问题,将可以做很多有趣的事情。

目标端口开放了 6379、8080~8086、8889、8079

首先,8080~8086、8889都是web服务,而且是一个站,6379是redis、8079是一个web服务但有http基础认证。

逐一击破。

  • 8080~8086、8889:存在弱口令admin - admin1234
  • 6379:存在redis未授权访问
  • 8079:存在弱口令user - 123,登录查看发现是Supervisord管理页面

从易到难,先看redis,也许可以直接通过redis拿下root。

redis已经被人扫过,写过公钥:

14655868157516.jpg

写入/root/.ssh/和/root/目录提示如下:

(error) ERR Changing directory: Permission denied 

可能是redis被降权了。再试一下写crontab。

14655680201594.jpg

可能真是被...

阅读全文>>

Top ↑ sitemap More