首页 黑客接单正文

xss攻击绕过防火墙(xss攻击解决方案)

web攻击有哪些?怎么防护?

1、DoS和DDoS攻击(DoS(Denial of Service),即拒绝服务,造成远程服务器拒绝服务的行为被称为DoS攻击。其目的是使计算机或 *** 无法提供正常的服务。最常见的DoS攻击有计算机 *** 带宽攻击和连通性攻击)

防范:(1) 反欺骗:对数据包的地址及端口的正确性进行验证,同时进行反向探测。(2) 协议栈行为模式分析:每个数据包类型需要符合RFC规定,这就好像每个数据包都要有完整规范的着装,只要不符合规范,就自动识别并将其过滤掉。(3) 特定应用防护:非法流量总是有一些特定特征的,这就好比即便你混进了顾客群中,但你的行为还是会暴露出你的动机,比如老重复问店员同一个问题,老做同样的动作,这样你仍然还是会被发现的。(4) 带宽控制:真实的访问数据过大时,可以限制其更大输出的流量,以减少下游 *** 系统的压力。

2、CSRF(Cross Site Request Forgery),即跨站请求伪造,是一种常见的Web攻击,但很多开发者对它很陌生。CSRF也是Web安全中最容易被忽略的一种攻击。

防范:(1) 验证码。应用程序和用户进行交互过程中,特别是账户交易这种核心步骤,强制用户输入验证码,才能完成最终请求。在通常情况下,验证码够很好地遏制CSRF攻击。但增加验证码降低了用户的体验,网站不能给所有的操作都加上验证码。所以只能将验证码作为一种辅助手段,在关键业务点设置验证码。(2) Referer Check。HTTP Referer是header的一部分,当浏览器向web服务器发送请求时,一般会带上Referer信息告诉服务器是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。可以通过检查请求的来源来防御CSRF攻击。正常请求的referer具有一定规律,如在提交表单的referer必定是在该页面发起的请求。所以通过检查http包头referer的值是不是这个页面,来判断是不是CSRF攻击。但在某些情况下如从https跳转到http,浏览器处于安全考虑,不会发送referer,服务器就无法进行check了。若与该网站同域的其他网站有XSS漏洞,那么攻击者可以在其他网站注入恶意脚本,受害者进入了此类同域的网址,也会遭受攻击。出于以上原因,无法完全依赖Referer Check作为防御CSRF的主要手段。但是可以通过Referer Check来监控CSRF攻击的发生。(3) Anti CSRF Token。目前比较完善的解决方案是加入Anti-CSRF-Token,即发送请求时在HTTP 请求中以参数的形式加入一个随机产生的token,并在服务器建立一个拦截器来验证这个token。服务器读取浏览器当前域cookie中这个token值,会进行校验该请求当中的token和cookie当中的token值是否都存在且相等,才认为这是合法的请求。否则认为这次请求是违法的,拒绝该次服务。这种 *** 相比Referer检查要安全很多,token可以在用户登陆后产生并放于session或cookie中,然后在每次请求时服务器把token从session或cookie中拿出,与本次请求中的token 进行比对。由于token的存在,攻击者无法再构造出一个完整的URL实施CSRF攻击。但在处理多个页面共存问题时,当某个页面消耗掉token后,其他页面的表单保存的还是被消耗掉的那个token,其他页面的表单提交时会出现token错误。

3、XSS(Cross Site Scripting),跨站脚本攻击。为和层叠样式表(Cascading Style Sheets,CSS)区分开,跨站脚本在安全领域叫做“XSS”。

防范:(1) 输入过滤。永远不要相信用户的输入,对用户输入的数据做一定的过滤。如输入的数据是否符合预期的格式,比如日期格式,Email格式, *** 号码格式等等。这样可以初步对XSS漏洞进行防御。上面的措施只在web端做了限制,攻击者通抓包工具如Fiddler还是可以绕过前端输入的限制,修改请求注入攻击脚本。因此,后台服务器需要在接收到用户输入的数据后,对特殊危险字符进行过滤或者转义处理,然后再存储到数据库中。(2) 输出编码。服务器端输出到浏览器的数据,可以使用系统的安全函数来进行编码或转义来防范XSS攻击。在PHP中,有htmlentities()和htmlspecialchars()两个函数可以满足安全要求。相应的JavaScript的编码方式可以使用JavascriptEncode。(3) 安全编码。开发需尽量避免Web客户端文档重写、重定向或其他敏感操作,同时要避免使用客户端数据,这些操作需尽量在服务器端使用动态页面来实现。(4) HttpOnly Cookie。预防XSS攻击窃取用户cookie最有效的防御手段。Web应用程序在设置cookie时,将其属性设为HttpOnly,就可以避免该网页的cookie被客户端恶意JavaScript窃取,保护用户cookie信息。(5)WAF(Web Application Firewall),Web应用防火墙,主要的功能是防范诸如网页木马、XSS以及CSRF等常见的Web漏洞攻击。由第三方公司开发,在企业环境中深受欢迎。

4、SQL注入(SQL Injection),应用程序在向后台数据库传递SQL(Structured Query Language,结构化查询语言)时,攻击者将SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

