大部分的网站和应用系统都有上传功能,而程序员在开发文件上传功能时,并未考虑文件格式后缀的合法性校验或者是否只在前端通过js进行后缀检验。
这时攻击者可以上传一个与网站脚本语言相对应的恶意代码动态脚本,例如(jsp、asp、php、aspx文件后缀)到服务器上,从而访问这些恶意脚本中包含的恶意代码,进行动态解析最终达到执行恶意代码的效果,进一步影响服务器安全。
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。一般都是指“上传Web脚本能够被服务器解析”的问题。
漏洞危害可能会导致用户信息泄露,被钓鱼,甚至使攻击者可以直接上传WebShell到服务器,进而得到自己想要的信息和权限。最终达到对数据库执行、服务器文件管理、服务器命令执行等恶意 *** 作,甚至完全控制服务器系统。
webshell:运行在web应用之上的远程控制程序 。 webshell分为大马、小马等。功能简易的webshell称为小马,拥有较完整功能的webshell,称为大马。
一句话木马:
漏洞利用
文件上传漏洞利用条件:
(1)能够成功上传木马。
(2)上传的木马能够被web容器解析执行,所以上传路径要在web容器覆盖范围内。
(3)用户能够访问上传的木马,所以得知道上传的木马准确路径。
将一句话木马上传至服务器,并能成功访问。(页面空白访问成功)
通过hackbar对变量a进行传值,即可完成服务端命令执行。
还可以执行系统命令。
此外,还可以配合如菜刀,蚁剑等工具使用。
打开蚁剑,选择添加数据。
输入好参数后测试连接,然后添加。
文件上传绕过了解了漏洞的利用方式,那么如何绕过检测向服务器上传木马文件。
客户端JavaScript检测开发者在前端使用JavaScript做了白名单验证,如果文件名不符合规则那么就不允许被上传。
JavaScript代码: