当前位置: 首页 > article >正文

CTFHub | 双写后缀

 0x00 前言

        CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。

        

        

0x01 题目描述

双写后缀:

        (无)

网页显示内容

        

        

0x02 解题过程

分析网页源代码,可以看到网页会将上传的文件后缀名进行判断,符合白名单条件的会返回为空

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>CTFHub 文件上传——双写绕过</title>
</head>

<body>
    <h1>CTFHub 文件上传——双写绕过</h1>
    <form action="" method="post" enctype="multipart/form-data">
        <label for="file">Filename:</label>
        <input type="file" name="file" id="file" />
        <br />
        <input type="submit" name="submit" value="Submit" />
    </form>
    <p></p>
</body>

</html>

<!--
$name = basename($_FILES['file']['name']);
$blacklist = array("php", "php5", "php4", "php3", "phtml", "pht", "jsp", "jspa", "jspx", "jsw", "jsv", "jspf", "jtml", "asp", "aspx", "asa", "asax", "ascx", "ashx", "asmx", "cer", "swf", "htaccess", "ini");
$name = str_ireplace($blacklist, "", $name);
-->

        

这里上传一个后缀名为.php的一句话木马文件,提示上传成功

        

使用蚁剑连接测试网站连通性,发现返回值为空

        

那么根据题目的提示,我们可以使用双写后缀名进行文件上传,来达到绕过白名单检测的目的

双写后缀绕过:

例如:正常上传一个 .php 文件后缀的因为在白名单中出现会被网页清空后缀名。这时我们可以写两个后缀名 .pcerhp 网页会检测到 cer 后缀并清空,然而清空之后 .php 并不会消失,因为网页代码并没有对这个条件做判断。只清空了 cer ,那么 .php 后缀名被保留在网页中变达到了双写后缀绕过的目的。

http://xxx.ctfhub.com:10800/upload/shell.    //上传文件名:shell.php

http://xxx.ctfhub.com:10800/upload/shell.php    //上传文件名:shell.pcerhp

        

使用蚁剑进行连接并测试连通性,可以正常连接 

        

查找网页目录中的文件,发现此题flag

        

        

0x03 参考文献

[1].多学点技术. 利用后缀名双写绕过[EB/OL]. [2023-04-09]. https://blog.csdn.net/weixin_44032232/article/details/109009842.

        

        

0x04 总结

文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。


http://www.kler.cn/a/7737.html

相关文章:

  • 芯片详细讲解,从而区分CPU、MPU、DSP、GPU、FPGA、MCU、SOC、ECU
  • 新版2024AndroidStudio项目目录结构拆分
  • Mac中配置vscode(第一期:python开发)
  • arcgis的合并、相交、融合、裁剪、联合、标识操作的区别和使用
  • 2025新春烟花代码(二)HTML5实现孔明灯和烟花效果
  • 创建Java项目,并添加MyBatis包和驱动包
  • 使用Python、Contours绘制等高线
  • 软件安全测试有哪些测试手段?软件测试报告收费贵吗?
  • 增程汽车大厂上纯电,理想能行吗?
  • 实时聊天如何改变您的在线商店
  • 【文心一言】内测版 沉浸式深度体验——不间断 提问问题!它的表现如何?
  • SOLIDWORKS三维建模的十大应用技巧
  • 【Axure高保真原型】画图画板
  • 数组按照某个key分组
  • SpringCloud-高级篇(一)
  • 2021蓝桥杯真题小平方 C语言/C++
  • 【Java版oj】day28反转部分单向链表、猴子分桃
  • nginx 逻辑判断if语句使用
  • 【二叉树OJ题(二)】前序遍历中序遍历后序遍历另一颗树的子树二叉树遍历平衡二叉树
  • 精彩回顾 | 平行云亮相LiveVideoStack2022北京站
  • 2023年一个完整的B2B订货网站源码
  • NC65 部门预算DAO类
  • ‘protoc-gen-js‘ 不是内部或外部命令,也不是可运行的程序
  • 在DongshanPI-D1开箱使用分享与折腾记录实现MPU6050数据读取
  • 面向对象编程(基础)8:关键字:package、import
  • 【面试】分库分表15道面试题