DotClear文件上传漏洞

影响版本:<=2.11.2
官网链接:http://dotclear.org

漏洞分析

文件上传出现在/admin/media.php第250行

然后,我们跟踪到第265行

/inc/core/class.dc.media.php中定义了函数uploadFile

最后调用了/inc/libs/clearbricks/filemanager[......]

Read more

 

经常看到一些XSS+CSRF上传的漏洞,这次就学习了一下HTML5的一些新特性,用JavaScript实现了文件上传。攻击者可以向管理员发送一个钓鱼页面,管理员只要打开了这个页面,并且当前浏览器保存了后台的会话信息,那么就有可能实现getshell

一、测试环境

1.1 软件环境
  • Chrome浏览器
  • DVWA-1.9漏洞测试平台
  • wamp3.0集成环境
1.2 host文件与虚拟目录配置
  • 修改host文件,添加dvwa.mehey.me指向本机
  • 设置dvwa.me虚拟主机指向WEB_ROOT/dvwa
  • 设置hey.m[......]

Read more

前段时间,cloadeye炒的沸沸扬扬,听说邀请码还挺贵的。算求了,花了一天时间自己DIY了一个简洁版,经过测试还是能用的。下面是具体的操作方法:

一、准备工作

  • 一个二级域名
  • 一个VPS

二、HTTP带外数据记录

默认情况下,Apache的日志是不入库的。需要修改httpd.conf,在LogFormat位置的地方添加如下代码:

  • 设置日志格式以及处理方式

1472203712768

  • 设计数据库

1472203815519

  • 重启服务服务器之后,即可在数据库之中查看到访问日志

1472204002058

三、DNS带外数据记录

[……]

Read more

好吧,我承认以前遇到CSRF Token这种情况是真的很少,主要存在于CSRF Token存在于302重定向之后的页面。下面是DVWA最新版的登陆代码:

 

 

在上面的代码中,,系统在每次登陆的时候都会验证CSRF Token是否与SESSION中的Token值一致,如果不一致则重定向到login.php;如果用户名密码不一致,也会重定向到login.php重要的是,login.php会重新刷新CSRF Token

获取CSRF Token进行爆破

1471095560186

 

1[……]

Read more

The shortest webshell of PHP

某天闲逛wooyun,发现一篇挺有意思的文章————《32C3 CTF 两个Web题目的Writeup》。其中提到了两个比较有意思的东西:

  • The shortest webshell of PHP
  • PHP执行运算符反引号

上面提及的文章,我读前几遍的时候是很费解的!后来,土司的P牛给我一些指点,豁然开朗

Google “the shortest webshell”

google得到的结果之一如上所示,一共15个字符。这里比较有意思的是[……]

Read more

一、IPC$登录以及文件的上传与下载

  • 尝试IPC连接: net use \\10.33.7.75\ipc$ “[email protected]” /user:Administrator

    出现了如下的错误,很有可能没有开启IPC共享
    net use \\ACC-SRV\ipc$ “[email protected]” /user:backup
    System error 1312 has occurred.

    A specified logon session does not exist. It may already have been terminated

  • 已知一个域为tiv且已知一个域管[……]

Read more

 

前两天朋友扔给我一个XSS让我瞅瞅,当时的我也是懵逼的。当时也就想搞好玩,所以有了下面的分析。

1、添加script代码

XSS这种漏洞,还是找输入输出的地方。最后,我在留言的地方发现可以输入,而且用户自己可以查看内容。一般来讲,用户自己看到的内容和收件人看到的内容是一样的。

随便写了点东西,发现内容输出的位置在标签之间,标签之间的话还是比较好办的。而且,可以添加标签,也就是说,< >的符号没有被过滤。因此我测试如下的payload

 

结果发现,关键字script中间多[……]

Read more

一、MySQL

  • 读文件

    常见的读文件,可以用16进制代替字符串

  • 写文件

    我暂时已知l两种写文件的方式

 

