在文件上传的功能处,若服务端脚本语言未对上传的文件进行严格验证和过滤,导致恶意用户上传恶意的脚本文件时,就有可能获取执行服务端命令的能力,这就是文件上传漏洞。 文件上传漏洞对Web应用来说是一种非常严重的漏洞。一般情况下,Web应用都会允许用户上传一些文件,如头像、附件等信息,如果Web应用没有对用户上传的文件进行有效的检查过滤,那么恶意用户就会上传一句话木马等Webshell,从而达到控制Web网站的目的
绕过方式:
例: 1.
<?php @eval($_POST['cmd']); ?>
(1)php的代码要写在<?php ;?>里面,服务器才能认出来这是php代码,然后才去解析。 (2)@符号的意思是不报错,即使执行错误,也不报错。
(3)eval() 函数在 PHP 中用于执行字符串中的代码并返回执行结果。该函数接受一个字符串作为参数,该字符串包含要执行的 PHP 代码(在此代码中为$_POST[cmd]),然后执行该代码,并且可以返回结果
该函数对php语法要求严格,所传入语句必须以" ; "号结尾
2.eval("echo 'a'");其实就等于直接 echo 'a';再来看看<?php eval($_POST['pw']); ?>首先,用post方式接收变量pw,比如接收到了:pw=echo 'a';这时代码就变成<?php eval("echo 'a';"); ?>。
3.图片木马 将一句话木马代码附到一张图片中
使用cmd中copy指令来实现,在upload靶场有用到。
因篇幅问题不能全部显示,请点此查看更多更全内容