Destoon 6.0 guestbook.php 通用SQL注入漏洞

作者: 分类: 网络安全 时间: 2017-1-13 13:21 评论: 5条评论 浏览: 1094人看过 标签: 注入漏洞 destoon

14842844351228.jpg

刚看到今天发布了Destoon 6.0 2017-01-09 更新,用我在【代码审计】小密圈里说过的方法,瞬间找到修复的一处SQL注入漏洞。用中午的20分钟,小小地分析一下。

我们先看看diff(左新右老):

14842843330983.jpg

mobile/guestbook.php 中将$_SERVER['HTTP_USER_AGENT']删掉了。分析一下,这里是手机端的留言板,destoon将用户的User-Agent放入了留言内容变量$post[content]中。

而据我对destoon的了解,其全局对GPC做了转义和WAF,但User-Agent没有进行过滤,所以这里有可能存在一个SQL注入漏洞。

所以往后看看吧,其调用了guestbook类的add方法,将$post变量传入:

function add($post) {
    $post = $this->set($post);
    $sqlk = $sqlv = '';
    foreach($post as $k=>$v) {
        if(in_array($k, $this-&g...

阅读全文>>

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...

阅读全文>>

谈一谈复杂的正则表达式分析

作者: 分类: 网络安全 时间: 2016-12-28 1:19 评论: 1条评论 浏览: 1325人看过 标签: 正则表达式

PHPMailer里面对于Email的正则表达式让很多人看了头疼,其实我看了也头疼,但借助一些工具,加上一些经验,还是能慢慢把有效信息剥离出来的。

首先推荐一个分析正则表达式的网站 https://regex101.com/ 。之前的很多网站,遇到今天这个正则表达式就都蔫儿了,实际上正则表达式的语法也不尽相同,比如PHP的正则和JavaScript就有区别,所以一定要找对正则表达式分析引擎。

regex101就可以选择多个正则表达式引擎,我这里选择pcre(php): https://regex101.com/r/aGGWWw/2

sp161228_014557.png

这个网站的诸多好处,自己使用去体会吧。

我们首先输入我们需要分析的正则表达式,然后慢慢分析。


(?1)的分析

这个正则表达式看似很长很乱,其实主要用到的也就是下面三种语法:

(?!xxx)断言,匹配后面不是xxx的位置

(?>xxx)一次性子组 ,见 http://php.net/manual/zh/regexp.reference.onlyonce.php

(?n)子匹配,等同于第n组正则

先来分...

阅读全文>>

PHPMailer 代码执行漏洞(CVE-2016-10033)分析(含通用POC)

作者: 分类: 网络安全 时间: 2016-12-27 17:46 评论: 0条评论 浏览: 3252人看过 标签: mail CVE-2016-10033

对比一下新老版本: https://github.com/PHPMailer/PHPMailer/compare/v5.2.17...master

14827395246777.jpg

其实答案呼之欲出了——和Roundcube的RCE类似,mail函数的第五个参数,传命令参数的地方没有进行转义。

回顾一下当时Roundcube的漏洞:因为mail函数最终是调用的系统的sendmail进行邮件发送,而sendmail支持-X参数,通过这个参数可以将日志写入指定文件。可以写文件,当然就可以写shell,造成RCE了。

详细分析一下,下载一份源码,并切换到5.2.17版本:

git clone https://github.com/PHPMailer/PHPMailer
cd PHPMailer
git checkout -b CVE-2016-10033 v5.2.17 

单步调试可以发现确实和之前Roundcube出现的漏洞( http://wiki.ioin.in/search?word=roundcube )一样,是传给mail函数的第五个参数没有正确过滤:

14827421313172.jpg

但上图是错的...

阅读全文>>

Bottle HTTP 头注入漏洞探究

作者: 分类: 网络安全 时间: 2016-12-22 0:42 评论: 1条评论 浏览: 1259人看过 标签: 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...

阅读全文>>

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头表明了这个网站是用...

阅读全文>>

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

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

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

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

阅读全文>>

谈一谈php://filter的妙用

作者: 分类: 网络安全 时间: 2016-7-25 0:28 评论: 13条评论 浏览: 4691人看过 标签: 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条评论 浏览: 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