文件上传漏洞和攻击方法
文件上传的攻击方法
头像上传、修改上传,文件编辑器中文件上传、图片上传、媒体上传。
举例:通过抓包上传恶意文件进行测试,上传后缀名为asp、php、aspx等动态语言脚本,查看上传时返回的信息,判断是否能直接上传,如果不能直接上传,再进行此时上传突破。(例如:上传文件的时候只允许图片格式 的后缀,但修改文件却没有限制后缀名,图片文件就可以修改成php文件,就有可能访问这个文件的URL(网址)直接getshell(获取),控制网站。)
常见的网站文件名后缀
可执行脚本文件后缀名,可以被网站目录解析
asp
asa
cdx
cer
php
aspx
ashx
jsp
php3
php.a
shtml
phtml
有些网站会对asp php进行过滤转成空可以用aspasp asaspp phpphp 这些后缀名进行欺骗
任意文件上传漏洞
文件直接上传漏洞,攻击者直接上传恶意脚本文件到网站存放的目录,且这个目录可解析动态脚本语言,攻击者能够直接获取网站权限,甚至进一步权限提升,控制服务器。
.任意文件上传代码分析
直接获取文件名 上传的临时文件移动到 hackable/uploads目录
<?php
if( isset( $_POST[ 'Upload' ] ) ) {
// Where are we going to be writing to?
//上传路径 //任何文件都行,未限制上传文件后缀[name]分析出
$target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
$target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );
//获取上传的文件名
// Can we move the file to the upload folder?
//将上传的临时文件上传到上边的路径下
if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
// No 上传失败
echo '<pre>Your image was not uploaded.</pre>';
}
else {
// Yes!上传成功,返回上传的路径
echo "<pre>{$target_path} succesfully uploaded!</pre>";
}
}
?>
示例一:
1、上传phpinfo()查看服务器的一些php信息
2、需要先将dvwa的安全设置为低(不限制上传文件的格式,任意文件上传)
3、登录dvwa找到File Upload 上传上边的.php文件
4、上传成功
5、通过以下网址查看一些php信息,不带有攻击性
http://localhost/dvwa-master/hackable/uploads/s.php
示例二:
1、上传恶意代码指令,获取网站目录,(网站后门)
2、通过上传的后门运用中国蚁剑进行连接
3、可以查看网站目录信息,如果权限够的话可以进行网站信息修改