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 总结
文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。