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的几种常见姿势的主要内容,如果未能解决你的问题,请参考以下文章

go并发写入文件的几种姿势

备战520|Python花式表白的几种姿势

备战520|Python花式表白的几种姿势

SQL注入防御与绕过的几种姿势

Linux下反弹shell的几种姿势

创建.NET程序Dump的几种姿势