文件上传(详解)

文件上传(详解)

2023年7月14日发(作者:)

⽂件上传(详解)0X00-引⾔欲速则不达,快就是慢,慢就是快唉,亲爱的⼩妹妹,请你不要不要哭泣,哦,不要不要悲伤,哦,不要不要哭泣靶场介绍:phpstudy + ms08067web安全攻防的靶场0X01-⽂件上传简介⽂件上传,顾名思义就是上传⽂件的功能⾏为,之所以会被发展为危害严重的漏洞,是程序没有对访客提交的数据进⾏检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。⽂件上传漏洞是漏洞中最为简单猖獗的利⽤形式,⼀般只要能上传获取地址,可执⾏⽂件被解析就可以获取系统WebShell。恶意⽂件传递给解释器去执⾏,之后就可以在服务器上执⾏恶意代码,进⾏数据库执⾏、服务器⽂件管理,服务器命令执⾏等恶意操作。根据⽹站使⽤及可解析的程序脚本不同,可以上传的恶意脚本可以是PHP、ASP、JSP、ASPX⽂件。0X02-为什么存在⽂件上传及危害服务端代码未对客户端上传的⽂件进⾏严格的验证和过滤,就容易造成上传任意⽂件的情况。危害:⾮法⽤户上传恶意脚本控制整个⽹站甚⾄控制服务器,这个恶意的脚本⽂件⼜称为webshell,webshell具有⾮常强⼤的功能,可以查看服务器⽬录,服务器中的⽂件,执⾏系统命令,甚⾄为所欲为,操纵⼀切。shell在⼿,天下我有。0X03-⽂件上传绕过的姿势01-前端JS检测绕过js检测绕过是在客户端浏览器使⽤JS对数据包进⾏检测,并没有发送到服务器打开靶场测试⼀番打开burp-上传PHP⽂件-此时以弹出禁⽌上传PHP⽂件的命令,且burp也没有抓到包在检查前端页⾯中-我们发现如果上传的不是jpg⽂件,那么浏览器就会弹窗报错绕过思路-更改⽂件格式为jpg-burp抓包再改php-绕过前端检测蚁剑连接成功02-js检测绕过分析前⾯分析过前端代码看到在js中对⽂件后缀名进⾏限制看⼀下后端的代码可以看到后端php⽤file_exists判断⽂件是否存在,如果不存在就使⽤move_uploaded_file函数将⽂件保存在upload的⽂件夹下⾯。由此可知,后端代码对上传的⽂件没有限制,只要突破前端的限制就可上传webshell。03-⽂件后缀绕过在Apache解析顺序中,是从右往左开始解析⽂件后缀的,如果⽂件名不可识别则往左开始判断,知道可以解析,这也是Apache解析漏洞之⼀。测试⽂件后缀绕过,我们需要在phpstudy的Apache中的配置⽂件中开启AddType application/x-httpd-php .php .phtml使其可以解析PHP和phtml⽂件更新配置⽂件之后需要重启phpstudy上传⽂件蚁剑连接04-⽂件后缀绕过分析后端通过pathinfo获取后缀名,且只添加了⼀个限制就是后缀名不允许为php,我们知道apache解析从右往左,构造奇特后缀绕过05-⽂件类型绕过攻击01-Content-Type值绕过后端对数据包中Content-Type的字段值进⾏校验,通过burp修改Content-Type的值进⾏绕过如果上传jpg⽂件时Content-Type的值为image/jpeg上传php⽂件Content-Type的值为application/octet-stream上传抓包-burp修改字段-蚁剑连接02-绕过getimagesize()函数(制作图⽚马)制作图⽚马上传06-⽂件类型绕过分析后端对Content-Type的值进⾏校验,分析代码可知后端⽩名单中只有图⽚的类型图⽚马绕过代码分析PHP函数getimagesize()可以获取图⽚的宽和⾼,如果不是图⽚,getimagesize()则获取不到信息,不允许上传07-⽂件截断绕过(%00截断)截断类型:PHP%00截断截断原理:00代表结束符,会把00后⾯的所有字符删除截断条件:PHP版本⼩于5.3.4,PHP的magic_quotes_gpc为OFF状态打开靶场-上传⽂件-⽣成的⽂件为⾃命名加时间戳burp抓包添加00截断此时服务器会⽣成⽂件-⾃命名后⾯的内容被截断蚁剑连接08-⽂件截断绕过分析上传⽂件到服务器,%00会截断后⾯的内容。在代码中保存路径中有$_REQUEST['jieduan'],在此处可以利⽤00截断尝试绕过服务端限制08-条件竞争绕过某些⽹站先允许上传⽂件,之后再检查上传⽂件的内容,若存在后门,则删除。先上传,再删除意味着存在⼀个时间差。如果在上传的⽂件内写⼊可以在同⽬录下⽣成的后门⽂件的代码。在这个时间差内去让它⽣成⼀个新的后门⽂件。");fclose($file);>上传之后访问该⽂件访问-该⽂件-同⽬录下会⽣成另⼀个⽂件访问⽣成的新⽂件-成功08-条件竞争绕过分析靶场中的代码写明让程序睡眠10S,然后执⾏。意思是在程序检测到恶意⽂件之前访问上传的⽂件去⽣成⼀个新的恶意⽂件,这样就能绕过代码的限制。这⾥有个思考,是不是需要免杀技术?09-其他⽂件上传绕过⽅式⽂件头绕过常见的⽂件头标志如下:JPEG (jpg),⽂件头: FFD8FFPNG (png),⽂件头: 89504E47GIF (gif),⽂件头: 47494638HTML (html),⽂件头: 68746D6C3EZIP Archive (zip),⽂件头: 504B0304RAR Archive (rar),⽂件头: 52617221Adobe Acrobat (pdf),⽂件头: 255044462D312EMS Word/Excel (),⽂件头: D0CF11E0⼤⼩写绕过str_replace⼤⼩写敏感双写绕过0X04-⽂件上传修复建议通过⽩名单的⽅式判断⽂件后缀是否合法对上传⽂件进⾏重命名0X05-解析漏洞01-IIS解析漏洞当建⽴*.asa,*.asp格式的⽂件夹时,其⽬录下的任意⽂件都将被IIS当做asp⽂件来解析当⽂件为*.asp;时,IIS同样会以ASP脚本来执⾏02-Apache解析漏洞Apache解析⽂件时,当碰到不认识的扩展名,将会从后往前解析,知道碰到认识的扩展名为⽌,如果都不认识,则会暴露其源代码。Apache安装⽬录下"/conf/"有其可以识别的扩展名列表03-PHP CGI解析漏洞在PHP的配置⽂件中有⼀个关键的选项: cgifi: x_ pathinfo。 这个选项在某些版本中默认是开启的,在开启时访问URL,⽐如: ht:///, 是不存在的⽂件,所以PHP将会向前递归解析,于是造成了解析漏洞,可以说此漏洞与Nginx关系并不是很⼤,但由于Nginx与PHP配合很容易造成这种解析漏洞,所以PHPCGI漏洞常常被认为是Nginx解析漏洞。0X06-常见⽊马制作⼀、⼩马⼀句话⽊马也称为⼩马,即整个shell代码量只有⼀⾏,⼀般为系统执⾏函数PHP: ASP: <%eval request("shell")%>: <%@ Page Language="Jscipt"%><%eval(["shell"],"unsafe");%>⼆、⼤马代码量和功能⽐⼩马多,⼀般会进⼊⼆次编码加密,防⽌被防⽕墙/⼊侵系统检测到三、图⽚马⼀般直接上传⽊马⽂件都会被过滤拦截,这时候就需要⽤到图⽚马copy 图⽚.jpg/b + ⽊马.php/a ⽊马.jpg

