离别歌

The quieter you become,the more you are able to hear.

Programming • Vulnerability • Bypass • Exploit
  • Programming

    一个不会编程的hacker不是好hacker,努力提高编码水平,接触最前沿的代码思想,构架自己的平台框架。

  • Vulnerability

    没有漏洞就没有安全,安全建立在发现漏洞与解决漏洞之间。世上没有完美的代码,也不会有零漏洞的程序。

  • Bypass

    不断地绕过,不断地突破防御机制,考验的是一个安全研究者对于漏洞原理的理解,更是猥琐的思路。

  • Exploit

    发现一个漏洞,你成功了70%;写出利用代码,完成剩下的30%。行百步者半九十。

deep

Pwnhub Web题Classroom题解与分析

作者: 分类: 网络安全 时间: 2016-12-6 0:53 评论: 4条评论 浏览: 703人看过 标签: 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 评论: 11条评论 浏览: 1774人看过 标签: 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条评论 浏览: 876人看过 标签: 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...

阅读全文>>

谈一谈如何在Python开发中拒绝SSRF漏洞

作者: 分类: Python 时间: 2016-9-30 15:26 评论: 5条评论 浏览: 1441人看过 标签: python ssrf漏洞 requests

0x01 SSRF漏洞常见防御手法及绕过方法

SSRF是一种常见的Web漏洞,通常存在于需要请求外部内容的逻辑中,比如本地化网络图片、XML解析时的外部实体注入、软件的离线下载等。当攻击者传入一个未经验证的URL,后端代码直接请求这个URL,将会造成SSRF漏洞。

具体危害体现在以下几点上:

  • URL为内网IP或域名,攻击者将可以通过SSRF漏洞扫描目标内网,查找内网内的漏洞,并想办法反弹权限
  • URL中包含端口,攻击者将可以扫描并发现内网中机器的其他服务,再进一步进行利用
  • 当请求方法允许其他协议的时候,将可能利用gophar、file等协议进行第三方服务利用,如利用内网的redis获取权限、利用fastcgi进行getshell等

特别是这两年,大量利用SSRF攻击内网服务的案例被爆出来,导致SSRF漏洞慢慢受到重视。这就给Web应用开发者提出了一个难题:如何在保证业务正常的情况下防御SSRF漏洞?

很多开发者认为,只要检查一下请求url的host不为内网IP,即可防御SSRF。这个观点其实提出了两个技术要点:

  1. ...

阅读全文>>

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

作者: 分类: 网络安全 时间: 2016-9-27 6:23 评论: 4条评论 浏览: 971人看过 标签: 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储存...

阅读全文>>

WTForm的URLXSS谈开源组件的安全性

作者: 分类: 网络安全 时间: 2016-9-2 23:01 评论: 3条评论 浏览: 1480人看过 标签: xss WTForm

    开源组件是我们大家平时开发的时候必不可少的工具,所谓『不要重复造轮子』的原因也是因为,大量封装好的组件我们在开发中可以直接调用,减少了重复开发的工作量。 开源组件和开源程序也有一些区别,开源组件面向的使用者是开发者,而开源程序就可以直接面向用户。开源组件,如JavaScript里的uploadify,php里的PHPExcel等;开源程序,如php写的wordpress、joomla,node.js写的ghost等。 就安全而言,毋庸置疑,开源组件的漏洞影响面远比开源软件要大。但大量开源组件的漏洞却很少出现在我们眼中,我总结了几条原因:

  1. 开源程序的漏洞具有通用性,很多可以通过一个通用的poc来测试全网,更具『商业价值』;而开源组件由于开发者使用方法不同,导致测试方法不统一,利用门槛也相对较高
  2. 大众更熟悉开源软件,如wordpress,而很少有人知道wordpress内部使用了哪些开源组件。相应的,当出现漏洞的时候人们也只会认为这个漏洞是wordpress的漏洞。
  3. 惯性思维让人们认为:『库』里应该不会有漏洞...

阅读全文>>

神奇的opener对象