防范:(1) 防止系统敏感信息泄露。设置php.ini选项display_errors=off,防止php脚本出错之后,在web页面输出敏感信息错误,让攻击者有机可乘。(2) 数据转义。设置php.ini选项magic_quotes_gpc=on,它会将提交的变量中所有的’(单引号),”(双引号),\(反斜杠),空白字符等都在前面自动加上\。或者采用mysql_real_escape()函数或addslashes()函数进行输入参数的转义。(3) 增加黑名单或者白名单验证。白名单验证一般指,检查用户输入是否是符合预期的类型、长度、数值范围或者其他格式标准。黑名单验证是指,若在用户输入中,包含明显的恶意内容则拒绝该条用户请求。在使用白名单验证时,一般会配合黑名单验证。

5、上传漏洞在DVBBS6.0时代被黑客们利用的最为猖獗,利用上传漏洞可以直接得到WEBSHELL,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。该漏洞允许用户上传任意文件可能会让攻击者注入危险内容或恶意代码,并在服务器上运行。

防范: (1)检查服务器是否判断了上传文件类型及后缀。 (2) 定义上传文件类型白名单,即只允许白名单里面类型的文件上传。 (3) 文件上传目录禁止执行脚本解析,避免攻击者进行二次攻击。 Info漏洞 Info漏洞就是CGI把输入的参数原样输出到页面,攻击者通过修改输入参数而达到欺骗用户的目的。

什么是xss攻击,如何预防

xss攻击是webshell类中的一种,是跨站攻击,可以通过WAF应用防火墙防御,如果懂技术可以自己写,相关的程序规则进行拦截,返回错误请求信息,或者安装安全狗 云锁之类的,和百度云加速等都带有免费的WAF功能,也可以找智多互联,专业防御各种攻击,提供专业的防御方案

如何突破防火墙进行内网的渗透测试

身处不同的渗透测试环境下就会有不同的渗透思路以及渗透的技术手段,今天我们将从攻与守两个不同的视角来了解渗透测试在不同处境下所使用的技术手段。

从攻方视角看渗透

攻方既包括了潜在的黑客、入侵者,也包括了经过企业授权的安全专家。在很多黑客的视角中,只要你投入了足够多的时间和耐心,那么这个世界上就没有不可能渗透的目标。目前我们只从授权渗透的角度来讨论渗透测试的攻击路径及其可能采用的技术手段。

测试目标的不同,自然也导致了技术手段的不同,接下来我们将简单说明在不同的位置可能采用的技术手段。

内网测试

内网测试指的是由渗透测试人员在内部 *** 发起的测试,这类的测试能够模拟企业内部违规操作者的行为。它的最主要的“优势”就是绕过了防火墙的保护。内部可能采用的主要渗透方式有:远程缓冲区溢出,口令猜测,以及B/S或C/S应用程序测试(如果在渗透测试中有涉及到C/S程序测试的,那么就需要提前准备相关客户端软件供测试使用)。

外网测试

外网测试则恰恰与内网测试相反,在此类测试当中渗透测试人员完全处于外部 *** (例如拨号、ADSL或外部光纤),来模拟对内部状态一无所知的外部攻击者的行为。外部可能采用的渗透方式包括:对 *** 设备的远程攻击,口令管理安全性测试,防火墙规则试探、规避、Web及其它开放应用服务的安全性测试。

不同网段/Vlan之间的渗透

这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan来进行渗透。这类测试通常可能用到的技术包括:对 *** 设备的远程攻击、对防火墙的远程攻击或规则探测、规避尝试。

信息的收集和分析伴随着渗透测试的每一个步骤,而每一个步骤又有三个部分组成:操作、响应和结果分析。

端口扫描

通过对目标地址的TCP/UDP端口扫描,确定其所开放的服务的数量以及类型,这是所有渗透测试的基础。端口扫描是计算机解密高手喜欢的一种方式。通过端口扫描,可以大致确定一个系统的基本信息并搜集到很多关于目标主机的各种有用的信息,然后再结合安全工程师的相关经验就可以确定其可能存在的以及可能被利用的安全弱点,从而为进行深层次的渗透提供可靠性依据。

远程溢出

这是当前出现的频率更高、威胁最严重,同时又是最容易实现的一种渗透 *** ,一个仅仅具有一般的基础性 *** 知识的入侵者就可以在相当短的时间内利用现成的工具实现远程溢出攻击。

对于防火墙内的系统同样存在这样的风险,只要对跨接防火墙内外的一台主机攻击成功,那么通过这台主机对防火墙内的主机进行攻击就易如反掌。

口令猜测

口令猜测也是一种出现概率很高的风险,几乎不需要任何攻击工具,利用一个简单的暴力攻击程序和一个比较完善的字典,就可以进行猜测口令。

对一个系统账号的猜测通常包括两个方面:首先是对用户名的猜测,其次是对密码的猜测。只要攻击者能猜测或者确定用户口令,就能获得机器或者 *** 的访问权,并且能够访问到用户能够访问的审核信息资源。

本地溢出

所谓本地溢出是指在拥有了一个普通用户的账号之后,通过一段特殊的指令代码来获取管理员权限的 *** 。使用本地溢出的前提是首先你要获得一个普通用户密码。也就是说由于导致本地溢出的一个关键条件是设置不当的密码策略。

多年的实践证明,在经过前期的口令猜测阶段获取的普通账号登录系统之后,对系统实施本地溢出攻击,就能获取不进行主动安全防御的系统的控制管理权限。

脚本及应用测试

