1、客户端:js检查1、客户端检测绕过(javascript 检测) 首先观察到提示只允许上传图片文件,那么前端的查看代码,当页面发生改变时,会调用这个checkFileExt函数来检查上传的是不是图片,我们只需要在前端将checkFileExt函数删除,就能上传一个一个非图片文件。
再火狐中打开,删除函数,选择TXT文件。
会显示保存路径,可通过路径进入上传的木马。
2、先改成JPG图片格式,到抓包已经过检查,在数据包中在改成PHP
选择之后开始上传 绕过:抓包改类型 改上传类型
2、服务器端:
1、如在前端没有验证,在后端验证MIME。(MIME不校验文件扩展名和内容)服务端验证绕过(MIME 类型检测)
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。
选择文件之后,开始上传。
用brup suite 抓包。将MIME改为 image/png 即可。
三、代码注入绕过--getimagesize()
2、文件包含漏洞之文件上传漏洞利用 (图片带木马)
方法一:直接伪造头部GIF89A(代表图片开头) (需要问)
在木马前加图片头。
方法二:CMD方法,copy /b test.png+1.php muma.png (/d 相当于合并两个文件)(木马插入图片末尾)结合包含漏洞执行PHP。
方法三:直接使用工具增加备注写入一句话木马。(木马随机插)(工具在VS漏洞利用里面)
图片拖入工具,点击OK。结合包含漏洞执行PHP。
pass-17: