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

作者: 分类: 网络安全 时间: 2017-1-5 16:27 评论: 1条评论 浏览: 519人看过 标签: 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...

阅读全文>>

Pwnhub Web题Classroom题解与分析

作者: 分类: 网络安全 时间: 2016-12-6 0:53 评论: 5条评论 浏览: 3018人看过 标签: ctf django pwnhub

Pwnhub 是一个面向安全研究人员的CTF对战平台,更官方一点的解释就是一个以各种安全技术为内容的竞赛平台。经过我们团队数个月的酝酿终于上线了。上线伊始,我出了一道Web题目,名字叫Classroom。

0x01 寻找源码

打开目标( http://54.223.46.206:8003/ )可以看到,一个登录页面。据我长期观察,50%的CTF题目打开都是一个登陆页面,而其中又有60%的可以用各种方式拿到源码。

虽然上面两个百分比是我编的,但这种题目找到源码的概率比较大。先打开burp看看数据包:

14809540240989.jpg

一共四个包,第一个包是一个302跳转,跳转到第二个包,也就是登录页面;第二个包就是登录页面,其中包含了一个ico(图标)和一个js;第三个包是js;第四个包是ico。

上图是js的数据包,观察一下,发现了两个信息:

  1. Server: gunicorn/19.6.0 Django/1.10.3 CPython/3.5.2
  2. Content-Type: text/plain

第一个Server头表明了这个网站是用...

阅读全文>>

Mooder团队内部贡献平台

作者: 分类: 资源分享 时间: 2016-10-23 21:12 评论: 13条评论 浏览: 2503人看过 标签: django mooder 团队

小介绍:Mooder是一款开源、安全、简洁、强大的(安全)团队内部知识分享平台,基于Django、全封闭保证私密性、支持Markdown、支持Postgres/Mysql/Sqlite等多种数据库、支持Docker-compose一键化安装与更新,易于二次开发。

今天开源的一个小玩意,上个月到这个月陆陆续续写的,这几天下班以后也会写几行这个,进行产品上的微调,然后修一些BUG。本来是给自己团队写的一个东西,但想想感觉应该有很多团队都需要这个,于是就开源了。

项目地址: https://github.com/phith0n/mooder

文档地址: https://phith0n.github.io/mooder/

为什么会有Mooder

有的人把Mooder理解为一个漏洞平台:团队成员可以提交漏洞,管理员进行审核与评分,最后能够兑换礼品或兑换其他人的漏洞。

但我把它理解为一个“团队贡献”平台,绝不是分享漏洞,而是分享知识。最初我在设计Minos的时候就有这样的想法,只可惜后面走偏了,把Minos做成一个社区了。后来我想想,还是需要这么一个东西,于是我又写了Mooder。

一个团队需要有自己独一无二的内容,才能吸引更多人才,而这个平台将是承载这些内容的载体。

做Mooder的初衷是为了团队内部的交流。由...

阅读全文>>

Django DeleteView without confirmation template, but with CSRF attack

作者: 分类: Python 时间: 2016-10-14 0:41 评论: 1条评论 浏览: 1465人看过 标签: CSRF漏洞 django

    随便写点东西吧。

    Django的Class based view十分好用,也很灵活。其中DeleteView( https://docs.djangoproject.com/en/1.10/ref/class-based-views/generic-editing/#django.views.generic.edit.DeleteView )有点特别蛋疼的,他理想的流程是这样:点击删除 -> 跳转到确认页面 -> 点击确认删除 -> 删除对象 -> 跳转到success_url。

    这样导致删除的流程特别麻烦,特别是这个“确认页面”:

    sp161014_034704.png

    因为“删除”是一个敏感操作,所以一定要有CSRF防御,所以点击上图这个“是的,我确认”按钮以后,会发送一个POST请求到后端的。Django会自动检查CSRF TOKEN。但实际上,我们也可以操作JavaScript向后端发送PO...

阅读全文>>

Top ↑ sitemap More