Web脚本及应用测试专门针对Web及数据库服务器进行。根据最新的技术统计表明,脚本安全弱点是当前Web系统尤其是存在动态内容的Web系统比较严重的安全弱点之一。利用脚本相关弱点轻则可以获取系统其他目录的访问权限,重则将有可能取得系统的控制管理权限。因此对于含有动态页面的Web、数据库等系统,Web脚本及应用测试将是渗透测试中必不可少的一个环节。

在Web脚本及应用测试中,可能需要检查的部份包括:

(1)检查应用系统架构,防止用户绕过系统直接修改数据库;

(2)检查身份认证模块,用以防止非法用户绕过身份认证;

(3)检查数据库接口模块,用以防止用户获取系统权限;

(4)检查文件接口模块,防止用户获取系统文件;

(5)检查其他安全威胁。

无线测试

虽然中国的无线 *** 还处于建设时期,但是无线 *** 的部署及其简易,所以在一些大城市里的普及率已经很高了。在北京和上海的商务区内至少有80%的地方都可以找到接入点。

通过对无线 *** 的测试,可以判断企业局域网的安全性,这已经成为渗透测试中越来越重要的环节。

除了以上的测试手段以外,还有一些可能会在渗透测试过程中使用的技术,包括:社交工程学、拒绝服务攻击,以及中间人攻击。

从守方视角看渗透

当具备渗透测试攻击经验的人们站到系统管理员的角度,要保障一个大网的安全时,我们会发现,关注点是完全不同的。从攻方的视角看是“攻其一点,不及其余”,只要找到一个小漏洞,就有可能撕开整条战线;但如果你从守方的视角来看,就会发现往往是“千里之堤,毁于蚁穴”。因此,必须要有好的理论指引,从技术到管理都要注重安全,才能使 *** 固若金汤。

渗透测试的必要性

渗透测试利用 *** 安全扫描器、专用安全测试工具和富有经验的安全工程师的人工经验对 *** 中的核心服务及其重要的 *** 设备,包括服务器、 *** 设备、防火墙等进行非破坏性质的模拟黑客攻击,目的是侵入系统并获取机密信息并将入侵的过程和细节产生报告给用户,从而实现 *** 信息安全的防护。

渗透测试和工具扫描可以很好的互相补充。工具扫描具有很好的效率和速度,但存在一定的误报率和漏报率,并且不能发现高层次的、复杂的、并且相互关联的安全问题;而渗透测试则需要投入大量的人力资源、并且对测试者的专业技能要求很高(渗透测试报告的价值直接依赖于测试者的专业技能水平),但是非常准确,可以发现逻辑性更强、更深层次的弱点,效果更加的明显。

一般的渗透测试流程如下:

时间的选择

为减少渗透测试对 *** 和主机的负面影响,渗透测试的时间尽量安排在业务量不大的时段或者是晚上。

策略的选择

为了防止渗透测试造成 *** 和主机的业务中断的问题,在渗透测试的过程中尽量不使用含有拒绝服务的测试策略。

授权渗透测试的监测手段

在评估过程中,由于渗透测试的特殊性,用户可以要求对整体测试流程进行实时的监控(PS:可能会提高渗透测试的成本)。

测试方自控

由渗透测试方对本次测透测试过程中的三方面数据进行完整记录:操作、响应、分析,最终会形成完整有效的渗透测试报告并将其提交给用户。

用户监控

用户监控一共有四种形式:

全程监控:采用类似Ethereal的嗅探软件进行全程抓包嗅探;

择要监控:对其扫描过程不进行录制,仅在安全工程师分析数据后,准备发起渗透前才开启软件进行嗅探;

主机监控:仅监控受测主机的存活状态,用以避免意外情况发生;

指定攻击源:用户指定由特定攻击源地址进行攻击,该源地址的主机由用户进行进程、 *** 连接、数据传输等多方面的监督控制。

(友情提示:文章中会出现与之前文章些许重复的情况,望各位亲包容,不过重复即是记忆。大家要常驻米安网哦!)

如何穿过防火墙

如今采用局域网方式接入Internet已经是各个公司、高校和 *** 机关的主要上网方式,这种方式既节省IP地址,又方便管理和控制。通常网管会在局域网的出口处设置各种防火墙,这样一方面保证了局域网内部的安全xx,另一方面又可以控制局域网内部人员的访问权限。可这样也限制了使用者的使用权限,与外界的联系也很不方便。比方说对于在公司里上班的上班一族和局域网里的穷学生来说,最痛恨的事情莫过于可恨的Boss为了防止大家偷懒而关闭了大多数端口,只允许使用有限的服务,如WWW、POP3、 *** TP等。这样就用不成很多工具,如 *** 、Cterm、FTP等,你和外界的联系会很不方便,有MM而不能聊、有BBS而不能灌、有精彩的歌曲而不能Down,人世间更大的痛苦莫过于此……怎么办?别急别急,本文教你几招,轻轻松松穿透防火墙,尽情使用各种工具!好,下面我们一起来看这几招的原理解说和实战说明。

名次解释:

 协议

协议(Protocol)就是一组在 *** 上发送信息的规则和约定。这些规则控制在 *** 设备间交换消息的内容、格式、定时、顺序和错误,通俗说就是不同 *** 程序的交流语言。我们常见的 *** 使用UDP协议、ICQ使用TCP协议、E-mail程序使用POP3和 *** TP协议,而在常见的协议中SOCKS是一种比较复杂的协议。

 端口