/b 表⽰以⼆进制⽅式打开

/a 表⽰以ASCII⽅式打注意:要放在同⼀⽬录下,在⽬录⾥⾯敲CMD四、原理以PHP的⼀句话⽊马为例,利⽤PHP的eval函数,将传⼊的语句作为PHP语句执⾏。该⽊马以POST⽅式传参,eval语句将参数以PHP语句执⾏,shell为变量,接收语句,⽤⼯具连接的时候称之为密码。连接⼯具:菜⼑,蚁剑,冰蝎等等。0X07-DVWA⽂件上传⼀、low没有任何过滤,直接上传⽂件可以上传⽂件-⽂件可以被执⾏-知道⽂件上传路径-为所欲为上传⽊马⽂件成功-蚁剑连接成功连接⼆、mediun上传PHP⽂件类型的⽊马会报错后缀改成png/jpg格式上传抓包放包⽹站⽬录下会出现,上传的是,在抓到的包⾥⾯修改蚁剑连接,为所欲为00截断绕过:⽊马⽂件修改为如图模式上传-在.php处点击空格-在选中空格20改为00-点击apply change应⽤发送此时⽹站根⽬录下会出现⽂件蚁剑连接-为所欲为与⽂件包含⼀起应⽤:上传⽂件⽹站根⽬录会出现图⽚蚁剑连接添加-浏览⽹站添加cookie(⽂件包含那⼀篇有)-连接成功-为所欲为

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689308417a228430.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信