文件上传漏洞
1、概念:
首先文件上传本来是一种正常的操作,基本每一个网站都需要有文件上传(头像等)。但是这种行为却给服务器带来了一些安全隐患,比如当我们上传的文件不是要求的文件,而是一些病毒或者包含病毒的文件的时候,就会对服务器、网站受到毁灭性的破坏。
2、低级别的文件上传漏洞:
也就是当我们后端的程序员编写程序的时候对上传的文件没有做任何检查、过滤就把文件上传到服务器了,该文件就可能对服务器造成破坏。在低级别的文件上传漏洞时,我们可以上传任意类型的文件,包括程序。比如说上传一句话木马等。
案例:后台需要要求上传一个图片,但是由于没有做安全检查过滤,所以黑客上传了一个一句话木马程序。
<?php@eval(_REQUEST[‘pass’]);?> //eval 函数里面的参数必须是php的函数 如info()函数。
<?php@eval(_POST[‘pass’]);?>
<?php@system(_POST[‘pass’]);?> //system 函数里面的参数必须是系统的命令 如 ls cat 等等。
在浏览器输入命令时:pass作为参数,参数值为我们需要的函数或命令。
在菜刀连接时:pass为连接密码。
将一句话木马文件上传到服务器后,那么我们就能通过远程来连接了。
3、中级别文件上传漏洞:
也就是在低级别的文件上传漏洞上对文件的类型做了判断,也就是说在服务器端做了过滤,只有满足相应的文件类型才能成功上传文件。MIME:文件类型,这里不是指文件的后缀,而是指文件时哪一种文件类型。这时虽然我们不能将我们的木马程序上传到后端,但是我们可以修改我们的文件请求的类型,将我们的木马程序请求类型改为图片的请求类型即可成功上传。
具体操作:使用代理。使用浏览器的代理功能,通过代理软件修改我们的木马文件的类型即可。
4、高级别的文件上传漏洞:
中安全级别只是对上传的文件做了文件的类型判断,所以依然能够让黑客有机可乘。而高安全级别的就是在做了文件类型的判断的同时再对文件的后缀名进行判断。比如:上传的的图片后缀名必须为jpg,png等等,其他的后缀名一律不得上传。
5、文件漏洞的防御:
①对上传的文件进行类型判断
②对上传的文件进行后缀判断
③对上传的文件进行大小限制
④对上传的文件进行重命名存放
⑤物理防御:WAF等。