3.文件上传靶机实战(附靶机跟writeup)bmjoker

一个帮你总结所有类型的上传漏洞的靶场

绕过方法

源代码:

1functioncheckFile(){2varfile=document.getElementsByName('upload_file')[0].value;3if(file==null||file==""){4alert("请选择要上传的文件!");5returnfalse;6}7//定义允许上传的文件类型8varallow_ext=".jpg|.png|.gif";9//提取上传文件的类型10varext_name=file.substring(file.lastIndexOf("."));11//判断上传文件类型是否允许上传12if(allow_ext.indexOf(ext_name+"|")==-1){13varerrMsg="该文件不允许上传,请上传"+allow_ext+"类型的文件,当前文件类型为:"+ext_name;14alert(errMsg);15returnfalse;16}17}1.前端禁用JS,直接上传Webshell

2.把以.php结尾的小马改为以.jpg|.png|.gif结尾,用burpsuite抓包,在把.jpg|.png|.gif改回.php即可上传成功

1$is_upload=false;2$msg=null;3if(isset($_POST['submit'])){4if(file_exists($UPLOAD_ADDR)){5if(($_FILES['upload_file']['type']=='image/jpeg')||($_FILES['upload_file']['type']=='image/png')||($_FILES['upload_file']['type']=='image/gif')){6if(move_uploaded_file($_FILES['upload_file']['tmp_name'],$UPLOAD_ADDR.'/'.$_FILES['upload_file']['name'])){7$img_path=$UPLOAD_ADDR.$_FILES['upload_file']['name'];8$is_upload=true;910}11}else{12$msg='文件类型不正确,请重新上传!';13}14}else{15$msg=$UPLOAD_ADDR.'文件夹不存在,请手工创建!';16}17}由代码可知,对文件MIME类型进行了验证判断

1$is_upload=false;2$msg=null;3if(isset($_POST['submit'])){4if(file_exists($UPLOAD_ADDR)){5$deny_ext=array('.asp','.aspx','.php','.jsp');6$file_name=trim($_FILES['upload_file']['name']);7$file_name=deldot($file_name);//删除文件名末尾的点8$file_ext=strrchr($file_name,'.');9$file_ext=strtolower($file_ext);//转换为小写10$file_ext=str_ireplace('::$DATA','',$file_ext);//去除字符串::$DATA11$file_ext=trim($file_ext);//收尾去空1213if(!in_array($file_ext,$deny_ext)){14if(move_uploaded_file($_FILES['upload_file']['tmp_name'],$UPLOAD_ADDR.'/'.$_FILES['upload_file']['name'])){15$img_path=$UPLOAD_ADDR.'/'.$_FILES['upload_file']['name'];16$is_upload=true;17}18}else{19$msg='不允许上传.asp,.aspx,.php,.jsp后缀文件!';20}21}else{22$msg=$UPLOAD_ADDR.'文件夹不存在,请手工创建!';23}24}1.这里是黑名单验证('.asp','.aspx','.php','.jsp'),我们可上传php3,php5...等这样可以被服务器解析的后缀名

2.重写文件解析规则绕过。上传先上传一个名为.htaccess文件,内容如下:

然后再上传一个1.jpg

执行上传的1.jpg脚本

通过.htaccess文件调用php解析器去解析一个文件名中只要包含"1.jpg"这个字符串的任意文件,

无论扩展名是什么(没有也行),都以php的方式来解析

重写文件解析规则绕过,方法同上题一样,这里不再赘述

果然上传成功

1.php::$DATA,上传成功后保存的文件名其实是1.php

1$is_upload=false;2$msg=null;3if(isset($_POST['submit'])){4if(file_exists($UPLOAD_ADDR)){5$deny_ext=array("php","php5","php4","php3","php2","html","htm","phtml","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess");67$file_name=trim($_FILES['upload_file']['name']);8$file_name=str_ireplace($deny_ext,"",$file_name);9if(move_uploaded_file($_FILES['upload_file']['tmp_name'],$UPLOAD_ADDR.'/'.$file_name)){10$img_path=$UPLOAD_ADDR.'/'.$file_name;11$is_upload=true;12}13}else{14$msg=$UPLOAD_ADDR.'文件夹不存在,请手工创建!';15}16}分析代码,由于$file_name=str_ireplace($deny_ext,"",$file_name);只对文件后缀名进行一次过滤,这样的话,双写文件名绕过,文件名改成1.pphphp

文件夹,上传的文件名写成1.jpg,save_path改成../upload/1.php%00,最后保存下来的文件就是1.php

1$is_upload=false;2$msg=null;3if(isset($_POST['submit'])){4$ext_arr=array('jpg','png','gif');5$file_ext=substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);6if(in_array($file_ext,$ext_arr)){7$temp_file=$_FILES['upload_file']['tmp_name'];8$img_path=$_POST['save_path']."/".rand(10,99).date("YmdHis").".".$file_ext;910if(move_uploaded_file($temp_file,$img_path)){11$is_upload=true;12}13else{14$msg="上传失败";15}16}17else{18$msg="只允许上传.jpg|.png|.gif类型文件!";19}20}原理同Pass-11,上传路径0x00绕过。利用Burpsuite的Hex功能将save_path改成../upload/1.php【二进制00】形式

1functiongetReailFileType($filename){2$file=fopen($filename,"rb");3$bin=fread($file,2);//只读2字节4fclose($file);5$strInfo=@unpack("C2chars",$bin);6$typeCode=intval($strInfo['chars1'].$strInfo['chars2']);7$fileType='';8switch($typeCode){9case255216:10$fileType='jpg';11break;12case13780:13$fileType='png';14break;15case7173:16$fileType='gif';17break;18default:19$fileType='unknown';20}21return$fileType;22}2324$is_upload=false;25$msg=null;26if(isset($_POST['submit'])){27$temp_file=$_FILES['upload_file']['tmp_name'];28$file_type=getReailFileType($temp_file);2930if($file_type=='unknown'){31$msg="文件未知,上传失败!";32}else{33$img_path=$UPLOAD_ADDR."/".rand(10,99).date("YmdHis").".".$file_type;34if(move_uploaded_file($temp_file,$img_path)){35$is_upload=true;36}37else{38$msg="上传失败";39}40}41}绕过文件头检查,添加GIF图片的文件头GIF89a,绕过GIF图片检查。

或者我们使用命令copy1.jpg/b+shell.php/awebshell.jpg,将php一句话追加到jpg图片末尾,代码不全的话,人工补充完整。形成一个包含Webshell代码的新jpg图片,然后直接上传即可。但是我们没有办法拿到shell,应为我们上传的图片马无法被解析成php形式,通常图片马配合%00或者0x00截断上传,或者配合解析漏洞

1functionisImage($filename){2$types='.jpeg|.png|.gif';3if(file_exists($filename)){4$info=getimagesize($filename);5$ext=image_type_to_extension($info[2]);6if(stripos($types,$ext)){7return$ext;8}else{9returnfalse;10}11}else{12returnfalse;13}14}1516$is_upload=false;17$msg=null;18if(isset($_POST['submit'])){19$temp_file=$_FILES['upload_file']['tmp_name'];20$res=isImage($temp_file);21if(!$res){22$msg="文件未知,上传失败!";23}else{24$img_path=$UPLOAD_ADDR."/".rand(10,99).date("YmdHis").$res;25if(move_uploaded_file($temp_file,$img_path)){26$is_upload=true;27}28else{29$msg="上传失败";30}31}32}getimagesize()函数用于获取图像尺寸,索引2给出的是图像的类型,返回的是数字,其中1=GIF,2=JPG,3=PNG,4=SWF,5=PSD,6=BMP,7=TIFF(intelbyteorder),8=TIFF(motorolabyteorder),9=JPC,10=JP2,11=JPX,12=JB2,13=SWC,14=IFF,15=WBMP,16=XBM

image_type_to_extension()函数用于获取图片后缀

Pass-16源代码:

php图像二次渲染:

这两个讲的还可以

打开被渲染后的图片,Webshell代码仍然存在

程序依然没有对文件重命名,携带webshell的无效损坏png图片直接被上传成功。

上传名字为18.php.7Z的文件,快速重复提交该数据包,会提示文件已经被上传,但没有被重命名。

快速提交上面的数据包,可以让文件名字不被重命名上传成功。

然后利用Apache的解析漏洞,即可获得shell

1$is_upload=false;2$msg=null;3if(isset($_POST['submit'])){4if(file_exists($UPLOAD_ADDR)){5$deny_ext=array("php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess");67$file_name=$_POST['save_name'];8$file_ext=pathinfo($file_name,PATHINFO_EXTENSION);910if(!in_array($file_ext,$deny_ext)){11$img_path=$UPLOAD_ADDR.'/'.$file_name;12if(move_uploaded_file($_FILES['upload_file']['tmp_name'],$img_path)){13$is_upload=true;14}else{15$msg='上传失败!';16}17}else{18$msg='禁止保存为该类型文件!';19}2021}else{22$msg=$UPLOAD_ADDR.'文件夹不存在,请手工创建!';23}24}原理同Pass-11,上传的文件名用0x00绕过。改成19.php【二进制00】.1.jpg

------------------

于2019.10.24补充

今天在先知社区看到

学习到了利用.user.ini来上传php后门

利用条件:

利用步骤:

1.首先上传一个这样的.user.ini

GIF89aauto_prepend_file=1.jpg2.然后在上传这样一个图片马1.jpg

GIF89asystem('whoami');不过需要上传的目录下有一个可执行的php文件

上传完毕直接访问这个可执行php文件即可

------------------------------

于2019.11.07日补充

1.绕过思路:对文件的内容,数据。数据包进行处理。

关键点在这里Content-Disposition:form-data;name="file";filename="ian.php"将form-data;修改为~form-data;2.通过替换大小写来进行绕过

Content-Disposition:form-data;name="file";filename="yjh.php"Content-Type:application/octet-stream将Content-Disposition修改为content-Disposition将form-data修改为Form-data将Content-Type修改为content-Type3.通过删减空格来进行绕过

Content-Disposition:form-data;name="file";filename="yjh.php"Content-Type:application/octet-stream将Content-Disposition:form-data冒号后面增加或减少一个空格将form-data;name="file";分号后面增加或减少一个空格将Content-Type:application/octet-stream冒号后面增加一个空格4.通过字符串拼接绕过

看Content-Disposition:form-data;name="file";filename="yjh3.php"将form-data修改为f+orm-data将from-data修改为form-d+ata5.双文件上传绕过

Content-Disposition:form-data;name="file";filename="yjh.php"我们通过替换form-data为*来绕过Content-Disposition:*;name="file";filename="yjh.php"7.HTTPheader属性名称绕过

源代码:Content-Disposition:form-data;name="image";filename="085733uykwusqcs8vw8wky.png"Content-Type:image/png绕过内容如下:Content-Disposition:form-data;name="image";filename="085733uykwusqcs8vw8wky.pngC.php"删除掉ontent-Type:image/jpeg只留下c,将.php加c后面即可,但是要注意额,双引号要跟着c.php".8.等效替换绕过

原内容:Content-Type:multipart/form-data;boundary=---------------------------471463142114修改后:Content-Type:multipart/form-data;boundary=---------------------------471463142114boundary后面加入空格。

THE END
1.狗图片高清狗图片大全正版图片素材下载狗图片专题素材由Veer图库精选提供,内容涵盖:狗图片,商业狗图片,狗图片素材,高清狗图片大全等;需要正版狗图片素材下载需求就到Veer图库。https://www.veer.com/topic/10922/
2.狗的照片图片素材狗创意图片素材jpg图片格式mac下载素材可以为您的创意项目找到完美的图片素材,免费批量打包下载。狗的照片图片素材包含:动物,背景,凸轮,照相机,犬,可爱,数字,狗,小狗,眼睛等素材元素_jpg图片格式_5042X5042像素https://sc.macz.com/pic/4558.html
3.狗jpg素材图片狗jpg设计素材红动中国素材网提供7个狗jpg素材图片、狗jpg素材素材、狗jpg素材背景、狗jpg素材模板、狗jpg素材海报等PS素材下载,包含PSD、AI、PNG、JPG、CDR等格式源文件素材,更多精品狗jpg素材设计素材下载,就来红动中国,最后更新于2023-02-08 21:59:47。https://so.redocn.com/sucai/b9b76a7067cbd8b2c4.htm
4.美女亲吻狗jpg格式图片下载美女亲吻狗图片 作品详情: 文件格式 jpg 软件 JPG 文件大小 6 MB 图片版权: 人物画像、字体及音频仅供参考 相关搜索 亲吻 流浪狗 大狗 狗粮 人和狗 卡通狗 人狗 动物狗 可爱狗 金毛狗 亲吻图片推荐 最近更新 相关推荐 近期专题 蛇插画 青年艺术 蛇字 芦苇插画 新店开业宣传海报 登上顶峰 2025数字 云朵...https://m.tukuppt.com/muban/depnykzy.html
5.小狗图背景素材图片小狗图背景图片下载PSDJPG 简约宠物可爱萌狗H5背景 JPG 宠物背景 JPG 中国风喜庆新年大扫除海报设计 JPG 黄褐色小狗狗爱宠宠物背景 PSDJPG 清新涂抹手绘休闲娱乐背景遛狗 PSDJPG 复古中式边框祭灶节创意宣传海报 PSDJPG 过年不打烊卡通小狗年货节店铺首页 PSDJPG 水彩小狗宠物店图片 ...https://www.51yuansu.com/soback/2932058-0-0-0-0-0-0-4/
6.可爱博美犬狗狗可爱博美犬狗狗大全jpg图片免费下载图精灵为您提供可爱博美犬狗狗图片 可爱博美犬狗狗图片大全免费下载,格式为JPG,尺寸为6388x4259,下载后直接使用,更多图片素材就在图精灵https://616pic.com/sucai/18ghnqqjv.html
7.清新狗尾巴草高清图片清新狗尾巴草高清图片素材狗尾巴相关设计素材下载,包含狗尾巴草、绿色、狗尾草、植物,3a图网提供清新狗尾巴草高清图片下载等资源分享。http://aaatu.com/shejisucai/1766910546.html
8.狗狗高清图片可爱狗狗动物植物免费下载jpg格式6000像素体积:5.7 MB格式:JPG 版本推荐:Windows 照片查看器 等看图软件 交流群: 标签 JPG 狗狗 狗狗可爱图片 黑色 小狗 小狗狗 小狗图片 免费下载 使用单张下载 更多尺寸 收藏收藏 下载范围:免费下载、会员下载、个人商用、企业商用 版权范围:可商用 全球范围不限制 ...https://www.58pic.com/newpic/1128173.html
9.狗狗祟祟.JPG灵动。漫画图片生活日常分享图片搞笑思考.jpg 时光机的梦 2 拉灯.jpg 小红wz 4 狗狗 你可爱的爸爸_BvtgFe 2 不是约会.jpg. 小红wz 3 小情侣.jpg. 小红wz 19 狗狗洗澡前 vs 狗狗洗澡后 俞小鱼_4gUMYC 122 小朱:瑟瑟发抖.jpg 竹羽漓 8 小炎炎壁画版jpg. 村头说书的泥老先生 5 酒精灯(上色版jpg.) 村头说书的泥老先生 5 好像小狗...https://www.kuaikanmanhua.com/webs/world/123411504020680430327
10.穿衣服打领带的小狗图片动物昆虫自然风景穿衣服打领带的小狗图片,穿衣服打领带的小狗 小狗 犬 狗图片 宠物狗 名贵犬种 宠物狗图片 可爱宠物狗图片 小狗图片 宠物 小动物 陆地动物 生物世界 图片素材 jpg 棕色 JPG 摄影图,图行天下素材网图片编号:20150601116847296511https://www.photophoto.cn/pic/26379415.html
11.狗动物jpg素材狗动物jpg素材 图片素材,宠物,宠物狗 动物图片共享与免费下载网站-素材公社(www.tooopen.com)https://www.tooopen.com/view/1507798.html
12.搜狗搜索引擎搜狗搜索是全球第三代互动式搜索引擎,支持微信公众号和文章搜索、知乎搜索、英文搜索及翻译等,通过自主研发的人工智能算法为用户提供专业、精准、便捷的搜索服务。https://www.sogou.com/
13.AI把整张pngjpg图片转SVG格式文件之后为SVG添加动画效果到此为止,我们将一张图片转为了svg。图片像素越高,图片中色块轮廓越明显,最后生成的路径越清晰。 我们将svg的代码复制到html文档中,打开页面看效果 复制于此 每一个元素都有了自己的svg标签 效果 2.为元素添加动画效果 生成svg之后,就是需要耐心并且富有创意的给页面中的小元素添加各种各样的动画效果了。 https://www.jianshu.com/p/1a06fa681bd9
14.宠物狗狗图片头像图片图库爱给网提供海量的高清图库资源素材免费下载, 本次作品为jpg 格式的宠物狗狗图片头像, 本站编号41839917, 该高清图库素材大小为778k, 分辨率为2777 x 2103, 更多精彩高清图库素材,尽在爱给网。 浏览本次作品的您可能还对 图片动物图片狗狗图片宠物狗小狗狗宠物狗狗 感兴趣。https://www.aigei.com/item/chong_wu_gou_go_11.html
15.16款可爱宠物狗头像矢量素材矢量图标AI格式,含JPG预览图,关键字:哈士奇,法国斗牛犬,狮子狗,斑点狗,柴犬,狮子狗,比特犬,贵宾犬,图标,刚毛猎狐梗,宠物,狗,头像,可爱,矢量图... 下载地址1下载地址2做图辅助-iFonts字体下载 素材id:57052 * 特别声明:本站图片收集自网络,仅供个人学习交流使用,版权归原作者所有,请勿用于任何商业用途。如有侵犯您的版...https://www.lanrentuku.com/vector/icon/16kuankeaichongwugoutouxiang-shiliang.html
16.178个宠物狗品种图片大全,宠物狗品种大全世界上宠物狗有很多种,采用美国AKC标准,全球大概有178个品种的宠物狗,这些狗狗按体型、功能、特点等可以划分成不同的类别。按体型:超小型、超大型、小型、中型、大型。按功能:家庭犬、玩具犬、工作犬、梗类犬、牧羊犬、狩猎犬、枪猎犬。按特点:聪明、粘人、不掉毛、不爱叫、友善、会看家、耐热、易训。 https://www.meipian.cn/4jnqhq8m
1.小狗图片大全小狗高清图片下载小狗柯基犬图片纯种狗宝宝宠物可爱动物背景图片 儿童狗狗宝宝孩子宠物和谐相处温馨图片 小狗躺在床上的可爱宠物特写摄影图 金毛寻回犬 小狗 狗 可爱 宠物 乐趣 动物 播放 玩耍 白色背景上的小狗和小猫咪动物宠物 棕黄动物可爱棕色小狗趴在毛毯上睡觉动物宠物拍照背景图片 ...https://www.51miz.com/so-tupian/229703/p_3/
2.宠物狗图片大全小狗狗高清图片欣赏→MAIGOO图库宠物狗图片大全|在新新社会当中,宠物犬已经是非常普遍的存在,在种类的选择上也有着许多。本次小编为您推荐宠物狗图片,可爱的宠物狗图片,大型宠物犬图片,小型宠物犬图片供您欣赏。https://m.maigoo.com/tuku/523992.html
3.狗.JPG狗.JPG,堆糖图片。堆糖,美图壁纸兴趣社区。拥有几十亿高清优质图片,数千万用户的珍藏分享,一键收藏下载美图,点亮生活无限灵感,做你的美好研究所:情侣头像,手机壁纸,表情包,头像,壁纸,高清壁纸,图片,壁纸图片,图片下载。https://www.duitang.com/blog/?id=95786559
4.高清宠物狗野外背景JPG图片,摄影素材下载,风景设计必备探索宠物狗的魅力,我们提供一系列高清JPG图片摄影,以壮丽的野外为背景,展现狗儿的自然风采。这些精美的风景图片设计素材,为您的创作提供灵感与选择,轻松下载,尽享视觉盛宴。https://www.moyublog.com/hdbg/101188.html
5.可爱小狗摄影图元素图片jpg下载编号613762099499373589设图网提供可爱小狗摄影图元素图片高速下载,素材为jpg格式,4000×5310像素,颜色模式为RGB,下载后修改文字和图片,下载更多设计元素请关注设图网。https://www.shetu66.com/muban/613762099499373589
6.python猫狗二分类简单实现python二分法猫狗图片识别数据集一共有猫图片:6000张,有狗图片:6000张。图片已经被命名为:0.1.jpg-0.6000.jpg(猫);1.0.jpg-1.6000.jpg(狗) 照片读取代码如下: import numpyasnp import tensorflowastf #定义图片读取函数:把图片读取为64*64*3 def load_and_preprocess_from_path_label(path): ...https://blog.csdn.net/qq_40840797/article/details/118396985
7.微笑狗图片原图恐怖介绍2、狗眼睛直接盯着人,让人产生不适感; 3、獠牙,激发人原始的、对野兽的恐惧; 4、背后恐怖故事给人心理暗示。 二、微笑的狗恐怖原图吓死人,千万不要作死去搜smile.jpg 近日,一张名为喂小狗的恐怖图片刷爆了人的朋友圈,如果你还没有看过那张网红照片微笑的狗恐怖原图的话,那么小编劝你还是最好不要看了微笑狗...https://57g.net/zhgonglue/10803.html
8.猫狗图像分类数据集猫狗照片合集fnames = ['cat.{}.jpg'.format(i) for i in range(1500, 2000)] for fname in fnames: scr = os.path.join(original_dataset_dir, fname) dst = os.path.join(test_cats_dir, fname) shutil.copyfile(scr, dst) # ---将1000张狗的图片复制到train_dogs_dir--- fnames = ['dog.{}.jp...https://blog.51cto.com/u_16099242/11675798
9.微笑的狗恐怖原图吓死人,千万不要作死去搜smile.jpg微笑的狗恐怖原图吓死人,千万不要作死去搜smile.jpg 近日,一张名为喂小狗的恐怖图片刷爆了人的朋友圈,如果你还没有看过那张网红照片微笑的狗恐怖原图的话,那么小编劝你还是最好不要看了,因为大晚上的看完了你肯定是睡不着觉的,就连小编大白天的看到这张图都是后背发凉。https://mip.tanmizhi.com/html/923.html
10.白色背景上的可爱哈士奇小狗照片正版商用图片1j5brc摄图新视界提供白色背景上的可爱哈士奇小狗图片下载,另有可爱,动物,有吸引力,婴童,背景,美丽,黑色,品种,犬,人见人爱,狗,小狗,国内,快乐,隔离图片搜索供您浏览下载,每张图片均有版权可放心商用,您正在浏览的图片为1j5brchttps://xsj.699pic.com/tupian/1j5brc.html
11.绵芪图片图片,绵芪图片图片素材大全树叶图片大全 植物摄影.jpg 红枣香蕉片图片.jpg 商场购物图片 美女图片.jpg 冰激凌大图 冷饮素材.jpg 宇宙图片.jpg 清凉夏日冷饮果汁高清图.jpg 鸡块鸡腿摄影图片.jpg 斑点狗图片 狗图片大全.jpg 脚的图片 跑道图片.jpg 椰子树树叶摄影图片.jpg 菊花特写图 雏菊图片.jpg 商务握手图片 握手背景图片...https://s.5tu.cn/pic/mianchitupian-p3.html
12.十二生肖戊狗专题模板十二生肖戊狗图片素材下载我图网十二生肖戊狗专题为您整理了1031个原创高质量十二生肖戊狗图片素材供您在线下载,PSD/JPG/PNG格式十二生肖戊狗模板下载、高清十二生肖戊狗图片大全等,下载图片素材就上我图网。https://so.ooopic.com/sousuo/4191768/