一道有意思的CTF题目

本文记录了一道2019 TMCTF Final的Web题目,涉及文件上传、下载、权限控制和PHP session伪造。通过分析源码和利用文件路径构造,实现了从普通用户到管理员的身份伪造,并进一步利用7z上传和命令注入,成功获取flag。
摘要由CSDN通过智能技术生成

前言

近期在整理题目的时候,发现了一道质量不错的Web题,出自2019 TMCTF Final,特此记录一下。

信息搜集

题目描述:

Hack the following server.
http://10.0.106.(team number)/
User NamePassword
guestpassword
admin(Unknown)
Note: You do not have to use way of brute force or DoS to solve this challenge. Please do not put a load on bandwidth or disk space.

题目给了一个网站,具备以下2种功能:

upload:http://10.0.106.10/tmctf2019/upload.php
download:http://10.0.106.10/tmctf2019/download.php

对于上传,可以指定public / private上传,对于download也可以指定public / private下载,上传至public的文件,只能用download的public文件下载。

也就是说题目给了我们一个文件上传,一个文件下载,而对于目录的划分(public / private),现在看不出多大作用来。

随便测试了一通,发现文件上传时,会拼接sha256的后缀,例如上传:

1.jpg

得到的文件名会变为:

1.jpg_sha256(salt+'1.jpg')所以无法控制后缀,奇热而尝试登陆功能注入和弱密码爆破登入也无法突破,无法将身份转换为admin,陷入僵局。

那么自然想到扫一扫目录,可以发现文件夹

http://10.0.106.10/tmctf2019/include/

该文件夹并没有做权限控制,我们可以看到如下4个文件

files.inc
functions.php
import_theme.inc
login.php

显然我们只能读取.inc文件php文件会被解析无法直接访问源码。

import_theme.inc

一道有意思的CTF题目

files.inc

一道有意思的CTF题目

代码审计

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值