用户
搜索
  • TA的每日心情

    2021-7-15 15:48
  • 签到天数: 23 天

    连续签到: 1 天

    [LV.4]经常看看II

    i春秋-核心白帽

    知识面,决定看到的攻击面有多广。知识链,决定发动的杀伤链有多

    Rank: 4

    38

    主题

    290

    帖子

    1129

    魔法币
    收听
    0
    粉丝
    84
    注册时间
    2016-4-17

    秦i春秋签约作者

    Vulkey_Chen i春秋-核心白帽 知识面,决定看到的攻击面 秦 i春秋签约作者 楼主
    发表于 2017-10-28 23:00:22 422817

    浅析通过"监控"来辅助进行漏洞挖掘

    Auther : vulkey@MstLab(米斯特安全攻防实验室)

    前言

    这篇文章总结了一些笔者个人在漏洞挖掘这一块的"姿势",看了下好像也没相关类似TIPs或者文章出现,就写下此文。

    "监控"一词,相信大家很常见,例如:xxx酒店厕所被安装监控、xxx明星被狗仔24小时监控,也有奶权师傅写过的《Python系列之——利用Python实现微博监控》和笔者写过的《从编写知乎粉丝监控到漏洞挖掘再到盗号》

    但这跟"漏洞挖掘"联系起来的话似乎就让人摸不着头脑,其实不然,通过"监控"可以帮我们做很多事。

    监控狂人的修炼之路

    以大家最常见的一个东西起->扫描器,其可以辅助渗透测试工程师更好更简单的进行漏洞的信息发现,但是发现漏洞后要测试漏洞的时候哪些验证步骤是不是就很头疼呢?通过"监控"去完成是不是更好~

    在我们做盲测漏洞的时候可能会考虑到一些问题,最主要的问题肯定就是什么时候平台能收到结果呢?

    这时候就可以对接一些平台的API进行关键字监控了。

    使用ceyeAPI接口对SSRF漏洞进行长期监控

    API: /api/record?token={token}&type={dns|request}&filter={filter}
    token: your ceye token.
    type: type of query, 'dns' or 'request'.
    filter: match {filter}.{your domain}.ceye.io rule, but limit 20.

    Python写一个监控然后再写个发信,这样在有些环境下迟迟到来的漏洞信息就会立即被在床上玩手机的你知道了。

    其实如上的思路还可以利用很多结合dnslog的原理去监控,这里借助了ceye这个平台的API,还可以参考Bugscandnslog平台 自己去搭建一个然后噼里啪啦,这里其实BurpsuiteScanner模块就借助了这样的思路去更快捷的扫描发现SSRF漏洞,但是却没办法做到长时间的"蛰伏期"(也就是在一些情况下,结果是需要一个等待才能到达),那其实大家可以继续开拓自己的思维去想些更有价值的东西。

    如上说的一些"姿势"可能是废话了,很多人都自己多多少少都有想过也实现了,但是别急,前菜清淡,但主菜呢,邀君共品~

    很多的时候,朋友就会问我xxCMS后台怎么GetWebshell,为什么那些牛人分分钟都可以Getwebshell了?除了看代码我怎么快速的获取GetWebshell的"姿势"呢?

    一般后台GetWebshell的"姿势"有这几种:后台代码/命令执行代码闭合操作缓存文件上传等等...

    那其实很多的都会本文件打交道,不如先造个文件监控出来:


    0.png

    造完监控,不如来写个后台GET/POST请求Fuzz,在做这个Fuzz的时候处理的时候遇到很多坑,脚本写的不是很好就不拿出来丢人现眼了~

    这里我做的Fuzz是结合Burpsuite日志,进行筛选然后Fuzz:


    1.png

    这里筛选的脚本是根据 https://github.com/tony1016/BurpLogFilter 去造了一个2.7版本的~

    其实这个脚本大概的功能实现是这样的:

    设置GET/POST传输参数对应值为随机字符串(这里使用了python的uuid),会生成一个Fuzz历史Log文件,以便跟文件监控对比。

    历史Log对比文件监控:


    2.png

    这里Fuzz之后发现有两个文件被修改了,而这两个文件因为有CMS特征的存在就不一一例举了。为什么会被修改呢?因为这里传递的值被写入了文件中,找到对应功能点发现有CSRF,一结合就造成了CSRF+后台GetWebshell~

    通过如上的姿势测试了不少的CMS,又在CNVD和补天提交相对应也获得了不少的Bounty。

    在利用这种姿势的情况下偶然发现一个CMS前台访问的时候会生成一个缓存日志文件,而缓存日志文件的内容会记录用户的IP:

    <?php
    127.0.0.1 GET /center/useredit/
    die();
    ?>

    那其getip()函数的核心代码:

    ......
    if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){
        $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
    }elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){
        $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
    }elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){
        $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
    }elseif (getenv("HTTP_X_FORWARDED_FOR")){
        $ip = getenv("HTTP_X_FORWARDED_FOR");
    }elseif (getenv("HTTP_CLIENT_IP")){
        $ip = getenv("HTTP_CLIENT_IP");
    }elseif (getenv("REMOTE_ADDR")){
        $ip = getenv("REMOTE_ADDR");
    }
    ......

    可以通过伪造XFF头进行PHP代码的闭合造成前台无限制GetWebshell,但是缓存文件的路径是:/www/center/temp/md5(text).php

    通过代码了解到其的文件的命名规则是md5(time()),那其实通过记录前后的一部分时间戳加上Burpsuite的Intruder模块进行md5加密枚举就行了。

    那其实还可以做一些Fuzz然后实时监控Mysql的SQL执行语句:


    6.png

    首先来看下Mysql的记录Log功能开了没有:

    SHOW VARIABLES LIKE "general_log%";

    3.png

    看见其的功能OFF了~只要设置下ON就行了:

    SET GLOBAL general_log = 'ON';

    4.png

    使用BareTail进行监控或者自己根据Log的文本规则监控就行了:


    5.png


    结尾

    本文不足之处欢迎指出,也希望大家可以GET到一点点思路,欢迎跟笔者交流。

    下一篇已经在草稿中了,是关于自动化Fuzz方面的内容,期待吧。



    本帖被以下淘专辑推荐:

    gh0stkey,米斯特安全团队核心。
    i春秋社区核心成员之一。
    关注米斯特安全团队(MstLab):www.hi-ourlife.com
    发表于 2017-10-29 16:47:51
    本地搭建cms,用py写一个脚本去收集cms与数据库交互的URL ,然后用一些SQL注入的payload,比如%df',%2527这种去请求URL ,再去结合你写的MySQL监控日志会更好
    使用道具 举报 回复
    Vulkey_Chen i春秋-核心白帽 知识面,决定看到的攻击面 秦 i春秋签约作者
    板凳
    发表于 2017-10-29 20:38:17
    J1ink 发表于 2017-10-29 08:47
    本地搭建cms,用py写一个脚本去收集cms与数据库交互的URL ,然后用一些SQL注入的payload,比如%df',%2527 ...

    感谢建议,目前已经实现了大概的功能 往后的就是根据如下所说的去完成了:根据一些规则 只要生成的随机字符串被带入sql查询 再单独生成一个日志 然后结合判断规则去测试
    gh0stkey,米斯特安全团队核心。
    i春秋社区核心成员之一。
    关注米斯特安全团队(MstLab):www.hi-ourlife.com
    使用道具 举报 回复
    发表于 2017-10-30 09:31:47
    都是一个由浅入深的慢慢过程
    不服你TMD来打我啊!
    使用道具 举报 回复
    发表于 2018-9-21 16:55:09
    学习一下~
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册