端口(Port)可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等;软件领域的端口一般指 *** 中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。端口号实际上有点和文件描述符相似,也是系统的一种资源,只不过其分配方式有固定的模式。有几种基本分配方式:之一种是全局分配,这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,而且按照协议不同分配不同的端口号,这样导致很多服务被固定在某个协议的端口上,如TCP的21端口就被FTP服务占用;第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地xx作系统提出申请,xx作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来。

端口按端口号可分为三大类:

1.公认端口(WellsKnownsPorts):从0到1023,它们紧密绑定(Binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议,例如80端口实际上就是HTTP通讯。

2.注册端口(RegisteredaPorts):从1024到49151,它们松散绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的,例如许多系统处理动态端口从1024左右开始。

3.动态和“/”或私有端口(Dynamic3and/or *** rivate *** orts):从49152到65535。理论上不应为服务分配这些端口,实际上机器通常从1024起分配动态端口,但也有例外:SUN的RPC端口从32768开始。

  *** 服务器

*** 服务器(Proxy)是 *** 信息的中转站,比方说HTTP *** 服务器。我们使用 *** 浏览器直接链接其他Internet站点并取得 *** 信息时,需送出Request信号来得到回答,然后对方再把信息传送回来。 *** 服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向 *** 服务器发出请求,Request信号会先送到 *** 服务器,由 *** 服务器来取回浏览器所需要的信息并传送给你。而且大部分 *** 服务器都具有缓冲功能,就好像一个大Cache,它不断将新取得的数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。除此之外还有SOCKS *** 服务器,其原理大同小异。

 防火墙

防火墙(Firewall)是一个系统(或一组系统),它能增强机构内部 *** 的安全xx。防火墙系统决定了哪些内部服务可以被外界访问、外界的哪些人可以访问内部的特定服务,以及哪些外部资源可以被内部人员访问。要使一个防火墙有效,所有进入和外出的信息都必须经过防火墙,接受其检查。防火墙必须做到只允许经过授权的数据通过,并且防火墙本身也必须能够免于渗透。但不幸的是,防火墙系统一旦被攻击者突破或迂回,就不能提供任何保护了。

防火墙的实现方式包括“包过滤路由器”和“应用层网关”。包过滤路由器可以过滤协议(ICMP、UDP、TCP等),只允许特定的协议通过;应用层网关就是我们常说的 *** 服务器,它可以提供比路由器更严格的安全策略,我们平时的各种限制就是在应用层实现的。

之一招:SOCKS ***

一般来讲,Boss为防止内部员工偷懒,常常会关闭常见娱乐工具的协议端口,如 *** 使用的UDP4000端口,但常常不会关闭SOCKS的1080端口。这样如果你想用的东西本身支持SOCKS *** ,那么就好办了,直接使用 *** 就OK。

SOCKS是个电路级网关,是DavidKoblas在1990年开发的,此后它就一直作为Internet9RFC中的开放标准。SOCKS在协议栈的TCP层上运行,它的常用端口是1080。与Winsock不同的是,SOCKS不要求应用程序遵循特定的xx作系统平台,比如像Winsock那样遵循Windows。SOCKS *** 与应用层 *** 、HTTP层 *** 不同,SOCKS *** 只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求),所以SOCKS *** 服务器比应用层 *** 服务器要快得多,正因为SOCKS *** 服务器有这样的功能我们才可以通过它来连接Internet。常用到有SOCKS *** 有SOCKS4和SOCKS5两种版本,其中SOCKS4 *** 只支持TCP协议,SOCKS5 *** 支持TCP和UDP协议,还支持各种身份验证机制、服务器端域名解析等。简单点说,SOCKS4能干的SOCKS5都可以干,反过来就不行了,如 *** 只能用SOCKS5 *** ,而FTP可以用SOCKS4和SOCKS5,因为 *** 的数据传输机制是UDP,而FTP用的数据传输机制是TCP。

SOCKS协议就是一种几乎万能的 *** 协议,它虽然不能理解自己转发的数据内部结构,但它能够忠实地转发数据包,完成协议本来要完成的功能。它与你常见的HTTP *** 的不同点在于,HTTP *** 通过HTTP协议进行,HTTP *** 服务器软件了解通讯包的内部结构,在转发过程中还要对通讯进行某种修改和转换。来看看我是怎么用SOCKS *** 来穿透防火墙的吧。

先来看看 *** 中我们怎么用SOCKS *** 吧。首先在 *** 的任务栏通知区的图标处点右键,然后选择系统参数,然后选择 *** 设置,选中使用“SOCKS5 *** 服务器”,填入你所用的SOCKS *** 地址和端口号(如图1),还可以点测试看看这个SOCKS5 *** 可用否。确定后,你的 *** 就是通过61.136.132.138:1080这个SOCKS5 *** 上线的,你所有的数据包现在都是发给这个 *** 服务器,然后再转发出去,这样就可以绕过UDP4000的端口,穿过了防火墙的牢笼。我们还可以用另外一个可以看IP的 *** 看看现在你 *** 所在的IP(如图2),显示的IP是61.136.132.138。这样还有一个附加功能,就是隐藏了你的真实IP,与陌生人聊天时不用隐身了,他看到的IP也是SOCKS *** 服务器的IP地址。

