为什么存在文件上传漏洞。。。
:上传文件时,服务器未对,上传文件的后缀做出具体规范。导致可以上传任意的文件类型。
JS 绕过检测攻击
上传文件时javascirpt在客户端会对后缀名进行检测。这时候可以在burp中抓包修改后缀,绕过客户端的js检测。
文件后缀 绕过检测攻击。
文件后缀时服务器中的代码,对文件后缀做出了一些检测和限制。但是apache会对一些文件的后缀名允许上传。例如http.conf。如果配置中有一下代码,则能够解析成php和html文件。
所以可以上传一个phtml文件,apache会将其·解析成php文件。
apache解析文件时会从右到左解析,因此可以上传php.xxx类型的文件,xxx解析失败,就会将其作为php文件进行解析。
文件类型绕过攻击
当客户端上传文件时,通过burp抓包,当上传一个php格式的文件时,可以看到数据包中有一个 Content-Type的值是 application/octet-stream,而上传jpg格式的文件时,数据包的Content-Type的值时imgage/jpeg。
有可能,服务器代码是通过Content-Type的值来判断文件的类型,那么就存在文件绕过漏洞的可能,因为Content-Type的值可以通过客户端修改,所以: 上传文件时在burpsuite中将Content-Type的值修改为imgage/jpeg,就可以绕过服务器端的检测!
图片码!!(利用工具,将图片转给16进制,在进制中插入php代码)
修改hex值,php的hex值为 70 68 70 在burp中找到php的hex值,并在后边第一个字符的hex值改为00 实现阶段效果,可以成功上传成功php代码。