铁三知识点复习 webshell

铁三知识点复习 webshell


什么是webshell?

webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。简单来说就是通过网站漏洞获得网站控制权限。(百度百科的解释)

在计算机科学中,shell指的是"为用户提供操作界面的软件"。类似于windows的cmd.exe和Linux下的bash。webshell是网站的后门,也是一个命令解释器。不过是以http协议这样的方式通信。继承了web权限。我们也可以把webshell理解为在服务器端可执行的文件,后缀名通常为.asp,.php,.aspx,.jsp。


解析漏洞

解析漏洞就是web服务器没有严格处理http请求。导致不该执行的文件或脚本当作可执行的文件或脚本执行。大部分都是通过带有特别后缀的文件使得网页将其解析成可执行的文件或脚本,从而导致网站被恶意攻击。

常见的解析漏洞

1.IIS 5.x/6.0解析漏洞

在IIS5.X和IIS6.0版本中存在以下两个解析漏洞。第一种是如果上传的文件后缀是"*.asp;1.jpg"分号后面不会被解析 而会被服务器当成asp文件执行,从而绕过服务器能上传asp文件的限制.
IIS6.0版本中,默认可执行文件除了test.asp以外,还包括test.asa、test.cer、test.cdx这三种,同样也存在解析漏洞

webshell.asp;1.jpg
webshell.asa;1.jpg
webshell.cer;1.jpg
webshell.cdx;1.jpg

第二种叫做目录解析,在网站中建立名字为*.asp、*.asa的文件夹,其目录内的任何扩展名文件都会被IIS当做ASP文件来解析并执行。

xxxxxx/xxxxx/.asp/xx.jpg(xx.jpg会被当作asp文件执行)

2.IIS 7.0/IIS 7.5/ Nginx <8.03畸形解析漏洞

IIS 7.0/IIS 7.5/ Nginx <8.03在Fast-CGI运行模式下,在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件。

在某些使用有漏洞的网站中,访问http://127.0.0.1/1.jpg/1.php,此时的1.jpg会被当作PHP脚本来解析,此时就认为1.php是不存在的。

这就意味着攻击者可以上传合法的“图片”(图片木马)然后在URL后面加上“/xxx.php”,就可以获得网站的webshell,在使用菜刀链接即可。

1.jpg/1.php(1.jpg就是图片马,可以用Ultraedit等生成)

3.Nginx <8.03 空字节代码执行漏洞

影响范围:Nginx0.5.,0.6., 0.7-0.7.65, 0.8- 0.8.37
访问以下网址,服务器将把xx.jpg文件当做php解析并执行。
http://www.xxx.com/xx.jpg%00.php

4.Apache解析漏洞

apache1或apache2版本

apache解析文件后缀是从右到左解析,如果遇到apache不能解析的文件后缀就会略过而解析下一个后缀.

xxxx.php.rar(apache不能解析rar,会略过.但php可以被apache解析.文件会被解析成php文件)

5.CVE-2013-4547 Nginx解析漏洞

访问以下网址,服务器将把xx.jpg文件当做php解析并执行。

http://www.xxx.com/xx.jpg(非编码空格)\0.php

中间件

一个正常的web访问顺序:浏览器->服务器(WWW)->web容器->中间件(web应用服务器)->数据库服务器。而中间件主要包括Tomcat,jboss,weblogic等等。

web服务器:IIS、Apache、Nginx、Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish、Lighttpd等
web中间件:Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish等
web容器:IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)

什么是中间件?
中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。

iis简介

iis(internet information service)是微软开发的针对WINDOWS 系统下运行的中间件。主要用来解析.ASP,.ASA,.CER三种文件格式的文件。

不同windows版本对应的iis版本

Windows 2003 server ------->IIS 6.0
Windows 7 ------->IIS 7.0和IIS 7.5
Windows 2008 server sp2 -------> IIS 7.0
Windows 2008 server R2-------->IIS 7.5
xp和2000 server对应的IIS 5.0

安装iis(windows10):控制面板->程序->启用或关闭windows功能->选择"internet information service"

铁三知识点复习 webshell

iis默认的web目录是 \inetpub\wwwroot

iis日志分析:默认为W3C拓展日志文件格式,该内容可在站点属性中查看。

铁三知识点复习 webshell
iis日志可以分析web攻击。

date : 发出请求时候的日期。

time: 发出请求时候的时间。注意:默认情况下这个时间是格林威治时间,比我们的北京时间晚8个小时。

s-sitename:服务名,记录当记录事件运行于客户端上的Internet服务的名称和实例的编号。

s-ip:服务器的IP地址。

cs-method:请求中使用的HTTP方法,GET/POST。(POST方法可能无法记录请求的详细内容)

cs-uri-stem:URI资源,记录做为操作目标的统一资源标识符(URI),即访问的页面文件。

cs-uri-query:URI查询,记录客户尝试执行的查询,只有动态页面需要URI查询,如果有则记录,没有则以连接符-表示。即访问网址的附带参数。

s-port:为服务配置的服务器端口号。

cs-username:用户名,访问服务器的已经过验证用户的名称,匿名用户用连接符-表示。

c-ip:客户端IP地址。

cs(User-Agent):用户代理,客户端浏览器、操作系统等情况。

sc-status:协议状态,记录HTTP状态代码,200表示成功,403表示没有权限,404表示找不到该页面。

sc-substatus:协议子状态,记录HTTP子状态代码

sc-win32-status:Win32状态,记录Windows状态代码。

sc-bytes:服务器发送的字节数。

cs-bytes:服务器接受的字节数。

time-taken:记录操作所花费的时间,单位是毫秒。

apache简介

apache是一种开源的web服务器,支持HTTP协议。

LINUX下安装apache服务:yum -y install httpd 启动apache服务:service httpd start

Apache日志分析:Apache日志主要分为以下类:error.log(错误日志)和access.log(访问日志),ssl_access_log(http访问日志),ssl_error_log(http错误日志),ssl_request_log(http请求日志) ,实际排查过程中更常用的是error_log,apache日志同样可以查看web攻击(sql注入,xss)。一般可以通过查看apache配置文件查看apache日志的位置。有关apache日志的详细内容可以访问:https://www.freebuf.com/column/144833.html,讲解的还是比较详细的。这里就不再做过多的介绍了。

nginx简介

Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务。是一个异步框架的web服务器。也可以用作反向代理,负载平衡器 和 请求分发。其特点是相对于apache服务器占有内存少,并发能力强。

打开nginx\conf\nginx.conf可以对nginx进行配置。这里是几个比较重要的配置参数:

user 设置nginx的系统使用用户

work_processes 设置进程数

error_log nginx的错误日志

pid nginx服务启动时的pid(进程编号) 

event: worker_connections 每个进程允许的最大连接数

	use 工作进程数

nginx日志也有两种:access.log(记录网页的访问信息) errors.log(记录处理http请求的错误状态以及nginx本身服务的错误状态)。

JBOSS简介

上一篇:第4阶段 实战web渗透测试视频课程(第一部分) 27、漏洞平台获取奖金简单讲解 2、实战演示mssql数据库注入-SA权限拿webshell


下一篇:1_文件上传漏洞原理