再来看看如何穿透防火墙来使用FTP工具AbsoluteFTP(图3)来从网上下载东西。AbsoluteFTP是一款强大的FTP下载工具,支持SOCKS4和SOCKS5 *** ,而且全中文界面,如果你所在的局域网被封了21端口导致无法使用FTP下载时,可以用这款软件加SOCKS *** 来绕过防火墙实现FTP功能。FTP既可以用SOCKS4,也可以用SOCKS5 *** ,而不像 *** 只能使用SOCKS5 *** 。

在AbsoluteFTP的选项设置中选中全局配置中的防火墙(图4),然后就可以选择是采用SOCKS4还是SOCKS5 *** 、是否需要身份认证等,然后填入SOCKS *** 服务器和端口以及身份认证所需要的用户名和口令,这样就能穿过防火墙使用FTP了。

第二招:Socks2HTTP配合SocksCap32

之一招中,如果网管只开放80端口,把SOCKS常用的端口关闭,或者你想用的软件本身并不支持SOCKS *** ,如Foxmail,或者你就找不到可用的SOCKS *** (网上可用的SOCKS *** 数量远远小于可用的HTTP *** 数量),这时之一招就不灵了,怎么办?请看第二招:Socks2HTTP配合SocksCap32,二者加起来使用的结果就是只要你有一个可用的HTTP *** ,就可使用各种各样的软件来直接绕过防火墙而不管它是否支持SOCKS *** ,我们分两种情况来看。

 1.防火墙关闭了SOCKS端口,但你要用的软件支持SOCKS ***

这种情形下可以直接用Socks2HTTP来搞定。Socks2HTTP()是一个 *** ...我们用“netstatJ–aJ–n”命令来看看本机开放的端口(如图7),就会发现本机多出个1080端口,这个端口就是HTTP2socks模拟出来的在本机上运行的SOCKS *** 服务器侦听端口,现在你就拥有一个本地的SOCKS5 *** 服务器了。

接下来我们看看在 *** 等支持SOCKS接口的软件中该如何设置 *** 服务器。看下面图8,直接将SOCKS5服务器地址添为127.0.0.1,端口为1080,赶快测试一下吧。

 2.防火墙关闭了SOCKS端口,并且你想用的软件不支持SOCKS ***

这就稍微麻烦一些,需要另外一个软件SocksCap32的配合支持来穿透防火墙。SocksCap32是NEC公司()开发的,?..P就解决了。HTTPfProxy网上有的是,只要有了HTTP *** 就有了SOCKS *** 。因为Socks2HTTP就是把HTTP *** 模拟成SOCKS *** ,如果再配合刚才提到的Socks2HTTP,就可以穿透防火墙来使用那些本身没有SOCKS接口的软件了,下面我们来解释这个过程!

