当前位置:首页 » 文件传输 » 上传漏洞
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

上传漏洞

发布时间: 2022-04-12 18:35:00

❶ 文件上传漏洞成因是什么

预防文件上传漏洞
1.为了防范用户上传恶意的可执行文件和脚本,以及将文件上传服务器当做免费的文件存储服务器使用,需要对上传的文件类型进行白名单(非黑名单,这点非常重要)校验,并且限制上传文件的大小,上传的文件,需要进行重新命名,使攻击者无法猜测到上传文件的访问路径。

2.对于上传的文件来说,不能简单的通过后缀名称来判断文件的类型,因为恶意攻击可以将可

执行文件的后缀名称改成图片或者其他的后缀类型,诱导用户执行。因此,判断文件类型需

要使用更安全的方式。

3.很多类型的文件,起始的几个字节内容是固定的,因此,根据这几个字节的内容,就可以确

定文件类型,这几个字节也被称为魔数(magic number)。(将文件转换成二进制)

❷ 文件上传漏洞攻击方法有什么

文件上传漏洞是什么?怎样防御文件上传漏洞攻击?文件上传漏洞是web安全中经常利用到的一种漏洞形式。这种类型的攻击从大的类型上来说,是攻击 数据与代码分离原则 的一种攻击。
一些web应用程序中允许上传图片,文本或者其他资源到指定的位置,文件上传漏洞就是利用这些可以上传的地方将恶意代码植入到服务器中,再通过url去访问以执行代码
造成文件上传漏洞的原因是
对于上传文件的后缀名(扩展名)没有做较为严格的限制
对于上传文件的MIMETYPE 没有做检查
权限上没有对于上传的文件的文件权限,(尤其是对于shebang类型的文件)
对于web server对于上传文件或者指定目录的行为没有做限制
下面就闲话一些文件上传漏洞的防御方式和攻击者的绕过方式
1.前端限制
function check(){
var filename=document.getElementById("file");
var str=filename.value.split(".");
var ext=str[str.length-1];
if(ext=='jpg'||ext=='png'||ext=='jpeg'||ext=='gif'){
return true;
}else{
alert("这不是图片!")
return false;
}
return false;
}
在表单中使用onsumbit=check()调用js函数来检查上传文件的扩展名。这种限制实际上没有任何用处,任何攻击者都可以轻而易举的破解。只能用于对于用户完全信任的情况下,很难称之为一种安全措施只能称之是一种防止用户误操作上传的措施,
反制:
随便的编辑一下页面/用burpsuite/写个小脚本就可以突破之,无须多言
2.检查扩展名
顾名思义,就是在文件被上传到服务端的时候,对于文件名的扩展名进行检查,如果不合法,则拒绝这次上传
在这里,还有一点是值得一提的,在检查扩展名是否合法的时候,有两种策略
黑名单策略,文件扩展名在黑名单中的为不合法,示例代码
$postfix = end(explode('.','$_POST['filename']);
if($postfix=='php'||$postfix=='asp'||$postfix=='sh'){
echo "invalid file type";
return;
}
白名单策略,文件扩展名不在白名单中的均为不合法
$postfix = end(explode('.','$_POST['filename']);
if($postfix=='jpg'||$postfix=='png'||$postfix=='gif'){
//save the file and do something next
} else {
echo "invalid file type";
return;
}
白名单策略是更加安全的,通过限制上传类型为只有我们接受的类型,可以较好的保证安全,因为黑名单我们可以使用各种方法来进行注入和突破
反制
在一些 webserver 中,存在解析漏洞
1.老版本的IIS中的目录解析漏洞,如果网站目录中有一个 /.asp/目录,那么此目录下面的一切内容都会被当作asp脚本来解析
2.老板本的IIS中的分号漏洞:IIS在解析文件名的时候可能将分号后面的内容丢弃,那么我们可以在上传的时候给后面加入分号内容来避免黑名单过滤,如 a.asp;jpg
3.旧版Windows Server中存在空格和dot漏洞类似于 a.php. 和 a.php[空格] 这样的文件名存储后会被windows去掉点和空格,从而使得加上这两个东西可以突破过滤,成功上传,并且被当作php代码来执行
4.nginx空字节漏洞 xxx.jpg%00.php 这样的文件名会被解析为php代码运行
5.apache的解析漏洞,上传如a.php.rar a.php.gif 类型的文件名,可以避免对于php文件的过滤机制,但是由于apache在解析文件名的时候是从右向左读,如果遇到不能识别的扩展名则跳过,rar等扩展名是apache不能识别的,因此就会直接将类型识别为php,从而达到了注入php代码的目的
3.检查HTTP Header中的Content-Type
HTTP协议规定了上传资源的时候在Header中加上一项文件的MIMETYPE,来识别文件类型,这个动作是由浏览器完成的,服务端可以检查此类型不过这仍然是不安全的,因为HTTP header可以被发出者或者中间人任意的修改,不过加上一层防护也是可以有一定效果的
反制
使用各种各样的工具(如burpsuite)强行篡改Header就可以,太容易将header中的
Content-Type: application/php
或者其他类型
改为
Content-Type: image/jpg
Content-Type: image/png
Content-Type: text/plain
等这些web程序允许的泪洗改附上常用的MIMETYPE表
text/plain(纯文本)
text/html(HTML文档)
text/javascript(js代码)
application/xhtml+xml(XHTML文档)
image/gif(GIF图像)
image/jpeg(JPEG图像)
image/png(PNG图像)
video/mpeg(MPEG动画)
application/octet-stream(二进制数据)
application/pdf(PDF文档)
application/(编程语言) 该种语言的代码
application/msword(Microsoft Word文件)
message/rfc822(RFC 822形式)
multipart/alternative(HTML邮件的HTML形式和纯文本形式,相同内容使用不同形式表示)
application/x-www-form-urlencoded(POST方法提交的表单)
multipart/form-data(POST提交时伴随文件上传的表单)
4.分析文件头内容来检查文件类型
与方法2不同,还有一种检查类型的方式是使用对于文件内容的验证机制,这种方法利用的是每一个特定类型的文件都会有不太一样的开头或者标志位。可以通过比如php的exif_imagetype()函数,一个通过这种方法来过滤的示例代码如下:
if (! exif_imagetype($_FILES['uploadedfile']['tmp_name'])) {
echo "File is not an image";
return;
}
也可以自己编写函数来进行识别,图片文件通常有称作幻数的头字节,我们来看一下几种图片文件的幻数:
(注意!下面是二进制而不是文本格式的数据)
JPG
FF D8 FF E0 00 10 4A 46 49 46
GIF
47 49 46 38 39 61
(相当于文本的GIF89a)
PNG
89 50 4E 47
通过检查头几位字节,可以分辨是否是图片文件
如果是其他类型的二进制文件,也有响应的头字节,如下表
反制
给上传脚本加上相应的幻数头字节就可以,php引擎会将
(一般不限制图片文件格式的时候使用GIF的头比较方便,因为全都是文本可打印字符。)
GIF89a
do_something();
?>
如果是其他类型的二进制文件,也有响应的头字节,如下表
格式
文件头
TIFF (tif)
49492A00
Windows Bitmap (bmp)
424D
CAD (dwg)
41433130
Adobe Photoshop (psd)
38425053
Rich Text Format (rtf)
7B5C727466
MS Word/Excel (xls.or.doc)
D0CF11E0
MS Access (mdb)
5374616E64617264204A
ZIP Archive (zip),
504B0304
RAR Archive (rar),
7221
Wave (wav),
57415645
AVI (avi),
41564920
Real Media (rm),
2E524D46
MPEG (mpg),
000001BA
MPEG (mpg),
000001B3
Quicktime (mov),
6D6F6F76
Adobe Acrobat (pdf),
255044462D312E
Windows Media (asf),
3026B2758E66CF11
MIDI (mid),
4D546864
5.限制Web Server对于特定类型文件的行为
导致文件上传漏洞的根本原因在于服务把用户上传的本应是数据的内容当作了代码,一般来说,用户上传的内容都会被存储到特定的一个文件夹下,比如我们很多人习惯于放在 ./upload/ 下面要防止数据被当作代码执行,我们可以限制web server对于特定文件夹的行为。
大多数服务端软件都可以支持用户对于特定类型文件的行为的自定义,以Apache为例:
在默认情况下,对与 .php文件Apache会当作代码来执行,对于 html,css,js文件,则会直接由HTTP Response交给客户端程序对于一些资源文件,比如txt,doc,rar等等,则也会以文件下载的方式传送的客户端。我们希望用户上传的东西仅仅当作资源和数据而不能当作代码
因此可以使用服务器程序的接口来进行限制
以Apache为例,我们可以利用 .htaccess 文件机制来对web server行为进行限制
在这里插一句,如果不是专门的文件下载目录,请务必关掉文件夹浏览的权限,以防止嗅探和可能的越权,也是使用.htaccess文件,在其中加上一句
Options All -Indexes
即可。
禁止脚本执行有多种方式可以实现,而且分别有不同的效果,我们分别来看一下
1.指定特定扩展名的文件的处理方式,原理是指定Response的Content-Type可以加上如下几行
AddType text/plain .pl .py .php
这种情况下,以上几种脚本文件会被当作纯文本来显示出来,你也可以换成其他的Content-Type
2.如果要完全禁止特定扩展名的文件被访问,用下面的几行
Options -ExecCGI
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi识别
在这种情况下,以上几种类型的文件被访问的时候,会返回403 Forbidden的错误
3.也可以强制web服务器对于特定文件类型的处理,与第一条不同的是, 下面的方法直接强行让apache将文件识别为你指定的类型,而第一种是让浏览器
ForceType text/plain
看代码就可以很明白的知道,符合上面正则的全部被认为是纯文本,也可以继续往里面加入其他类型。
4.只允许访问特定类型的文件
order deny,allow
deny from all
在一个上传图片的文件夹下面,就可以加上这段代码,使得该文件夹里面只有图片扩展名的文件才可以被访问,其他类型都是拒绝访问。
这又是一个白名单的处理方案
永远记得,白名单是最有保障的安全措施

可以通过 move_uploaded_file 函数把自己写的.htaccess 文件上传,覆盖掉服务器上的文件,来定义文件类型和执行权限如果做到了这一点,将获得相当大的权限。

❸ 文件上传漏洞有哪些挖掘思路

文件上传漏洞作为获取服务器权限最快的方式,虽然相关资料很多,但很多人对上传校验方式、如何针对性绕过检测、哪种上传和解析的场景会产生危害等还是比较模糊。本文作一些阐述,然后补充一些除了上传webshell的其他非常规挖掘姿势,包括XSS、重定向、Dos、CSRF等等。
1、基础知识:
要深入了解文件上传,必须了解上传属性、常见文件的结构、图形处理函数等内容。
1) 报文特点:
观察文件上传报文的特点:
Header中Content-Type特征有二:
1.multipart/form-data(form表单的enctype属性,规定为二进制数据)
2.boundary字符串(作用为分隔符,以区分POST数据)
POST内容特征有五:
1.Content-Disposition:form-data
2. name:input表单名
3.filename:文件名
4.Content-Type:定义文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件;
5.boundary:Content-Type的值前面加了两个---

2) 常见校验规则
现存常用的上传校验规则无非下面几类:
1.客户端javascript校验(后缀名)
2.文件头content-type字段校验(image/gif):附带参数
4.后缀名黑/白名单校验:扩展名
5.文件内容头校验:GIF89a
6.文件内容校验:文件信息,二次渲染
7.自定义正则校验
3)一个澄清
文件上传和文件解析是两个过程,即使我们上传的是php文件,但解析为图片,访问php文件会显示“图片无法显示”;或者我们上传的是jpg文件,但里面混有shell脚本,若被解析为php文件也会执行;又或者上传处没法绕过检测,只能上传jpg文件,但在其他功能处存在文件包含等功能,仍可执行成功。
还是回到安全的本质,上传是“输入”,那文件解析就是“输出”,任何漏洞挖掘都需要结合输入+输出。

2、绕过技巧:
这里汇总一些实战中较常用的绕过技巧:
1)后缀名黑名单
以下替换后缀也可以解析为shell:
php:.phtml,.phpt,.php3,.php3p
asp:.aspx,asmx,ashx,web.config
perl:.pl,.pm,.cgi,.lib
jsp:.jspx,.jsw,.jsv,.jspf
Coldfusion:.cfm,.cfml,.cfc,.dbm
另外可以配合操作系统的文件命名规则:
.php.,.php空格,.php:1.jpg,.php::$DATA等
这些后缀的文件会被windows系统自动去掉不符合规则符号后面的内容,从而只留下.php。
2)后缀名白名单
除了结合各种服务器解析特性,较常用的是Null Byte Injection空字节注入,插入空字节值的原因是某些应用程序服务器脚本语言使用c/c++库来检查文件名和内容。在C/C ++中,一行以/00结尾或称为NullByte。因此,只要解释器在字符串的末尾看到一个空字节,就会停止读取,认为它已经到达字符串的末尾。
如,我们将要上传的Happy.jpg的名称更改为Happy.phpA.jpg,然后上传文件,在Burp中捕获请求,切换到Hex视图。在字符串视图中找到文件名。查看相应的Hex表,并将41('A')替换为00(为空字节)。结果字符串变为Happy.php(空).jpeg。由于php解释器在内部使用C语言库,它将停止读取Happy.php后的文件名,文件将保存为Happy.php。
另一种绕过白名单的方法是使用双后缀:shell.php.jpg。

❹ 常见的漏洞类型有哪些

一、SQL 注入漏洞
SQL 注入攻击( SQL Injection ),简称注入攻击、SQL 注入,被广泛用于非法获取网站控制权, 是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL 指令的检查,被数据库误认为是正常的SQL 指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。

通常情况下, SQL 注入的位置包括:

(1)表单提交,主要是POST 请求,也包括GET 请求;

(2)URL 参数提交,主要为GET 请求参数;

(3)Cookie 参数提交;

(4)HTTP 请求头部的一些可修改的值,比如Referer 、User_Agent 等;

(5)一些边缘的输入点,比如.mp3 文件的一些文件信息等。

SQL 注入的危害不仅体现在数据库层面上, 还有可能危及承载数据库的操作系统;如果SQL 注入被用来挂马,还可能用来传播恶意软件等,这些危害包括但不局限于:

(1)数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。作为数据的存储中心,数据库里往往保存着各类的隐私信息, SQL 注入攻击能导致这些隐私信息透明于攻击者。

(2)网页篡改:通过操作数据库对特定网页进行篡改。

(3)网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。

(4)数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被篡改。

(5)服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。

(6)破坏硬盘数据,瘫痪全系统。

解决SQL 注入问题的关键是对所有可能来自用户输入的数据进行严格的检查、对数据库配置使用最小权限原则。通常使用的方案有:

(1 )所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL 语句中。当前几乎所有的数据库系统都提供了参数化SQL 语句执行接口,使用此接口可以非常有效的防止SQL 注入攻击。

(2 )对进入数据库的特殊字符( '"\<>&*; 等)进行转义处理,或编码转换。

(3 )确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int 型。

(4)数据长度应该严格规定,能在一定程度上防止比较长的SQL 注入语句无法正确执行。

(5)网站每个数据层的编码统一,建议全部使用UTF-8 编码,上下层编码不一致有可能导致一些过滤模型被绕过。

(6)严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。

(7)避免网站显示SQL 错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。

(8)在网站发布之前建议使用一些专业的SQL 注入检测工具进行检测,及时修补这些SQL 注入漏洞。

二、跨站脚本漏洞
跨站脚本攻击( Cross-site scripting ,通常简称为XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、窃取密码、传播恶意代码等攻击。XSS 攻击使用到的技术主要为HTML 和Javascript ,也包括VBScript和ActionScript 等。XSS 攻击对WEB 服务器虽无直接危害,但是它借助网站进行传播,使网站的使用用户受到攻击,导致网站用户帐号被窃取,从而对网站也产生了较严重的危害。

XSS 类型包括:

(1)非持久型跨站: 即反射型跨站脚本漏洞, 是目前最普遍的跨站类型。跨站代码一般存在于链接中,请求这样的链接时,跨站代码经过服务端反射回来,这类跨站的代码不存储到服务端(比如数据库中)。上面章节所举的例子就是这类情况。

(2)持久型跨站:这是危害最直接的跨站类型,跨站代码存储于服务端(比如数据库中)。常见情况是某用户在论坛发贴,如果论坛没有过滤用户输入的Javascript 代码数据,就会导致其他浏览此贴的用户的浏览器会执行发贴人所嵌入的Javascript 代码。

(3)DOM 跨站(DOM XSS ):是一种发生在客户端DOM (Document Object Model 文档对象模型)中的跨站漏洞,很大原因是因为客户端脚本处理逻辑导致的安全问题。

XSS 的危害包括:

(1)钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者注入钓鱼JavaScript 以监控目标网站的表单输入,甚至发起基于DHTML 更高级的钓鱼攻击方式。

(2 )网站挂马:跨站时利用IFrame 嵌入隐藏的恶意网站或者将被攻击者定向到恶意网站上,或者弹出恶意网站窗口等方式都可以进行挂马攻击。

(3)身份盗用: Cookie 是用户对于特定网站的身份验证标志, XSS 可以盗取到用户的Cookie ,从而利用该Cookie 盗取用户对该网站的操作权限。如果一个网站管理员用户Cookie 被窃取,将会对网站引发巨大的危害。

(4)盗取网站用户信息:当能够窃取到用户Cookie 从而获取到用户身份使,攻击者可以获取到用户对网站的操作权限,从而查看用户隐私信息。

(5)垃圾信息发送:比如在SNS 社区中,利用XSS 漏洞借用被攻击者的身份发送大量的垃圾信息给特定的目标群。

(6)劫持用户Web 行为:一些高级的XSS 攻击甚至可以劫持用户的Web 行为,监视用户的浏览历史,发送与接收的数据等等。

(7)XSS 蠕虫:XSS 蠕虫可以用来打广告、刷流量、挂马、恶作剧、破坏网上数据、实施DDoS 攻击等。

常用的防止XSS 技术包括:

(1)与SQL 注入防护的建议一样,假定所有输入都是可疑的,必须对所有输入中的script 、iframe 等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP 请求中的Cookie 中的变量, HTTP 请求头部中的变量等。

(2 )不仅要验证数据的类型,还要验证其格式、长度、范围和内容。

(3)不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。

( 4)对输出的数据也要检查, 数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。

(5)在发布应用程序之前测试所有已知的威胁。

三、弱口令漏洞
弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。设置密码通常遵循以下原则:

(1)不使用空口令或系统缺省的口令,这些口令众所周之,为典型的弱口令。

(2)口令长度不小于8 个字符。

(3)口令不应该为连续的某个字符(例如: AAAAAAAA )或重复某些字符的组合(例如: tzf.tzf. )。

(4)口令应该为以下四类字符的组合,大写字母(A-Z) 、小写字母(a-z) 、数字(0-9) 和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。

(5)口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail 地址等等与本人有关的信息,以及字典中的单词。

(6)口令不应该为用数字或符号代替某些字母的单词。

(7)口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。

(8)至少90 天内更换一次口令,防止未被发现的入侵者继续使用该口令。

四、HTTP 报头追踪漏洞
HTTP/1.1 (RFC2616 )规范定义了HTTP TRACE 方法,主要是用于客户端通过向Web 服务器提交TRACE 请求来进行测试或获得诊断信息。当Web 服务器启用TRACE 时,提交的请求头会在服务器响应的内容(Body )中完整的返回,其中HTTP 头很可能包括Session Token 、Cookies 或其它认证信息。攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。该漏洞往往与其它方式配合来进行有效攻击,由于HTTP TRACE 请求可以通过客户浏览器脚本发起(如XMLHttpRequest ),并可以通过DOM 接口来访问,因此很容易被攻击者利用。防御HTTP 报头追踪漏洞的方法通常禁用HTTP TRACE 方法。

五、Struts2 远程命令执行漏洞
Apache Struts 是一款建立Java web 应用程序的开放源代码架构。Apache Struts 存在一个输入过滤错误,如果遇到转换错误可被利用注入和执行任意Java 代码。网站存在远程代码执行漏洞的大部分原因是由于网站采用了Apache Struts Xwork 作为网站应用框架,由于该软件存在远程代码执高危漏洞,导致网站面临安全风险。CNVD 处置过诸多此类漏洞,例如:“ GPS 车载卫星定位系统”网站存在远程命令执行漏洞(CNVD-2012-13934) ;Aspcms 留言本远程代码执行漏洞( CNVD-2012-11590 )等。

修复此类漏洞,只需到Apache 官网升级Apache Struts 到最新版本

六、框架钓鱼漏洞(框架注入漏洞)
框架注入攻击是针对Internet Explorer 5 、Internet Explorer 6 、与Internet Explorer 7 攻击的一种。这种攻击导致Internet Explorer 不检查结果框架的目的网站,因而允许任意代码像Javascript 或者VBScript 跨框架存取。这种攻击也发生在代码透过多框架注入,肇因于脚本并不确认来自多框架的输入。这种其他形式的框架注入会影响所有的不确认不受信任输入的各厂商浏览器和脚本。如果应用程序不要求不同的框架互相通信,就可以通过完全删除框架名称、使用匿名框架防止框架注入。但是,因为应用程序通常都要求框架之间相互通信,因此这种方法并不可行。因此,通常使用命名框架,但在每个会话中使用不同的框架,并且使用无法预测的名称。一种可行的方法是在每个基本的框架名称后附加用户的会话令牌,如main_display 。

七、文件上传漏洞
文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过Web 访问的目录上传任意文件,包括网站后门文件( webshell ),进而远程控制网站服务器。因此,在开发网站及应用程序过程中,需严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关目录的执行权限,防范webshell 攻击。

八、应用程序测试脚本泄露
由于测试脚本对提交的参数数据缺少充分过滤,远程攻击者可以利用洞以WEB 进程权限在系统上查看任意文件内容。防御此类漏洞通常需严格过滤提交的数据,有效检测攻击。

九、私有IP 地址泄露漏洞
IP 地址是网络用户的重要标示,是攻击者进行攻击前需要了解的。获取的方法较多,攻击者也会因不同的网络情况采取不同的方法,如:在局域网内使用Ping 指令, Ping 对方在网络中的名称而获得IP;在Internet 上使用IP 版的QQ直接显示。最有效的办法是截获并分析对方的网络数据包。攻击者可以找到并直接通过软件解析截获后的数据包的IP 包头信息,再根据这些信息了解具体的IP。针对最有效的“数据包分析方法”而言,就可以安装能够自动去掉发送数据包包头IP 信息的一些软件。不过使用这些软件有些缺点, 譬如:耗费资源严重,降低计算机性能;访问一些论坛或者网站时会受影响;不适合网吧用户使用等等。现在的个人用户采用最普及隐藏IP 的方法应该是使用代理,由于使用代理服务器后,“转址服务”会对发送出去的数据包有所修改,致使“数据包分析”的方法失效。一些容易泄漏用户IP 的网络软件(QQ 、MSN 、IE 等)都支持使用代理方式连接Internet ,特别是QQ 使用“ ezProxy ”等代理软件连接后, IP 版的QQ 都无法显示该IP 地址。虽然代理可以有效地隐藏用户IP,但攻击者亦可以绕过代理, 查找到对方的真实IP 地址,用户在何种情况下使用何种方法隐藏IP,也要因情况而论。

十、未加密登录请求
由于Web 配置不安全, 登陆请求把诸如用户名和密码等敏感字段未加密进行传输, 攻击者可以窃听网络以劫获这些敏感信息。建议进行例如SSH 等的加密后再传输。

十一、敏感信息泄露漏洞
SQL 注入、XSS、目录遍历、弱口令等均可导致敏感信息泄露,攻击者可以通过漏洞获得敏感信息。针对不同成因,防御方式不同。

❺ 文件上传漏洞如何搭建

文件上传是Web应用中比较常见的功能,用户经常会通过文件上传的功能分享照片、修改头像或上传附件等操作;文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力;文件上传本身是一个网站正常的业务需求,但如果文件在上传之后,服务器端没有妥善的处理,就会导致严重的后果。简单写一个php上传代码演示php上传漏洞。

1.首先搭建phpstudy的安装环境,在phpstudy网站根目录建立php演示文件夹,放入php文件上传代码。

2.php文件上传漏洞演示代码,代码未限制任何文件属性的上传。


3.

写一个phpinfo.php文件,通过浏览器访问进行上传。

4.

提示上传成功,保存于uploads路径中,可以猜想保存路径为http://10.10.10.1/php/uploads

5.

尝试访问phpinfo.php文件使用刚才猜想的路径,http://10.10.10.1/php/uploads/phpinfo.php,phpinfo函数被执行。


❻ 文件上传漏洞如何搭建

文件上传是Web应用中比较常见的功能,用户经常会通过文件上传的功能分享照片、修改头像或上传附件等操作;文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力;文件上传本身是一个网站正常的业务需求,但如果文件在上传之后,服务器端没有妥善的处理,就会导致严重的后果。简单写一个php上传代码演示php上传漏洞。

1.首先搭建phpstudy的安装环境,在phpstudy网站根目录建立php演示文件夹,放入php文件上传代码。

5.尝试访问phpinfo.php文件使用刚才猜想的路径,http://10.10.10.1/php/uploads/phpinfo.php,phpinfo函数被执行。

❼ 网站如何防范“上传漏洞”入侵

上传漏洞入侵是目前对网站最广泛的入侵方法。90%的具有上传页面的网站,都存在上传漏洞。本文将介绍常见的上传漏洞及其防范技巧。
一、能直接上传asp文件的漏洞
如果网站有上传页面,就要警惕直接上传asp文件漏洞。例如去年流行的动网5.0/6.0论坛,就有个upfile.asp上传页面,该页面对上传文件扩展名过滤不严,导致黑客能直接上传asp文件,因此黑客只要打开upfile.asp页,直接上传,asp木马即可拿到webshell、拥有网站的管理员控制权。
除此之外,目前已发现的上传漏洞
,还有动感购物商城、动力上传漏洞、乔客上传漏洞等,只要运行明小子Domain3.5,点击综合上传,即可看到这些着名的上传漏洞。
像明小子这样的上传漏洞利用工具如今还有很多,例如上传漏洞程序4in1、动易2005上传漏洞利用工具、雷池新闻系统上传漏洞利用工具、MSSQL上传漏洞利用工具等等,使用此类工具,只需填写上传页面网址和Cookies,即可成功入侵网站。
【防范方法】:为了防范此类漏洞,建议网站采用最新版(例如动网7.1以上版本)程序建站,因为最新版程序一般都没有直接上传漏洞,当然删除有漏洞的上传页面,将会最安全,这样黑客再也不可能利用上传漏洞入侵了!
如果不能删除上传页面,为了防范入侵,建议在上传程序中添加安全代码,禁止上传asp\asa\js\exe\com等类文件,这需要管理者能看懂asp程序。
二、00上传漏洞
目前网上流行的所有无组件上传类都存在此类漏洞即黑客利用抓包嗅探、ULTRAEDIT和网络军刀等工具伪造IP包,突破服务器端对上传文件名、路径的判断,巧妙上传ASP、ASA、CGI、CDX、CER、ASPX类型的木马。
例如黑客上传了一个木马文件(xiaomm.asp空格.jpg),由于上传程序不能正确判断含有十六进制00的文件名或路径,于是就出现了漏洞,当上传程序接收到xiaomm.asp空格.jpg文件名数据时,一旦发现xiaomm.asp后面还有空格(十六进制的00),它就不会再读下去,于是上传的文件在服务器上就会被保存成xiaomm.asp,因此上传木马就成功了!
【防范方法】:最安全的防范办法就是删除上传页面。
三、图片木马上传漏洞
有的网站(例如动网7.1SP1博客功能),其后台管理中可以恢复/备份数据库,这会被黑客用来进行图片木马入侵。
图片木马入侵过程如下:首先将本地木马(例如F:\labxw\xiaomm.asp)扩展名改为.gif,然后打开上传页面,上传这个木马(例如F:\labxw\xiaomm.gif);再通过注入法拿到后台管理员的账号密码,溜进网站后台管理中,使用备份数据库功能将.gif木马备份成.asp木马(例如xiaomm.asp),即在备份数据库路径(相对)输入刚才图片上传后得到的路径,在目标数据库路径输入:xiaomm.asp,提示恢复数据库成功;现在打开IE,输入刚才恢复数据库的asp路径,木马就能运行了。
【防范方法】:删除后台管理中的恢复/备份数据库功能。
四、添加上传类型漏洞如今大多数论坛后台中都允许添加上传类型,这也是个不小的漏洞!只要黑客用注入法拿到后台管理员账号密码,然后进入后台添加上传类型,在上传页面中就能直接上传木马!
例如bbsxp后台中允许添加asa|asP类型,通过添加操作后,就可以上传这两类文件了;ewebeditor后台也能添加asa类型,添加完毕即可直接上传asa后缀的木马;而LeadBbs3.14后台也允许在上传类型中增加asp类型,不过添加时asp后面必须有个空格,然后在前台即可上传ASP木马(在木马文件扩展名.asp后面也要加个空格)。
【防范方法】:删除后台管理中的添加上传类型功能。
五、通用防范上传漏洞入侵秘笈:将服务器端的组件改名
众所周知,ASP木马主要是通过三种组件FileSystemObject、WScript.Shell和Shell.Application来操作的,因此只要你在服务器上修改注册表,将这三种组件改名,即可禁止木马运行、防范黑客入侵了。这一招能防范所有类型的上传漏洞,因为即使黑客将木马成功上传到服务器中,但是由于组件已经被改名,木马程序也是无法正常运行的!
具体而言,需要将FileSystemObject组件、WScript.Shell组件、Shell.Application组件改名,然后禁用Cmd.exe,就可以预防漏洞上传攻击。

❽ 文件上传漏洞

在上网的过程中,经常会将一些如图片、压缩包之类的文件上传到远端服务器进行保存。文件上传攻击指的是恶意攻击者利用一些站点没有对文件的类型做很好的校验,上传了可执行的文件或者脚本,并且通过脚本获得服务器上相应的权利,或者是通过诱导外部用户访问、下载上传的病毒或木马文件,达到攻击的目的。为了防范用户上传恶意的可执行文件和脚本,以及将文件上传服务器当做免费的文件存储服务器使用,我们需要对上传的文件类型进行白名单(非黑名单,这点非常重要)校验,并且限制上传文件的大小,上传的文件需要进行重新命名,使攻击者无法猜测到上传文件的访问路径。
对于上传的文件来说,不能简单地通过后缀名称来判断文件的类型,因为恶意攻击可以将可执行文件的后缀名称改成图片或者其他后缀类型,诱导用户执行。因此,判断文件类型需要使用更安全的方式。很多类型的文件,起始的几个字节内容是固定的,因此,根据这几个字节的内容,就可以确定文件类型,这几个字节也被称为魔数( magic number)。

❾ 文件上传漏洞及解析漏洞总结

  • 首先搭建phpstudy的安装环境,在phpstudy网站根目录建立php演示文件夹,放入php文件上传代码。

  • php文件上传漏洞演示代码,代码未限制任何文件属性的上传。

  • 写一个phpinfo.php文件,通过浏览器访问进行上传。

  • 提示上传成功,保存于uploads路径中,可以猜想保存路径为http://10.10.10.1/php/uploads

  • 尝试访问phpinfo.php文件使用刚才猜想的路径,http://10.10.10.1/php/uploads/phpinfo.php,phpinfo函数被执行

❿ 文件上传漏洞成因是什么

原因是:
在 WEB 中进行文件上传的原理是通过将表单设为 multipart/form-data,同时加入文件域,而后通过 HTTP 协议将文件内容发送到服务器,服务器端读取这个分段 (multipart) 的数据信息,并将其中的文件内容提取出来并保存的。通常,在进行文件保存的时候,服务器端会读取文件的原始文件名,并从这个原始文件名中得出文件的扩展名,而后随机为文件起一个文件名 ( 为了防止重复 ),并且加上原始文件的扩展名来保存到服务器上。
文件解析漏洞,是指中间件(Apache、nginx、iis等)在解析文件时出现了漏洞,从而,黑客可以利用该漏洞实现非法文件的解析。

需要注意的是解析漏洞与上传漏洞是两码事,文件解析漏洞是基于文件上传之后而言的。
比如,Apache中间件,是c、c++混合写成的,当Apache中间件出现了解析漏洞,即:c、c++编程出现了漏洞,无论我们php代码层面如何的安全,都没办法抵挡黑客的攻击,因为现在的漏洞已经与php代码层无关了,已经是底层的安全问题了,文件解析漏洞就是因为Apache中间件c、c++编程出现了漏洞,导致黑客可以利用该漏洞解析非法文件。
所以,底层安全比任何安全都要重要,至少我们从现在起,要开始重视底层安全了。