对于文件上传漏洞的初步学习
初步文件上传漏洞的学习
一句话木马和初步绕过
首先,要进行文件上传漏洞就要有可上传的地方,之后在这个交互口进行上传,我现在学习的是一句话木马的上传
用 <?php @eval($_POST['cmd']); ?>进行上传,这是一个经典的一句话木马,其中的cmd就是密码,应该是用于控制和获取整个网站的目录以及文件。
首先,如果网站没有对文件进行滤过操作,那么直接上传文件,之后用中国蚁剑这样的软件进行操作。
具体如下,先准备好要上传的文件,在网站的文件上传区域上传文件
但是正常的网站都会对文件名做一个过滤,就像这样
这个时候,我们可以采取多个后缀的方式去绕过,比如将文件名改为wjsc.php.jpg这个时候系统会认为这个是一个jpg文件,就会将这个文件发送给服务器。
之后使用中国蚁剑就可以进入数据库,注意这里的url是要用网站的网址加上我加你上传的地址,就像下面这样。
接下来,讲一下我已经学习的几种绕过方法
1.多重后缀
就像我上面演示的那样,在前端存在过滤时,可以用多个后缀去绕过,之后在进行bp抓包,将文件名重新修改为php
如果在后端存在判断的话,可以在上传文件后,使用burpsuite进行抓包,然后将文件名进行修改,如果对面是从前面开始读取文件名,那么会在第一个顿号后进行判断,所以就可以把文件名修改成jpg.php的格式,这样可以迷惑后端,又可以让服务器识别为php文件,然后去执行。
就像下面这个题目
它明确告诉不要php后缀,说明后端存在过滤,这个时候就可以这样更改
2.大小写绕过
可以将php后缀改为PHP,大部分下二者不等,但是在window的服务器中可以执行,注意,网站的操作系统必须是window,不能是linux
3.更改文件类型
就是在前端将php文件传给后端过程中进行抓包,将Content-Type进行修改
本来是application/octet-stream类型,将它修改为image/jpeg类型,或者image/png类型,在这里面
- application/octet-stream 代表是php文件
- mage/jpeg 代表是jpg文件
- image/png代表是png文件