Upfile的几种常见姿势
Posted hzk001
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Upfile的几种常见姿势相关的知识,希望对你有一定的参考价值。
记录一下文件上传的常见姿势,更全面的可以做upload-labs。
实验环境:win2003 phpstudy
实验平台:upfile
一、准备上传的一句话木马
eval函数将接受的字符串当做代码执行
二、实验步骤
2.1 无防护上传
可以直接上传一句话木马文件
可以看到已经成功上传,并返回了相关信息。
可以使用菜刀连接
实际上权限已经有很多,但是也可以用一句话木马上传大马进行其他操作。
?
2.2 前台脚本检测扩展名
这里增加在前端增加了限制,如果直接上传php文件会被拒绝
可以先把文件改成允许上传的格式,比如jpg格式,
然后进行抓包,通过前端的检测之后再进行改包:
这样上传成功了,再通过工具连接:
2.3 服务器验证Content-type检测文件类型
这样直接上传也是不能通过的:
因为检测的地方是Content-type,所以抓包替换成可以上传的type就可以了:
可以看到,文件本身没有变化,但是最后也成功上传了。
?
2.4 服务器端验证文件扩展名
这样后端进行验证,利用办法是修改文件上传的扩展名,结合解析漏洞利用。
首先对上传的php文件进行抓包:
最后修改不再黑名单内的扩展名。成功上传,但是要配合阿帕奇的解析漏洞(2.0-2.2版本),否则不能执行成php文件
?
也可以根据情况使用00截断(这里是举例记录):
首先文件改名为1.phpp.jpg
然后上传时候进行抓包:
把phpp的第二个p的16进制改成00,这样p就变成了空格
这样上传成功后变成了1.php空.jpg
这样就能执行php文件,但是这样上传的时候如果后端用函数也检测到时php文件,那么也上传不成功,所以根据情况利用。
?
2.5 服务端验证图片文件头
这种防护方式会对文件内容进行检测:
如果只是修改文件的扩展名,也是不能绕过检测,所以这时候利用的方式就是用真的图片加上一句话木马构造成图片马上传(可以直接txt格式打开图片或者利用命令行),然后再根据场景把图片还原成php文件进行执行。
以上是关于Upfile的几种常见姿势的主要内容,如果未能解决你的问题,请参考以下文章