CTF-安恒18年十二月月赛部分writeup

 

CTF-安恒十二月月赛部分writeup

这次题目都比较简单蛤,连我这菜鸡都能做几道。

WEB1-ezweb2

打开网站,啥也没有,审计源代码,还是啥都没有,也没什么功能菜单,扫了一下目录,扫到了admin.php,但是提示:你不是管理员。好吧,抓个包看看

解一下码--:

将user改为admin,发现直接跳转到了admin.php页面。

 

这个框试了一下是可以执行命令的,ls

 

但是ls / 却错误,ls -l 也是错误,应该是过滤了空格通过 $IFS 可以绕过

 

cat /ffLAG_404 也就是cat$IFS/ffLAG_404即可读取flag

flag为:flag{6f1d95159e3b90ed28186c518dd15e8c}

WEB2-easy

是一道代码审计题

代码如下

 

<?php  
@error_reporting(1); 
include 'flag.php';
class baby 
{   
    public $file;
    function __toString()      
    {          
        if(isset($this->file)) 
        {
            $filename = "./{$this->file}";        
            if (file_get_contents($filename))         
            {              
                return file_get_contents($filename); 
            } 
        }     
    }  
}  
if (isset($_GET['data']))  
{ 
    $data = $_GET['data'];
    preg_match('/[oc]:\d+:/i',$data,$matches);
    if(count($matches))
    {
        die('Hacker!');
    }
    else
    {
        $good = unserialize($data);
        echo $good;
    }     
} 
else 
{ 
    highlight_file("./index.php"); 
} 
?>

 

unserialize 一眼就看到了是反序列化题目,

用户类定义了一个__toString为了让应用程序能够将类作为一个字符串输出(echo $good),而且其他类也可能定义了一个类允许__toString读取某个文件。

那么构造反序列化字符串即可读取任意文件,但是题目存在正则筛选,preg_match('/[oc]:\d+:/i',$data,$matches);筛掉了[oc]:数字:。

如果正常的反序列化payload:O:4:"baby":1:{s:4:"file";s:8:"flag.php";}中前面的O:4:符合正则的条件,因此将其绕过即可。利用符号+就不会正则匹配到数字

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

注:使用burp可以直接提交,使用url或者hackbar需要url编码一下

 

flag为flag{ad2328a2c3f0933c053fd3c6f28f6143}

MISC2-签到

 关注官方微信号 回答脑筋急转弯即可 答案为蜗牛

MISC3-学习资料

题目只有一个txt可以打开

比较两个压缩包

其crc32值是相同的,因此可以使用明文攻击。将备忘录单独拿出来压缩为一个压缩包。然后和加密的压缩包进行明文攻击。

N年以后--

 

 

word隐写嘿嘿,套路1检查文档

有是有,但是找半天,后来发现flag在图片后面......

所以flag为flag{edaa144c91a4e5b817e4a18cbdb78879}

其实把word后缀改为zip,打开找word/document.xml即可

MISC4-juju

 压缩包里只有一张png图,一顿测试后,发现在kali打不开

 

那就是说图片的文件内容肯定被改了,题目提示说有11只猪,但是png只有几只,所以大概知道是什么了

上winhex

这两个位置决定着图片的高度,如果更改它的值,图片高度也会发生变化,值越大图片越长

改了后面的参数几次还是没出来,所以直接该前一位 02为22

好了,图片够长了

 

base的格式,但是不是base64,是base32,解一下得到flag

所以flag为flag{a213072327f762855e475779eb081ca3}

 

 

 

 

转载于:https://www.cnblogs.com/pureqh/p/10161993.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值