二、 SQL Server

  • 读文件

    1. BULK INSERT

     

    2. CLR集成

    [crayon-587d3fdd4546[……]

Read more

一、原文部分翻译

搞web安全的都知道,黑客通常利用/proc/self/environ/var/log/apache2/error.logLFI漏洞getshell,但是极少数人知道利用临时文件名getshell这种方法。

它比其它方法技巧性更强,因为它只需要一个LFI漏洞。相反,其它可能需要访问proc或者/var/log或者需要一个可控的$_SESSION变量。此漏洞于2011年被研究人员发现,这篇文章是对这些技术的一个改进。

RFC-1867中提到,文件上传的时候临时文件默认会存储在服务器默认的一个临时目录中,如果最后文件没有被移动或者没有被重命名,该临时文件[……]

Read more

 

SQLServer注入技巧

一、对于SA权限的用户执行命令,如何获取更快捷的获取结果?

  • 有显示位
  • 无显示位

其实这里的关键并不是有无显示位。exec master..xp_cmdshell 'systeminfo'生成的数据写进一张表的时候,会产生很多行。而我们要做的就是如何很多行通过显示位、或者报错语句一次性爆出来,这里的关键就是多行合一。

方法①


解析:

  • [email protected]
  • 设置初始值为’~’[……]

Read more

一、基本概念

域名系统:

域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

根域名服务器:

全球一共有13台逻辑根域名服务器共300多台真实服务器分布于全球各地,用于存储每个顶级域的域名解析服务器的信息。

顶级域名服务器

用于存储每个二级域的域名解析服务器的信息。

次级域名服务器

用于存储二级域名的DNS记录

权威域名服务器

DNS中存[……]

Read more

一、 简单原理

说到断点续传,就不得不说一些和断点续传相关的HTTP头部字段。

① Content-Length

Content-Length用于指示HTTP响应包中实体的大小。除非使用了分块编码,否则Content-Length首部就是带有实体主体的报文必须使用的。使用Content-Length首部是为了能够检测出服务器崩溃而导致的报文截尾,并对共享持久连接的多个报文进行正确分段。

  • 检测结尾
  1.  HTTP的早期版本采用关闭连接的办法来划定报文的结束。但是,没有Content-Length的话,客户端无法区分到底是报文结束时正常的关闭连接还是报文传输中由于服务器崩[……]

Read more

1. 写在前面

1.1 序

这两天, 遇到某个站点,用的是一个名为piccms的php内容管理系统。几经搜索,发现并没有这个小众cms的漏洞相关信息。去找了一份源码,因此有了这篇文章。

1.2 审计之初

说到审计,我只能算个新手中的新手。关于审计,我有自己的一些小看法。在审计的时候,有很多人喜欢把源码直接扔到审计工具里面去,工具会根据规则找到可能出现问题的地方。然后,将危险的点一个一个去回溯。这看起来很速度很快,实则是有问题的。

  • 逆向思维远比正向思维来得慢
  • 了解系统的MVC结构方知数据流向
  • 逆向审计可能第二天就忘记了这个系统的用途

我觉得,在拿到一份源码系统[……]

Read more

1. 写在前面

最近经常会遇到一些比较有意思的漏洞,比如PHP反序列化漏洞,PHP对象注入。这些漏洞可能在平时很难遇到,但是在CTF以及一些CMS倒是经常看到他们的背影。今天刚刚好手上看到了某CTF的代码,但是并没有获取所有源码,因此修改了部分代码进行分析。

2. 自动加载

2.0 为什么要自动加载?

在面向对象编程中,程序员经常会编写好类然后在一个入口文件中将它们包含进来。如果一个项目非常大,可能存在成百上千个类文件,如果一一包含进去,那么入口文件就会显得特别大并且不利于维护。因此,PHP5提供了一种自动加载机制。

2.1 __autoload

  • index.php

[……]

Read more

写在前面

第一次审计不是SQL注入漏洞的代码,感觉还不怎么习惯。总之还是自己知识面太窄了~~~

1. 初步分析

1.1 源码下载

提示有源码下载sgbmwww.rar,先打包回来。

1.2 功能简述

前台功能比较简单,就一个留言处+上传。提示是”寻找后台之旅”,一开始我以为就是XSS打管理员后台什么的,方向什么的完全错了。下面简单分析分析。

2. 具体分析

2.1 留言处

 

  • 第五行有一个文件包含,需要%00截断就可以读取任意文件。不过NULL字符被全局转移
  • name与message[……]

Read more

写在前面

经某牛提醒通关,因此写下这篇文章权当学习记录。

1. 程序入口

任意文件读取漏洞:read.php?file=/read.php

这里可以使用file=/read.php的方式绕过is_file()的检测

2. 获取验证码

2.1 注入还是技巧?

这里暂时不用考虑注入的问题,全局过滤之后这里几乎不可能实现注入。这里的查询语句为:select qq from qq where qq like ‘$search’,我们可控的变量为$sear[……]

Read more

写在前面

本人比较菜,以前多多少少也遇到过一些Linux的系统。要不权限很高,要么内核版本很高,根本不给我学习的机会。因此写下这篇文章,只当记录自己的学习过程。如有不妥之处请指出!

1. 目标环境

  1.  Linux服务器受到防火墙限制,外网只能通过80端口访问内部
  2. 内网疑似只能返回HTTP的流量,无法采用反向代理的形式。这样看来,有点像DMZ主机+防火墙限制
  3. Linux内核版本为2.6.18-194
  4. 服务器有webshell一枚,权限较低,但是可以对web目录进行操作

2. 内网穿透

2.1 为什么需要内网穿透

  • 一般而言,Linux提权需要获取一个[……]

Read more

写在前面

尝试这次代码审计的时候,忘记看tips。结果也可想而知,我只走到了第二步。后来查阅相关tips,成功getshell。收获颇多,因此写下这篇writeup。

1. 线索

  • tips 1: 白猫三兄弟通过不懈努力,白猫甲找到gebai;白猫乙找到san;白猫丙找到mao;于是他们打算组合一下去zip大叔哪儿寻找谜底
  • tips 2:二次注入写 shell;
  • tips 3:降低难度,重新下载压缩包。利用 __autoload 特性;

2. 二次注入获取数据

根据tips 1从站点下载得到压缩文件包,sangebaimao.zip。

2.1 register[……]

Read more

1. 源码

2. 分析

2.1 引号问题

  • sanitize()对引号进行了过滤,导致无法引入引号
  • 输入点为字符型,如果不能闭合单引号则无法注入
  •  一般来说,程序如果无法引入单引号!那么产生单引号的地方就大致有如下几个地方
    • 1. 二次注入引入单引号
    • 2. 字符串截断
    • 3.反斜线转义
  •  这里引入单引号用的是反引号转义,但是注意一点问题:截断以及转义引入单引号一般至少两个可控字段,前面一个字段用于引入单引号,后面一个字段用于引入注入语句。

2.2 payload[……]

Read more

写在前面

下载器中间件是什么?是用于全局修改Scrapy request和response的一个轻量、底层的系统。
举个例子,当需要挂代理访问某个网站需要修改爬虫的User-Agent或者需要带cookie访问某个网站的时候,下载器中间件的使用就成为了必要!

中间件的使用

激活下载器中间件

要激活下载器中间件组件,需将其加入到 DOWNLOADER_MIDDLEWARES 设置中。该设置是一个字典(dict),键为中间件类的路径,值为其中间件的顺序(order)。如下所示,这里myproject是你项目的名字,middlewares是python脚本文件名(可以保存在项目的某个目[……]

Read more

使用scrapy进行爬取网页信息的时候,常常因为xpath等各种错误导致无法正常爬取页面。一边调试代码,一边从log日志中寻找有用的debug线索是一件非常繁琐而且麻烦的事情。因此可以使用shell终端重点调试xpath部分代码,这样可以大大节省codding的时间。

启动终端

使用终端

可用的shortcut

  • shelp() – 打印可用对象及快捷命令的帮助列表
  • fetch(request_or_url) – 根据给定的请求(request)或URL获取一个新的res[……]

Read more

Spider爬取过程

  • 以初始的URL初始化Request,并设置回调函数。当该request下载完毕并返回时,将生成response,并作为参数传递给该回调函数。
    • spider中初始的request是通过调用start_requests()来获取的。start_request()读取start_urls中的URL,并以parse为回调函数生成Request
  • 在回调函数内分析返回的(网页)内容,返回 Item 对象或者 Request 或者一个包括二者的可迭代容器。返回的Request对象之后会经过Scrapy处理,下载相应的内容并调用设置的cal[……]

Read more

1.分析

  • wooyun白帽子一共两千多名,白帽子信息的链接如下:wooyun白帽子
    • 它分为精华榜,人气榜以及贡献榜;三个榜单数据是一样的,只是排名顺序不一样。这里选取
      精华榜
      作为数据来源。
    • 精华榜的链接为http://wooyun.org/whitehats/do/1/page/n
    • 可提取信息为注册日期昵称等级精华漏洞数精华比例wooyun主页
  • 手动爬取
    • 手动爬去需要将url全部写在start_urls里面,一共104页因此一共104个链接
  • 自动爬取
    • start_urls里面[……]

Read more