作者: 分类: web前端 时间: 2016-8-30 0:32 评论: 3条评论 浏览: 2141人看过 标签: opener

    看到微博上coding发了一个文章,https://coding.net/u/tvvocold/pp/125176 ,这个玩法比较老了,但可能还是有不少人不知道。大概一年前,在某个曾经很火的白帽子社区,有个白帽子的签名是他的博客,点击浏览完毕以后返回该社区,就会发现:咦,我已经退出登录了?于是重新输入账号、密码登录,成功被钓鱼。该白帽子通过这个方法,应该成功钓到了好几个其他白帽子的密码。(缅怀一下,很多该社区分享的东西,外面不科(chao)普(zuo)根本不知道,说起来很可笑)

    效果类似这个:http://naotu.baidu.com/file/b8a9e8886e91624dfe6bb6f3e2130bda?token=143a14685143a021 ,你在该站中点击我的博客:

    sp160830_012931.png

    成功打开了drops.leavesongs.com。此时留心的话,已经可以看到原标签发生了变化:

    sp160830_013040.png

    转回去看看,变...

阅读全文>>

答案与没有答案的旅行

作者: 分类: 心得与体会 时间: 2016-8-21 1:23 评论: 15条评论 浏览: 1671人看过 标签: 答案

当我站在山顶上俯瞰半个鼓浪屿和整个厦门的夜空的时候,我知道此次出行的目的已经完成了,我要开始收拾行李,明天早上离开这里。

前几天有人问我,大学四年结束了,你也不说点什么?乌云发生了一些事情,所有人都缄默不言,你也是一样吗?你逃到南方,难道不回家了吗?当然要回家,我只是想找到我要找的答案。其实这次出来一趟很累,晚上几乎是热汗淋漓回到住处,厦门的海风伴着妮妲路过后带来的淅淅沥沥的小雨,也去不走我身上任何一个毛孔里的热气。好在旅社的生活用品一应俱全,洗完澡后我爬到屋顶。

旅社是一个老别墅,说起来也不算老,比起隔壁一家旧中国时期的房子要豪华得多,竖立在笔山顶上与厦门岛隔海相望。站在屋顶向下看,灯火阑珊的鼓浪屿街市参杂在绿树与楼宇间,依稀还可以看到熙熙攘攘的游客。大概是夜晚渐深的缘故,周围慢慢变得宁静下来,我忘记白天在奔波什么,直到站在这里的时候,我才知道我寻找的答案并不在南方。

当然也不在北方,北京的很多东西让我非常丧气,包括自掘坟墓的中介和颐指气使的大人们;北京也有很多东西让我喜欢,我喜欢颐和园古色古香的玉澜堂,我喜欢朝阳门那块“永延帝祚”的牌坊,喜欢北京鳞次栉比的老宅子和南锣鼓巷的小吃。但这些都...

阅读全文>>

谈一谈php://filter的妙用

作者: 分类: 网络安全 时间: 2016-7-25 0:28 评论: 13条评论 浏览: 4092人看过 标签: php filter

php://filter是PHP中独有的协议,利用这个协议可以创造很多“妙用”,本文说几个有意思的点,剩下的大家自己下去体会。本来本文的思路我上半年就准备拿来做XDCTF2016的题目的,没想到被三个白帽的一题抢先用了,我也就只好提前分享一下。

XXE中的使用

php://filter之前最常出镜的地方是XXE。由于XXE漏洞的特殊性,我们在读取HTML、PHP等文件时可能会抛出此类错误parser error : StartTag: invalid element name 。其原因是,PHP是基于标签的脚本语言,<?php ... ?>这个语法也与XML相符合,所以在解析XML的时候会被误认为是XML,而其中内容(比如特殊字符)又有可能和标准XML冲突,所以导致了出错。

那么,为了读取包含有敏感信息的PHP等源文件,我们就要先将“可能引发冲突的PHP代码”编码一遍,这里就会用到php://filter。

php://filter是PHP语言中特有的协议流,作用是作为一个“中间流”来处理其他流。比如,我们可以用如下一行代码将POST内...

阅读全文>>

掌阅iReader某站Python漏洞挖掘

作者: 分类: 网络安全 时间: 2016-7-14 15:04 评论: 5条评论 浏览: 3435人看过 标签: 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