2021-01-28 10:58发布
文件解析漏洞主要由于网站管理员操作不当或者 Web 服务器自身的漏洞,导致一些特殊文件被 IIS、apache、nginx 或其他 Web服务器在某种情况下解释成脚本文件执行。
比如网站管理员配置不当,导致php2、phtml、ascx等等这些文件也被当成脚本文件执行了。甚至某些情况下管理员错误的服务器配置导致.html、.xml等静态页面后缀的文件也被当成脚本文件执行。
但是,大部分的解析漏洞还是由于web服务器自身的漏洞,导致特殊文件被当成脚本文件执行了。
文件名解析漏洞(test.asp;.jpg)
在 IIS5.x/6.0 中, 分号后面的不被解析,也就是说 xie.asp;.jpg 会被服务器看成是xie.asp。还有IIS6.0默认的可执行文件除了asp还包含这两种 .asa .cer 。而有些网站对用户上传的文件进行校验,只是校验其后缀名。所以我们只要上传 *.asp;.jpg、*.asa;.jpg、*.cer;.jpg 后缀的文件,就可以通过服务器校验,并且服务器会把它当成asp文件执行。
1.目录解析
/xx.asp/xx.jpg
漏洞原理:在网站下建立名字为 xx.asp的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。(php的也是一样)
漏洞利用:
例如创建目录 images.php,那么如果把这个写有一句话木马的1.jpg文件上传进images.php这个目录下面,那么http://127.0.0.1/images.php/1.jpg 这个就是一个后门地址,可以直接用菜刀去连接
2.文件解析
xx.asp;.jpg (分号截断)
漏洞原理:在IIS6.0下的服务器默认不解析“;”后面的内容,也就是说xx.asp;.jpg会被服务器看成是xx.asp,解析成了asp文件
漏洞利用:上传一个写有一句话的1.asp;.jpg木马文件就可以直接用菜刀连接了(或者直接上传一个大马也可以直接访问了)
IIS6.0 默认的可执行文件除了asp还包含这三种
/xx.asa
/xx.cer
/xx.cdx
二、IIS 7.x/ Nginx <8>
Nginx漏洞原理:Nginx默认是以CGI的方式支持PHP解析的(即默认Fast-CGI为开启状态),普遍的做法是:上传一个名字为1.jpg,内容为:
');?>
的文件(其实就是利用了fputs这个函数),然后访问1.jpg/.php,在这个目录下就会生成一句话木马 shell.php
·IIS7.5解析漏洞
IIS7.5的漏洞与nginx的类似,都是由于php配置文件中,开启了cgi.fix_pathinfo,而这并不是nginx或者iis7.5本身的漏洞。
三、Nginx <8>
漏洞原理:Ngnix在遇到空字节时与后端FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg.php来执行其中的代码
影响版本:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37
四、利用apache解析漏洞绕过服务器端扩展名检测:
漏洞原理:Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断. 这种漏洞存在于使用module模式与php结合的所有版本的Apache。
利用方法:将木马命名为 【1.php.adc】,在连接菜刀时,应该是http://.../1.php
五,IIS7.0,7.5和Nginx<8>
原理:在上传文件所在目录下创建一个一句话木马文件
实现过程:新建一个1.txt文件,内容为:
')?>
将文件保存成1.jpg格式,上传到服务器,假设上传路径为/upload,
上传成功后,直接访问/upload/1.jpg,然后我们会发现/upload目录下创建了一个一句话木马文件shell.php
六,空字节代码绕过漏洞,也叫神奇的00截断,此处的00指的是16进制的00
文件名00截断:直接上实现过程,,,
1)第一种方法:上传文件名为1.php.jpg格式的图马文件,抓包后,在php后面加上一个空格字符,然后到hex中将php后面的空格字符对应的20改为00后放行即可。
2)第二种方法:上传文件名为1.php.jpg格式的图马文件,抓包后,将进行url解码后放行即可。
请求包中包含上传目录的,可以尝试对上传目录进行00截断,原理都一样,话不多说,直接上实现过程,,,,
实现过程:上传路径/upload/,直接改成/upload/,再将进行url解码后放行即可
七,一句话绕过:
(1).00截断——计算机遇到’\0’字符,会认为该字符结束
方法:在抓到的包中,转到hex,找到文件名.php.jpg对应的地方将2e改为00(2e是字符‘.’对应的hex值)
或者直接在.php后面加上然后选中,对其url-decode处理
(2)针对文件内容检测,最常用的就是图片马了,(它检测内容的时候,是根据文件开头是否有GIF89A这些,以此来判断是否是图片)
解析漏洞主要是一些特殊文件被iis、Apache、Nginx等服务在某种情况下解释成脚本文件格式并得以执行而产生的漏洞。
iis6.0解析漏洞主要有以下三种: 1. 目录解析漏洞 /xx.asp/xx.jpg 在网站下创建文件夹名字为.asp、.asa的文件夹,其目录内的任何扩展名的文件都被iis当做asp文件来解析并执行。因此只要攻击者可以通过该漏洞直接上传图片马,并且可以不需要改后缀名! 2. 文件解析 xx.asp;.jpg 在iis6.0下,分号后面的不被解析,所以xx.asp;.jpg被解析为asp脚本得以执行。 3. 文件类型解析 asa/cer/cdx iis6.0 默认的可执行文件除了asp还包含这三种asa、cer、cdx。
Apache对文件的解析主要是从右到左开始判断并进行解析,如果判断为不能解析的类型,则继续向左进行解析,如xx.php.wer.xxxxx将被解析为PHP类型。
在默认Fast-CGI开启状况下上传名字为xx.jpg,内容为:');?> 然后访问xx.jpg/.php,在这个目录下就会生成一句话木马shell.php。
nginx如下版本:0.5., 0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37在使用PHP-FastCGI执行php的时候,URL里面在遇到空字节时与FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg.php来执行其中的代码。 另一种Nginx文件漏洞是从左到右进行解析,既可绕过对后缀名的限制,又可上传木马文件,因此可以上传XXX.jpg.php(可能是运气,也可能是代码本身问题,但在其他都不能成功的条件下可以试试)。如下:Content-Disposition: form-data; name="userfiles"; filename="XXX.jpg.php"
Content-Disposition: form-data; name="userfiles"; filename="XXX.jpg.php"
如果Apache中.htaccess可被执行并可被上传,那么可以尝试在.htaccess中写入: SetHandler application/x-httpd-php 然后再上传shell.jpg的木马,这样shell.jpg就可被解析为PHP文件了。
SetHandler application/x-httpd-php
解析漏洞正如其名,一般大家常说的是,文件在某种格式下,会被执行为该脚本语言的文件。
文件上传漏洞通常与Web容器的解析漏洞配合利用
常见Web容器有IIS、Nginx、Apache、Tomcat等
IIS 6.0解析漏洞
目录解析:/xx.asp/xx.jpg xx.jpg可替换为任意文本文件(e.g. xx.txt),文本内容为后门代码
IIS6.0 会将 xx.jpg 解析为 asp 文件。
后缀解析:/xx.asp;.jpg /xx.asp:.jpg(此处需抓包修改文件名)
IIS6.0 都会把此类后缀文件成功解析为 asp 文件。
{/xx.asp:.jpg 此类文件在Windows下不允许存在,:.jpg被自动除去,剩下/xx.asp}
默认解析:/xx.asa /xx.cer /xx.cdx
IIS6.0 默认的可执行文件除了 asp 还包含这三种
IIS 7.0/IIS 7.5/Nginx <=0.8.37 解析漏洞
IIS 7.0/IIS 7.5/Nginx <=0.8.37
在默认Fast-CGI开启状况下,在一个文件路径(/xx.jpg)后面加上/xx.PHP会将 /xx.jpg/xx.php 解析为 php 文件。
常用利用方法: 将一张图和一个写入后门代码的文本文件合并 将恶意文本写入图片的二进制代码之后,避免破坏图片文件头和尾
e.g. copy xx.jpg/b + yy.txt/a xy.jpg
######################################
/b 即二进制[binary]模式
/a 即ascii模式 xx.jpg正常图片文件
yy.txt 内容 ');?>
意思为写入一个内容为 名称为shell.php的文件
找个地方上传 xy.jpg ,然后找到 xy.jpg 的地址,在地址后加上 /xx.php 即可执行恶意文本。
然后就在图片目录下生成一句话木马 shell.php 密码 cmd
Nginx <=0.8.37 解析漏洞
在Fast-CGI关闭的情况下,Nginx <=0.8.37 依然存在解析漏洞
在一个文件路径(/xx.jpg)后面加上.php会将 /xx.jpg.php 解析为 php 文件。
Apache 解析漏洞
后缀解析:test.php.x1.x2.x3
Apache将从右至左开始判断后缀,若x3非可识别后缀,再判断x2,直到找到可识别后缀为止,然后将该可识别后缀进解析
test.php.x1.x2.x3 则会被解析为php
经验之谈:php|php3|phtml 多可被Apache解析
--------------------------------------------------------------------------------------------------------------
Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断.
比如 cracer.php.owf.rar “.owf”和”.rar” 这两种后缀是apache不可识别解析,apache就会把cracer.php.owf.rar解析成php.
如何判断是不是合法的后缀就是这个漏洞的利用关键,测试时可以尝试上传一个cracer.php.rara.jpg.png…(把你知道的常见后缀都写上…)去测试是否是合法后缀。
其他一些可利用的 解析漏洞
在windows环境下,xx.jpg[空格] 或xx.jpg. 这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,这也是可以被利用的!
在向一台windows主机上传数据时,你可以抓包修改文件名,在后面加个空格或点,试图绕过黑名单,若上传成功,最后的点或空格都会被消除,这样就可得到shell。
我记得Fck Php 2.6就存在加空格绕过的漏洞。{Linux主机中不行,Linux允许这类文件存在}
如果在Apache中.htaccess可被应用(Apache的配置文件httpd.conf中对目录的AllowOverride设置为All时,apache会应用目录下.htaccess中的配置 By sfasfas),
且可以被上传,那可以尝试在.htaccess中写入:
shell.jpg换成你上传的文件,这样shell.jpg就可解析为php文件
lighttpd 解析漏洞
xx.jpg/xx.php
WebDav漏洞
WebDav是一种基于HTTP1.1协议的通信协议,它扩展了HTTP协议。在开启WebDav后若支持PUT、Move、Copy、Delete等方法,就会存在安全隐患。测试步骤如下:1)通过OPTIONS探测服务器所支持的HTTP方法 请求:OPTIONS / HTTP/1.1 Host: http://www.xxxx.com2)通过PUT方法向服务器上传shell 请求: PUT /a.txt HTTP/1.1 Host: http://www.xxxx.com Content-Length: 30 <%eval request("chopper") %>3)通过Move或Copy方法改名 请求:COPY /a.txt HTTP/1.1 Host: http://www.xxxx.com Destination: http://www.xxxx.com/cmd.asp4)用DELETE方法删除文件 请求:DELETE /a.txt HTTP/1.1 Host: http://www.xxxx.com
PHP CGI解析漏洞
当php的配置文件中的选项cgi.fix_pathinfo = 1开启时,当访问http://www.xxx.com/x.txt/x.php时,若x.php不存在,则PHP会递归向前解析,将x.txt当作php脚本来解析IIS中:任意文件名/任意文件名.php就会被解析为phpNginx中:任意文件名/任意文件名.php就会被解析为php
文件包含这个漏洞,用我自己的话来说就是程序员在网站设计中,为方便自己在设计构架时,使用了一些包含的函数,就像'文件包含'这几个字的字面意思一样,在文件中,包含一个文件。
我在总结这篇文章的时候看了,其他人总结的,感觉别人总结的很是详细,就像一开始我只认为包含只有PHP代码中才存在,后来我再整理复习的时候,才发现,包含这个漏洞在各大语言中,都存在的,只不过现在大部分网站都是PHP网站,所以存在这个漏洞的几率大一点,好了不废话了,我开始整理了。
文件包含
程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。
程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。
几乎所有脚本语言都会提供文件包含的功能,但文件包含漏洞在PHP Web Application中居多,而在JSP、ASP、http://ASP.NET程序中却非常少,甚至没有,这是有些语言设计的弊端。
在PHP中经常出现包含漏洞,但这并不意味这其他语言不存在。
这个还是因人而异吧,看你自己对哪方面感兴趣,兴趣是最好的老师,感兴趣了才愿意钻研学习下去,简单说一下这两个学习知识方面的不同吧:软件测试岗位虽然对于从业者的知识基础要求不高,但是软件测试岗位所涉及到的知识面还是比较广的,所以软件测试人员也需...
SQL注入漏洞的危害:1、数据库中存储的用户隐私信息泄漏;2、通过操作数据库对某些网页进行篡改;3、修改数据库一些字段的值,嵌入网马链接,进行挂马攻击;4、数据库服务器被恶意操作,系统管理员帐户被窜改;5、数据库服务器提供的操作系统支持,让黑客得以...
一、CISP(Certified Information Security Professional)证书中文叫注册信息安全专业人员,由中国信息安全产品测评认证中心实施的国家认证。可以说,这是目前国内对于个人来说认可度最高的信息安全人员资质,堪称最权威、最专业、最系统。根据实际岗位的不...
渗透测试(也称为pentest)是测试移动应用程序漏洞的过程。此测试的主要目的是确保外部人员的重要数据.通过模拟黑客的思维和攻击手段,对计算机业务系统的弱点、技术缺陷和漏洞进行探查评估。经过客户授权后,在不影响业务系统正常运行的条件下,渗透人员在黑...
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。主要涉及到的有:1、物理措施:例如,保护网络关键设备(如交换机、大型计算机等),制定严格的网络...
网络安全工程师学习内容: 1、计算机应用、计算机网络、通信、信息安全等相关专业本科学历,三年以上网络安全领域工作经验; 2、精通网络安全技术:包括端口、服务漏洞扫描、程序漏洞分析检测、权限管理、入侵和攻击分析追踪、网站渗透、病毒木马防...
学历不是问题,技术才是硬道理!只要你的技术过硬的话,你完全可以进国家安全部门去工作的。比如公安局里的网监工作,大都是九零后的电脑方面的精英。未必都是本科生。还有从社会上特招进去的。所以说,现在是拿技术说话,不是靠学历吃饭的时代了。 网...
网络安全的知识是比较简单的,比较好入门,好多知识理论,大家都是可以听懂的,这是完全没有问题的。网络安全最终的则是实战的应用,怎么把这些理论知识运用到事件中,这些才是重中之重。所以在选择培训机构的时候,也需要尽量去找这些实践操作多的培训机构。...
能够胜任的岗位主要有:渗透测试工程师、大数据安全工程师、信息安全工程师、安全测试工程师、安全服务工程师、安全运维工程师、系统安全工程师、服务器安全工程师、云计算安全工程师、网络安全工程师、安全分析师、渗透讲师等; 按照web渗透、内网渗透...
一些典型的网络安全问题,可以来梳理一下:IP安全:主要的攻击方式有被动攻击的网络窃听,主动攻击的IP欺骗(copy报文伪造、篡改)和路由攻击(中间人攻击);2. DNS安全:这个大家应该比较熟悉,修改DNS的映射表,误导用户的访问流量;3. DoS攻击:单一攻击...
运维一般是设备或者环境的搭建和维护,网络安全可以看做是防火墙
先说说运维工程师和网络工程师的区别。运维工程师是泛指,网络工程师为特指,所以不能这么对比。你应该这么理解,网络工程师是一个人(也可以是理解成一个岗位),而运维则是他的工作内容。从工作内容上来说,运维可细分为桌面运维、网络运维、服务器运维三大...
最多设置5个标签!
文件解析漏洞主要由于网站管理员操作不当或者 Web 服务器自身的漏洞,导致一些特殊文件被 IIS、apache、nginx 或其他 Web服务器在某种情况下解释成脚本文件执行。
比如网站管理员配置不当,导致php2、phtml、ascx等等这些文件也被当成脚本文件执行了。甚至某些情况下管理员错误的服务器配置导致.html、.xml等静态页面后缀的文件也被当成脚本文件执行。
但是,大部分的解析漏洞还是由于web服务器自身的漏洞,导致特殊文件被当成脚本文件执行了。
文件名解析漏洞(test.asp;.jpg)
在 IIS5.x/6.0 中, 分号后面的不被解析,也就是说 xie.asp;.jpg 会被服务器看成是xie.asp。还有IIS6.0默认的可执行文件除了asp还包含这两种 .asa .cer 。而有些网站对用户上传的文件进行校验,只是校验其后缀名。所以我们只要上传 *.asp;.jpg、*.asa;.jpg、*.cer;.jpg 后缀的文件,就可以通过服务器校验,并且服务器会把它当成asp文件执行。
1.目录解析
/xx.asp/xx.jpg
漏洞原理:在网站下建立名字为 xx.asp的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。(php的也是一样)
漏洞利用:
例如创建目录 images.php,那么如果把这个写有一句话木马的1.jpg文件上传进images.php这个目录下面,那么http://127.0.0.1/images.php/1.jpg 这个就是一个后门地址,可以直接用菜刀去连接
2.文件解析
xx.asp;.jpg (分号截断)
漏洞原理:在IIS6.0下的服务器默认不解析“;”后面的内容,也就是说xx.asp;.jpg会被服务器看成是xx.asp,解析成了asp文件
漏洞利用:上传一个写有一句话的1.asp;.jpg木马文件就可以直接用菜刀连接了(或者直接上传一个大马也可以直接访问了)
IIS6.0 默认的可执行文件除了asp还包含这三种
/xx.asa
/xx.cer
/xx.cdx
二、IIS 7.x/ Nginx <8>
Nginx漏洞原理:
Nginx默认是以CGI的方式支持PHP解析的(即默认Fast-CGI为开启状态),普遍的做法是:上传一个名字为1.jpg,内容为:
');?>
的文件(其实就是利用了fputs这个函数),然后访问1.jpg/.php,在这个目录下就会生成一句话木马 shell.php
·IIS7.5解析漏洞
IIS7.5的漏洞与nginx的类似,都是由于php配置文件中,开启了cgi.fix_pathinfo,而这并不是nginx或者iis7.5本身的漏洞。
三、Nginx <8>
漏洞原理:Ngnix在遇到空字节时与后端FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg.php来执行其中的代码
影响版本:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37
四、利用apache解析漏洞绕过服务器端扩展名检测:
漏洞原理:Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断. 这种漏洞存在于使用module模式与php结合的所有版本的Apache。
利用方法:将木马命名为 【1.php.adc】,在连接菜刀时,应该是http://.../1.php
五,IIS7.0,7.5和Nginx<8>
原理:在上传文件所在目录下创建一个一句话木马文件
实现过程:新建一个1.txt文件,内容为:
')?>
将文件保存成1.jpg格式,上传到服务器,假设上传路径为/upload,
上传成功后,直接访问/upload/1.jpg,然后我们会发现/upload目录下创建了一个一句话木马文件shell.php
六,空字节代码绕过漏洞,也叫神奇的00截断,此处的00指的是16进制的00
文件名00截断:直接上实现过程,,,
1)第一种方法:上传文件名为1.php.jpg格式的图马文件,抓包后,在php后面加上一个空格字符,然后到hex中将php后面的空格字符对应的20改为00后放行即可。
2)第二种方法:上传文件名为1.php.jpg格式的图马文件,抓包后,将进行url解码后放行即可。
请求包中包含上传目录的,可以尝试对上传目录进行00截断,原理都一样,话不多说,直接上实现过程,,,,
实现过程:上传路径/upload/,直接改成/upload/,再将进行url解码后放行即可
七,一句话绕过:
(1).00截断——计算机遇到’\0’字符,会认为该字符结束
方法:在抓到的包中,转到hex,找到文件名.php.jpg对应的地方将2e改为00(2e是字符‘.’对应的hex值)
或者直接在.php后面加上然后选中,对其url-decode处理
(2)针对文件内容检测,最常用的就是图片马了,(它检测内容的时候,是根据文件开头是否有GIF89A这些,以此来判断是否是图片)
文件解析漏洞
解析漏洞主要是一些特殊文件被iis、Apache、Nginx等服务在某种情况下解释成脚本文件格式并得以执行而产生的漏洞。
iis 5.x/6.0解析漏洞
iis6.0解析漏洞主要有以下三种:
1. 目录解析漏洞 /xx.asp/xx.jpg
在网站下创建文件夹名字为.asp、.asa的文件夹,其目录内的任何扩展名的文件都被iis当做asp文件来解析并执行。因此只要攻击者可以通过该漏洞直接上传图片马,并且可以不需要改后缀名!
2. 文件解析 xx.asp;.jpg
在iis6.0下,分号后面的不被解析,所以xx.asp;.jpg被解析为asp脚本得以执行。
3. 文件类型解析 asa/cer/cdx
iis6.0 默认的可执行文件除了asp还包含这三种asa、cer、cdx。
Apache解析漏洞
Apache对文件的解析主要是从右到左开始判断并进行解析,如果判断为不能解析的类型,则继续向左进行解析,如xx.php.wer.xxxxx将被解析为PHP类型。
IIS 7.0/ Nginx <8>
在默认Fast-CGI开启状况下上传名字为xx.jpg,内容为:
');?>
然后访问xx.jpg/.php,在这个目录下就会生成一句话木马shell.php。
Nginx<8>
nginx如下版本:0.5., 0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37在使用PHP-FastCGI执行php的时候,URL里面在遇到空字节时与FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg.php来执行其中的代码。
另一种Nginx文件漏洞是从左到右进行解析,既可绕过对后缀名的限制,又可上传木马文件,因此可以上传XXX.jpg.php(可能是运气,也可能是代码本身问题,但在其他都不能成功的条件下可以试试)。如下:
Content-Disposition: form-data; name="userfiles"; filename="XXX.jpg.php"
htaccess文件解析
如果Apache中.htaccess可被执行并可被上传,那么可以尝试在.htaccess中写入:
SetHandler application/x-httpd-php
然后再上传shell.jpg的木马,这样shell.jpg就可被解析为PHP文件了。
解析漏洞正如其名,一般大家常说的是,文件在某种格式下,会被执行为该脚本语言的文件。
文件上传漏洞通常与Web容器的解析漏洞配合利用
常见Web容器有IIS、Nginx、Apache、Tomcat等
IIS 6.0解析漏洞
目录解析:/xx.asp/xx.jpg xx.jpg可替换为任意文本文件(e.g. xx.txt),文本内容为后门代码
IIS6.0 会将 xx.jpg 解析为 asp 文件。
后缀解析:/xx.asp;.jpg /xx.asp:.jpg(此处需抓包修改文件名)
IIS6.0 都会把此类后缀文件成功解析为 asp 文件。
{/xx.asp:.jpg 此类文件在Windows下不允许存在,:.jpg被自动除去,剩下/xx.asp}
默认解析:/xx.asa /xx.cer /xx.cdx
IIS6.0 默认的可执行文件除了 asp 还包含这三种
IIS 7.0/IIS 7.5/Nginx <=0.8.37 解析漏洞
IIS 7.0/IIS 7.5/Nginx <=0.8.37
在默认Fast-CGI开启状况下,在一个文件路径(/xx.jpg)后面加上/xx.PHP会将 /xx.jpg/xx.php 解析为 php 文件。
常用利用方法: 将一张图和一个写入后门代码的文本文件合并 将恶意文本写入图片的二进制代码之后,避免破坏图片文件头和尾
e.g. copy xx.jpg/b + yy.txt/a xy.jpg
######################################
/b 即二进制[binary]模式
/a 即ascii模式 xx.jpg正常图片文件
yy.txt 内容 ');?>
意思为写入一个内容为 名称为shell.php的文件
######################################
找个地方上传 xy.jpg ,然后找到 xy.jpg 的地址,在地址后加上 /xx.php 即可执行恶意文本。
然后就在图片目录下生成一句话木马 shell.php 密码 cmd
Nginx <=0.8.37 解析漏洞
在Fast-CGI关闭的情况下,Nginx <=0.8.37 依然存在解析漏洞
在一个文件路径(/xx.jpg)后面加上.php会将 /xx.jpg.php 解析为 php 文件。
Apache 解析漏洞
后缀解析:test.php.x1.x2.x3
Apache将从右至左开始判断后缀,若x3非可识别后缀,再判断x2,直到找到可识别后缀为止,然后将该可识别后缀进解析
test.php.x1.x2.x3 则会被解析为php
经验之谈:php|php3|phtml 多可被Apache解析
--------------------------------------------------------------------------------------------------------------
Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断.
比如 cracer.php.owf.rar “.owf”和”.rar” 这两种后缀是apache不可识别解析,apache就会把cracer.php.owf.rar解析成php.
如何判断是不是合法的后缀就是这个漏洞的利用关键,测试时可以尝试上传一个cracer.php.rara.jpg.png…(把你知道的常见后缀都写上…)去测试是否是合法后缀。
其他一些可利用的 解析漏洞
在windows环境下,xx.jpg[空格] 或xx.jpg. 这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,这也是可以被利用的!
在向一台windows主机上传数据时,你可以抓包修改文件名,在后面加个空格或点,试图绕过黑名单,若上传成功,最后的点或空格都会被消除,这样就可得到shell。
我记得Fck Php 2.6就存在加空格绕过的漏洞。{Linux主机中不行,Linux允许这类文件存在}
如果在Apache中.htaccess可被应用(Apache的配置文件httpd.conf中对目录的AllowOverride设置为All时,apache会应用目录下.htaccess中的配置 By sfasfas),
且可以被上传,那可以尝试在.htaccess中写入:
shell.jpg换成你上传的文件,这样shell.jpg就可解析为php文件
lighttpd 解析漏洞
xx.jpg/xx.php
WebDav漏洞
WebDav是一种基于HTTP1.1协议的通信协议,它扩展了HTTP协议。在开启WebDav后若
支持PUT、Move、Copy、Delete等方法,就会存在安全隐患。
测试步骤如下:
1)通过OPTIONS探测服务器所支持的HTTP方法
请求:
OPTIONS / HTTP/1.1
Host: http://www.xxxx.com
2)通过PUT方法向服务器上传shell
请求:
PUT /a.txt HTTP/1.1
Host: http://www.xxxx.com
Content-Length: 30
<%eval request("chopper") %>
3)通过Move或Copy方法改名
请求:
COPY /a.txt HTTP/1.1
Host: http://www.xxxx.com
Destination: http://www.xxxx.com/cmd.asp
4)用DELETE方法删除文件
请求:
DELETE /a.txt HTTP/1.1
Host: http://www.xxxx.com
PHP CGI解析漏洞
当php的配置文件中的选项cgi.fix_pathinfo = 1开启时,当访问http://www.xxx.com/x.txt/x.php
时,若x.php不存在,则PHP会递归向前解析,将x.txt当作php脚本来解析
IIS中:任意文件名/任意文件名.php就会被解析为php
Nginx中:任意文件名/任意文件名.php就会被解析为php
文件包含这个漏洞,用我自己的话来说就是程序员在网站设计中,为方便自己在设计构架时,使用了一些包含的函数,就像'文件包含'这几个字的字面意思一样,在文件中,包含一个文件。
我在总结这篇文章的时候看了,其他人总结的,感觉别人总结的很是详细,就像一开始我只认为包含只有PHP代码中才存在,后来我再整理复习的时候,才发现,包含这个漏洞在各大语言中,都存在的,只不过现在大部分网站都是PHP网站,所以存在这个漏洞的几率大一点,好了不废话了,我开始整理了。
文件包含
程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。
程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,
但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。
几乎所有脚本语言都会提供文件包含的功能,但文件包含漏洞在PHP Web Application中居多,
而在JSP、ASP、http://ASP.NET程序中却非常少,甚至没有,这是有些语言设计的弊端。
在PHP中经常出现包含漏洞,但这并不意味这其他语言不存在。
相关问题推荐
这个还是因人而异吧,看你自己对哪方面感兴趣,兴趣是最好的老师,感兴趣了才愿意钻研学习下去,简单说一下这两个学习知识方面的不同吧:软件测试岗位虽然对于从业者的知识基础要求不高,但是软件测试岗位所涉及到的知识面还是比较广的,所以软件测试人员也需...
SQL注入漏洞的危害:1、数据库中存储的用户隐私信息泄漏;2、通过操作数据库对某些网页进行篡改;3、修改数据库一些字段的值,嵌入网马链接,进行挂马攻击;4、数据库服务器被恶意操作,系统管理员帐户被窜改;5、数据库服务器提供的操作系统支持,让黑客得以...
一、CISP(Certified Information Security Professional)证书中文叫注册信息安全专业人员,由中国信息安全产品测评认证中心实施的国家认证。可以说,这是目前国内对于个人来说认可度最高的信息安全人员资质,堪称最权威、最专业、最系统。根据实际岗位的不...
渗透测试(也称为pentest)是测试移动应用程序漏洞的过程。此测试的主要目的是确保外部人员的重要数据.通过模拟黑客的思维和攻击手段,对计算机业务系统的弱点、技术缺陷和漏洞进行探查评估。经过客户授权后,在不影响业务系统正常运行的条件下,渗透人员在黑...
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。主要涉及到的有:1、物理措施:例如,保护网络关键设备(如交换机、大型计算机等),制定严格的网络...
网络安全工程师学习内容: 1、计算机应用、计算机网络、通信、信息安全等相关专业本科学历,三年以上网络安全领域工作经验; 2、精通网络安全技术:包括端口、服务漏洞扫描、程序漏洞分析检测、权限管理、入侵和攻击分析追踪、网站渗透、病毒木马防...
学历不是问题,技术才是硬道理!只要你的技术过硬的话,你完全可以进国家安全部门去工作的。比如公安局里的网监工作,大都是九零后的电脑方面的精英。未必都是本科生。还有从社会上特招进去的。所以说,现在是拿技术说话,不是靠学历吃饭的时代了。 网...
网络安全的知识是比较简单的,比较好入门,好多知识理论,大家都是可以听懂的,这是完全没有问题的。网络安全最终的则是实战的应用,怎么把这些理论知识运用到事件中,这些才是重中之重。所以在选择培训机构的时候,也需要尽量去找这些实践操作多的培训机构。...
能够胜任的岗位主要有:渗透测试工程师、大数据安全工程师、信息安全工程师、安全测试工程师、安全服务工程师、安全运维工程师、系统安全工程师、服务器安全工程师、云计算安全工程师、网络安全工程师、安全分析师、渗透讲师等; 按照web渗透、内网渗透...
一些典型的网络安全问题,可以来梳理一下:IP安全:主要的攻击方式有被动攻击的网络窃听,主动攻击的IP欺骗(copy报文伪造、篡改)和路由攻击(中间人攻击);2. DNS安全:这个大家应该比较熟悉,修改DNS的映射表,误导用户的访问流量;3. DoS攻击:单一攻击...
运维一般是设备或者环境的搭建和维护,网络安全可以看做是防火墙
先说说运维工程师和网络工程师的区别。运维工程师是泛指,网络工程师为特指,所以不能这么对比。你应该这么理解,网络工程师是一个人(也可以是理解成一个岗位),而运维则是他的工作内容。从工作内容上来说,运维可细分为桌面运维、网络运维、服务器运维三大...