pikachu--文件上传
2021-04-13 22:25
标签:判断 input 联网 一句话 src sof 自动 临时 问题 文件上传 很多网站注册的时候需要上传头像、上传附件等等。 当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式进行重命名后存储在指定的目录。 如果说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击着可能会上传一些恶意的文件,比如一句话木马,从而来控制整个web后台。 文件上传漏洞测试流程: $_FILES()函数 通过使用PHP的全局数组$_FILES,可以从客户计算机向远程服务器上传文件 第一个参数是表单的input name,第二个下标可以是”name”,”type”,”size”,”tmp_name”,”error” $_FILES[“file”][“name”] 名称、类型、大小、存储在服务器的文件临时副本名称、由文件上传导致的错误代码 文件上传漏洞防范措施: 1.不要在前端使用js实施上传限制策略 2.通过服务端对上传文件进行限制 1>进行多条件组合检查:比如文件的大小,路径,扩展名,文件类型,文件完整性 2>对上传的文件在服务器上存储时进行重命名(制定合理的命名规则) 3>对服务器端上传文件的目录进行权限控制(比如:只读),限制执行权限带来的危害 回到pikachu 客户端check板块 我们上传一句话木马 a.php文件 显示 我们打开web控制台 修改代码
改为onchange=”” 对这个不做限定
文件上传成功
我们接着访问这个文件 利用一句话木马里的参数进行相应的操作
得到想要的信息
MIME type (服务端check) MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。 每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。 常见的MIME类型(通用型): 超文本标记语言文本 .html text/html xml文档 .xml text/xml XHTML文档 .xhtml application/xhtml+xml 普通文本 .txt text/plain RTF文本 .rtf application/rtf PDF文档 .pdf application/pdf Microsoft Word文件 .word application/msword PNG图像 .png image/png GIF图形 .gif image/gif JPEG图形 .jpeg,.jpg image/jpeg 回到pikachu平台 我们抓包 改包 首先上传一个图片 接着上传一句话木马 a.php 按照图片的格式改到一句话木马文件的浏览器头那里
发送到repeater 修改类型 成功 getimagesize() getimagesize()返回结果中有文件大小和文件类型,如果用这个函数来获取类型,从而判断是否是图片的话,会存在问题 但是我们可以绕过,因为图片头可以被伪造 我们可以制作一个恶意代码的图片 图片木马的制作: 方法一:直接伪造头部GIF89A 方法二:CMD:copy /b 正常图片.png + 恶意代码.php 合成新的图片.png 方法三:使用GIMP(开源的图片修改软件),通过增加备注,写入执行命令 回到pikachu 我们使用第二种方法 合出来一个带有恶意代码的图片 上传gyx.png 成功上传 我们获取到一个路径 但实际上合并起来的图片里的恶意代码是不被执行的,需要结合文件下载漏洞修改? Filename 改成我们获取的路径下面,在尝试加几个../,就可以执行我们的恶意代码了 具体的操作可以参考一个下面的视频操作 https://www.bilibili.com/video/av63517752?p=44 pikachu--文件上传 标签:判断 input 联网 一句话 src sof 自动 临时 问题 原文地址:https://www.cnblogs.com/7-58/p/12382243.html