现在网上已经有了SocksCap的汉化版本(的控制台。

为了更好理解,我把这个过程分成几步:

之一步:首先按照之一部分那样配置好你的Socks2HTTP,填入可用的HTTP *** ,启动,然后你就拥有一个本地的SOCKS *** 服务器127.0.0.1,端口是1080,现在就可以用这个SOCKS *** 来配置你的SocksCap。

第二步:运行SocksCap,如果是之一次运行,系统会自动提示你是否进入设置界面,如果不是之一次运行,可以选择SocksCap中的文件→设置进入设置界面,如图10。

第三步:在SocksCap的设置界面中填入Socks2HTTP模拟出来的本地SOCKS *** 127.0.0.1,端口是1080,“协议”处选择“SOCKS版本5(5)”→“由远程决定所有名字”,其余部分,例如直接连接的设置是为了有些内部房梢灾苯恿佣挥肧OCKS *** ,日志部分可设置是否产生日志,日志功能能帮助诊断连接失败的原因,我们这里可以对其他部分直接采用默认设置。

第四步:建立“应用程序标识项”。应用程序标识项是在SocksCap中新建的一个快捷方式,这个快捷方式指向你所要用的工具,在SocksCap中启动这个工具就相当于“赋予”了这个工具的SOCKS接口能力。有两种方式来建立这种快捷方式:

 1.用鼠标拖动桌面上的Cterm快捷键到SocksCap的空白处,松开鼠标即会弹出菜单,选择“应用程序标识项”系统会自动建立好标识项(见图11),点确定即可。

 2.也可以点击“新建”,在弹出的对话框里填入相应内容,点击确定。

第五步:运行程序。在SocksCap控制台中双击刚才新建的Cterm快捷方式就可以直接使用了,比方说我现在想连接bbs.mit.edu(图12),以前因为我在教育网里无法访问国外网站,而且网管封了Telnet的23端口,我无法连上这个BBS,现在通过Socks2HTTP和SocksCap,不仅可以出国,而且可以使用Telnet服务连上MIT的BBS,穿透了防火墙!其他工具,比方说FTP、Outlook等,也一样使用。尤其值得一提的是可以用Outlook收Hotmail的信,如果没有这种办法,对于我们这些处在教育网里的穷人(无出国权限)来讲,只能乖乖用HTTP *** 上Hotmail的网站,用WWW方式收信。现在有这个就好了,相当于给Outlook配备了SOCKS接口,直接就可以在Outlook里面收信了。

第三招:HTTPTunel

上面两招也许就够用了,但用上面两招的前提是你要有可用的HTTP *** ,从你这里发送出的所有数据包都是经过包装后通过 *** 转一圈然后再到达它的目的地,这样会带来两个问题:

之一:速度问题,比方说从A发送数据经过 *** B到达C,如果没有防火墙,数据是直接从A发到C;现在因为要绕过防火墙,首先必须要将从A发出的数据封装,使之能够绕过防火墙,然后发给 *** B,B再将这些数据解封再传给C,从C回来的数据也要走一样的过程。这样一来,且先不考虑把这些数据封装、解封去需要耗费的时间,单是经过C绕这么大一个圈子,速度肯定要大打折扣,所以一般来讲肯定不如直接连接速度快。

第二:过度依赖于 *** 导致的稳定xx问题,网上找到的 *** 肯定不是很稳定,很多时候容易产生丢包、服务中断的情况。其实我们并不是非要通过 *** 中转,比方说你哥们在宿舍开了FTP,然后他把精彩的电影放上去,你要看,可是你所在的局域网网管关闭了21的FTP端口,这样你就没法Down了,怎么办?用HTTPTunnel,Tunnel这个英文单词的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据形式来穿过防火墙,实际上是在HTTP请求中创建了一个双向的虚拟数据连接来穿透防火墙。说得简单点,就是说在防火墙两边都设立一个转换程序,将原来需要发送或接受的数据包封装成HTTP请求的格式骗过防火墙,所以它不需要别的 *** 服务器而直接穿透防火墙。HTTPTunnel刚开始时只有Unix版本,现在已经有人把它移植到Window平台上了,它包括两个程序,htc和hts,其中htc是客户端,而hts是服务器端,我们现在来看看我是如何用它们的。比如开了FTP的机器的IP是192.168.1.231,我本地的机器的IP是192.168.1.226,现在我本地因为防火墙的原因无法连接到FTP上,现在用HTTPTunnel的过程如下:

之一步:在我的机器上(192.168.1.226)启动HTTPTunnel客户端。启动MS-DOS的命令行方式,然后执行如图13命令,其中htc是客户端程序,-f参数表示将来自192.168.1.231:80的数据全部转发到本机的8888端口,这个端口可以随便选,只要本机没有占用就可以。

然后我们用Netstat看一下本机现在开放的端口,发现8888端口已在侦听(如图14)。

第二步:在对方机器上启动HTTPTunnel的服务器端,并执行命令“htsJ-fJlocalhost:21J80”,这个命令的意思是说把本机21端口发出去的数据全部通过80端口中转一下,并且开放80端口作为侦听端口,再用Neststat看一下他的机器,就会发现80端口现在也在侦听状态(如图15)。

第三步:在我的机器上用FTP连接本机的8888端口(图16),现在已经连上对方的机器了,看到Movie没有(图17),嘿嘿,快点去下载吧!

可是,人家看到的怎么是127.0.0.1而不是192.168.1.231的地址?因为我现在是连接本机的8888端口,防火墙肯定不会有反应,因为我没往外发包,当然局域网的防火墙不知道了。现在连接上本机的8888端口以后,FTP的数据包不管是控制信息还是数据信息,都被htc伪装成HTTP数据包然后发过去,在防火墙看来,这都是正常数据,相当于欺骗了防火墙。

需要说明的是,这一招的使用需要其他机器的配合,就是说要在他的机器上启动一个hts,把他所提供的服务,如FTP等重定向到防火墙所允许的80端口上,这样才可以成功绕过防火墙!肯定有人会问,如果对方的机器上本身就有WWW服务,也就是说他的80端口在侦听,这么做会不会冲突?HTTPTunnel的优点就在于,即使他的机器以前80端口开着,现在这么用也不会出现什么问题,正常的Web访问仍然走老路子,重定向的隧道服务也畅通无阻!而且这种 *** 有人用鼎鼎大名的入侵检测系统Snort来检测,居然没有发现,隐蔽xx很强。

不过还有最后一点需要提醒,那就是所有这些招数实际上是利用防火墙配置和系统安全管理上的漏洞,如果碰到一个死心眼的网管,一天到晚在网关那里蹲着,看看有那些漏洞没有添好,或者更牛的用TCPDump来抓包分析,一个数据包一个数据包分析,那只能歇菜了

渗透测试应该怎么做呢?

01、信息收集

1、域名、IP、端口

域名信息查询:信息可用于后续渗透

IP信息查询:确认域名对应IP,确认IP是否真实,确认通信是否正常

端口信息查询:NMap扫描,确认开放端口

发现:一共开放两个端口,80为web访问端口,3389为windows远程登陆端口,嘿嘿嘿,试一下

发现:是Windows Server 2003系统,OK,到此为止。

2、指纹识别

其实就是网站的信息。比如通过可以访问的资源,如网站首页,查看源代码:

看看是否存在文件遍历的漏洞(如图片路径,再通过…/遍历文件)

是否使用了存在漏洞的框架(如果没有现成的就自己挖)

02、漏洞扫描

1、主机扫描

Nessus

经典主机漏扫工具,看看有没有CVE漏洞:

2、Web扫描

AWVS(Acunetix | Website Security Scanner)扫描器

PS:扫描器可能会对网站构成伤害,小心谨慎使用。

03、渗透测试

1、弱口令漏洞

漏洞描述

目标网站管理入口(或数据库等组件的外部连接)使用了容易被猜测的简单字符口令、或者是默认系统账号口令。

渗透测试

① 如果不存在验证码,则直接使用相对应的弱口令字典使用burpsuite 进行爆破

② 如果存在验证码,则看验证码是否存在绕过、以及看验证码是否容易识别

风险评级:高风险

安全建议

① 默认口令以及修改口令都应保证复杂度,比如:大小写字母与数字或特殊字符的组合,口令长度不小于8位等

② 定期检查和更换网站管理口令

2、文件下载(目录浏览)漏洞

漏洞描述

一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件、敏感文件等。

渗透测试

① 查找可能存在文件包含的漏洞点,比如js,css等页面代码路径

② 看看有没有文件上传访问的功能

③ 采用…/来测试能否夸目录访问文件

风险评级:高风险

安全建议

① 采用白名单机制限制服务器目录的访问,以及可以访问的文件类型(小心被绕过)

② 过滤【./】等特殊字符

③ 采用文件流的访问返回上传文件(如用户头像),不要通过真实的网站路径。

示例:tomcat,默认关闭路径浏览的功能:

param-namelistings/param-name

param-valuefalse/param-value

3、任意文件上传漏洞

漏洞描述

目标网站允许用户向网站直接上传文件,但未对所上传文件的类型和内容进行严格的过滤。

渗透测试

① 收集网站信息,判断使用的语言(PHP,ASP, *** P)

② 过滤规则绕过 *** :文件上传绕过技巧

风险评级:高风险

安全建议

① 对上传文件做有效文件类型判断,采用白名单控制的 *** ,开放只允许上传的文件型式;

② 文件类型判断,应对上传文件的后缀、文件头、图片类的预览图等做检测来判断文件类型,同时注意重命名(Md5加密)上传文件的文件名避免攻击者利用WEB服务的缺陷构造畸形文件名实现攻击目的;

③ 禁止上传目录有执行权限;

④ 使用随机数改写文件名和文件路径,使得用户不能轻易访问自己上传的文件。

4、命令注入漏洞

漏洞描述

目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句,导致各种调用系统命令的web应用,会被攻击者通过命令拼接、绕过黑名单等方式,在服务端运行恶意的系统命令。

渗透测试

风险评级:高风险

安全建议

① 拒绝使用拼接语句的方式进行参数传递;

② 尽量使用白名单的方式(首选方式);

③ 过滤危险 *** 、特殊字符,如:【|】【】【;】【’】【"】等

5、SQL注入漏洞

漏洞描述

目标网站未对用户输入的字符进行特殊字符过滤或合法性校验,允许用户输入特殊语句查询后台数据库相关信息

渗透测试

① 手动测试:判断是否存在SQL注入,判断是字符型还是数字型,是否需要盲注

② 工具测试:使用sqlmap等工具进行辅助测试

风险评级:高风险

安全建议

① 防范SQL注入攻击的更佳方式就是将查询的逻辑与其数据分隔,如Java的预处理,PHP的PDO

② 拒绝使用拼接SQL的方式

6、跨站脚本漏洞

漏洞描述

当应用程序的网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建 HTML或JavaScript 的浏览器 API 更新现有的网页时,就会出现 XSS 缺陷。XSS 让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。

三种XSS漏洞:

① 存储型:用户输入的信息被持久化,并能够在页面显示的功能,都可能存在存储型XSS,例如用户留言、个人信息修改等。

② 反射型:URL参数需要在页面显示的功能都可能存在反射型跨站脚本攻击,例如站内搜索、查询功能。

③ DOM型:涉及DOM对象的页面程序,包括:document.URL、document.location、document.referrer、window.location等

渗透测试

存储型,反射型,DOM型

风险评级:高风险

安全建议

① 不信任用户提交的任何内容,对用户输入的内容,在后台都需要进行长度检查,并且对【】【】【"】【’】【】等字符做过滤

② 任何内容返回到页面显示之前都必须加以html编码,即将【】【】【"】【’】【】进行转义。

7、跨站请求伪造漏洞

漏洞描述

CSRF,全称为Cross-Site Request Forgery,跨站请求伪造,是一种 *** 攻击方式,它可以在用户毫不知情的情况下,以用户的名义伪造请求发送给被攻击站点,从而在未授权的情况下进行权限保护内的操作,如修改密码,转账等。

渗透测试

风险评级:中风险(如果相关业务极其重要,则为高风险)

安全建议

① 使用一次性令牌:用户登录后产生随机token并赋值给页面中的某个Hidden标签,提交表单时候,同时提交这个Hidden标签并验证,验证后重新产生新的token,并赋值给hidden标签;

② 适当场景添加验证码输入:每次的用户提交都需要用户在表单中填写一个图片上的随机字符串;

③ 请求头Referer效验,url请求是否前部匹配Http(s)😕/ServerHost

④ 关键信息输入确认提交信息的用户身份是否合法,比如修改密码一定要提供原密码输入

⑤ 用户自身可以通过在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie;

8、内部后台地址暴露

漏洞描述

一些仅被内部访问的地址,对外部暴露了,如:管理员登陆页面;系统监控页面;API接口描述页面等,这些会导致信息泄露,后台登陆等地址还可能被爆破。

渗透测试

① 通过常用的地址进行探测,如login.html,manager.html,api.html等;

② 可以借用burpsuite和常规页面地址字典,进行扫描探测

风险评级:中风险

安全建议

① 禁止外网访问后台地址

② 使用非常规路径(如对md5加密)

9、信息泄露漏洞

漏洞描述

① 备份信息泄露:目标网站未及时删除编辑器或者人员在编辑文件时,产生的临时文件,或者相关备份信息未及时删除导致信息泄露。

② 测试页面信息泄露:测试界面未及时删除,导致测试界面暴露,被他人访问。

③ 源码信息泄露:目标网站文件访问控制设置不当,WEB服务器开启源码下载功能,允许用户访问网站源码。

④ 错误信息泄露:目标网站WEB程序和服务器未屏蔽错误信息回显,页面含有CGI处理错误的代码级别的详细信息,例如SQL语句执行错误原因,PHP的错误行数等。

⑤ 接口信息泄露:目标网站接口访问控制不严,导致网站内部敏感信息泄露。

渗透测试

① 备份信息泄露、测试页面信息泄露、源码信息泄露,测试 *** :使用字典,爆破相关目录,看是否存在相关敏感文件

② 错误信息泄露,测试 *** :发送畸形的数据报文、非正常的报文进行探测,看是否对错误参数处理妥当。

③ 接口信息泄露漏洞,测试 *** :使用爬虫或者扫描器爬取获取接口相关信息,看目标网站对接口权限是否合理

风险评级:一般为中风险,如果源码大量泄漏或大量客户敏感信息泄露。

安全建议

① 备份信息泄露漏洞:删除相关备份信息,做好权限控制

② 测试页面信息泄露漏洞:删除相关测试界面,做好权限控制

③ 源码信息泄露漏洞:做好权限控制

④ 错误信息泄露漏洞:将错误信息对用户透明化,在CGI处理错误后可以返回友好的提示语以及返回码。但是不可以提示用户出错的代码级别的详细原因

⑤ 接口信息泄露漏洞:对接口访问权限严格控制

10、失效的身份认证

漏洞描述

通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌, 或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。

渗透测试

① 在登陆前后观察,前端提交信息中,随机变化的数据,总有与当前已登陆用户进行绑定的会话唯一标识,常见如cookie

② 一般现在网站没有那种简单可破解的标识,但是如果是跨站认证,单点登录场景中,可能为了开发方便而简化了身份认证

风险评级:高风险

安全建议

① 使用强身份识别,不使用简单弱加密方式进行身份识别;

② 服务器端使用安全的会话管理器,在登录后生成高度复杂的新随机会话ID。会话ID不能在URL中,可以安全地存储,在登出、闲置超时后使其失效。

11、失效的访问控制

漏洞描述

未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。

渗透测试

① 登入后,通过burpsuite 抓取相关url 链接,获取到url 链接之后,在另一个浏览器打开相关链接,看能够通过另一个未登入的浏览器直接访问该功能点。

② 使用A用户登陆,然后在另一个浏览器使用B用户登陆,使用B访问A独有的功能,看能否访问。

风险评级:高风险

安全建议

① 除公有资源外,默认情况下拒绝访问非本人所有的私有资源;

② 对API和控制器的访问进行速率限制,以更大限度地降低自动化攻击工具的危害;

③ 当用户注销后,服务器上的Cookie,JWT等令牌应失效;

④ 对每一个业务请求,都进行权限校验。

12、安全配置错误

漏洞描述

应用程序缺少适当的安全加固,或者云服务的权限配置错误。

① 应用程序启用或安装了不必要的功能(例如:不必要的端口、服务、网页、帐户或权限)。

② 默认帐户的密码仍然可用且没有更改。

③ 错误处理机制向用户披露堆栈跟踪或其他大量错误信息。

④ 对于更新的系统,禁用或不安全地配置最新的安全功能。

⑤ 应用程序服务器、应用程序框架(如:Struts、Spring、ASP.NET)、库文件、数据库等没有进行相关安全配置。

渗透测试

先对应用指纹等进行信息搜集,然后针对搜集的信息,看相关应用默认配置是否有更改,是否有加固过;端口开放情况,是否开放了多余的端口;

风险评级:中风险

安全建议

搭建最小化平台,该平台不包含任何不必要的功能、组件、文档和示例。移除或不安装不适用的功能和框架。在所有环境中按照标准的加固流程进行正确安全配置。

13、使用含有已知漏洞的组件

漏洞描述

使用了不再支持或者过时的组件。这包括:OS、Web服务器、应用程序服务器、数据库管理系统(DBMS)、应用程序、API和所有的组件、运行环境和库。

渗透测试

① 根据前期信息搜集的信息,查看相关组件的版本,看是否使用了不在支持或者过时的组件。一般来说,信息搜集,可通过http返回头、相关错误信息、应用指纹、端口探测(Nmap)等手段搜集。

② Nmap等工具也可以用于获取操作系统版本信息

③ 通过CVE,CNVD等平台可以获取当前组件版本是否存在漏洞

风险评级:按照存在漏洞的组件的安全风险值判定当前风险。

安全建议

① 移除不使用的依赖、不需要的功能、组件、文件和文档;

② 仅从官方渠道安全的获取组件(尽量保证是最新版本),并使用签名机制来降低组件被篡改或加入恶意漏洞的风险;

③ 监控那些不再维护或者不发布安全补丁的库和组件。如果不能打补丁,可以考虑部署虚拟补丁来监控、检测或保护。

详细学习可参考:

怎么样绕过防火墙?

那就需要自己有着非常熟练的 *** 编程技术了,才有可能绕过防火墙的阻拦。否则的话,是无法绕过防火墙的。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。