title: i春秋 第二届春秋欢乐赛
date: 2019-01-23 15:37:13
tags: [Writeup,ctf]
categories: i春秋CTF大本营
i春秋 第二届春秋欢乐赛
Hello World
题目内容:http://106.75.72.168:9999/
打开题目链接只有一个hello,world!查看一下源码,访问一下flag.xmas.js啥都没有。
扫描一下目录存在git泄露,拿工具跑一下泄露的文件,浏览器里访问一下返回200的链接
//flag.php代码
<?php
ini_set("display_errors", "Off");
error_reporting(0);
function encode($b, $c = '', $d = 0) {
$e = 4;
$c = md5($c);
$f = md5(substr($c, 0, 16));
$g = md5(substr($c, 16, 16));
$h = $e ? ($k == 'DECODE' ? substr($b, 0, $e) : substr(md5(microtime()), -$e)) : '';
$l = $f . md5($f . $h);
$m = strlen($l);
$b = sprintf('%010d', $d ? $d + time() : 0) . substr(md5($b . $g), 0, 16) . $b;
$n = strlen($b);
$o = '';
$p = range(0, 255);
$q = array();
for ($r = 0;$r <= 255;$r++) {
$q[$r] = ord($l[$r % $m]);
}
for ($s = $r = 0;$r < 256;$r++) {
$s = ($s + $p[$r] + $q[$r]) % 256;
$t = $p[$r];
$p[$r] = $p[$s];
$p[$s] = $t;
}
for ($u = $s = $r = 0;$r < $n;$r++) {
$u = ($u + 1) % 256;
$s = ($s + $p[$u]) % 256;
$t = $p[$u];
$p[$u] = $p[$s];
$p[$s] = $t;
$o.= chr(ord($b[$r]) ^ ($p[($p[$u] + $p[$s]) % 256]));
}
return $h . str_replace('=', '', base64_encode($o));
}
$c = "flag_1s_n0t_h3re";
$cipher = "3133g8JTV89Ds4oh5k0JRPFijAbc1Qw7HciaZfhsV5lWr+7RM9IAF9SNw9WJMEg"; ?>
这个flag.php中 "flag_1s_n0t_h3re",不在flag.php里,关于解这个cipher的可以看这个文章,flag在flag.js了,而且我们最初查看源码时也是flag.xmas.js
参考该文章本题要考的是/.git/logs/HEAD文件利用,利用JGitHack获取到泄露的object,这里我直接用了Git_Extract。
网友评论