运用须要对输入进行检讨,不许可用户直接提交未经由验证的数据到做事器,由于这些数据来不可编辑的控件,或者用户没有前端提交的权限,任何可编辑控件必须有阻挡恶意的写入或修正的功能。开拓运用的时候须要把稳韶光处理问题。攻击者可以大略地通过理解不同的处理韶光、结果来获取一些参数,以是虽然他们提交的结果也在相同的韶光,符合规则,但却添加了其他步骤或者处理。
运用程序须要有阻挡攻击者通过延长许可的交易韶光的功能,这种情形可以在操作超过规定的韶光后通过取消或者重置交易。运用程序须要能够过滤检测的业务逻辑:当一个功能或者操作只许可被实行有限的几次 或者用户不再能够实行这个功能的时候,运用须要能够检测出来。为了阻挡用户过多次的实行某个功能, 运用程序可以通过类似缓存这种机制来掌握,或者利用不许可用户过多次实行功能的机制。
应有用户精确的按照业务流程来完成每一个步骤的检测机制,这样可以阻挡黑客在业务流程中通过跳过、绕过、重复任何业务流程中的工序检讨。开拓这部分业务逻辑的时候该当测试一些无用或者误用的测试用例,当没有按照精确的顺序完成精确的步骤的时候,就不能成功完成业务流程。

瞥见最新的漏洞建议是18年的,以是自己也发一个最新的,整理不易。#
目录
SQL注入OS命令注入XPath注入LDAP注入JSON注入XSSCSRF会话攻击身份认证直接工具引用Tomcat安全配置Apache安全配置数据库通用配置绕过认证越权访问文件上传文件目录遍历下载网站重定向或转发业务逻辑漏洞转载自https://www.secquan.org/Share/1071270问题归纳#1.1 web安全#1.1.1 sql注入#1.1.1.1 漏洞描述#SQL注入攻击紧张是由于程序员在开拓过程中没有对客户端所传输到做事器真个参数进行严格的安全检讨,同时SQL语句的实行引用了该参数,并且SQL语句采取字符串拼接的办法实行时,攻击者将可能在参数中插入恶意的SQL查询语句,导致做事器实行了该恶意SQL语句。SQL注入漏洞紧张影响是攻击者可利用该漏洞盗取数据库中的任意内容,在某些场景下,攻击者将有可能得到数据库做事器的完备掌握权限。
1.1.1.2 修复建议#修正Web运用做事的软件部分,增加对客户端提交数据的合法性验证,至少严格过滤SQL语句中的关键字,并且所有验证都该当在做事器端实现,以防客户端(IE页面代码部分)掌握被绕过。
验证GET、POST、COOKIE等方法中URL后面跟的参数,需过滤的关键字为:
[1] ' 单引号
[2] " 双引号
[3] ' 反斜杠单引号
[4] " 反斜杠双引号
[5] ) 括号
[6] ; 分号
[7] -- 双减号
[8] + 加号
[9]SQL关键字,如select,delete,drop等等,把稳对付关键字要对大小写都识别,如:select ;SELECT;seLEcT等都应识别
建议降落Web运用访问利用较低权限的用户访问数据库。不要利用数据库管理员等高权限的用户访问数据库。
1.1.2 跨站脚本攻击(xss)#1.1.2.1 漏洞描述#跨站脚本攻击(Cross Site Scripting),为反面层叠样式表(Cascading Style Sheets, CSS)的缩写稠浊,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入个中Web里面的Script代码会被实行,从而达到恶意攻击用户的目的。在不同场景下,XSS有相应不同的表现形式,紧张分为反射型、存储型以及DOM型的跨站脚本攻击,所造成的影响紧张是盗取用户登录凭据(Cookies)、挂马攻击、页面访问挟持等。
1.1.2.2 修复建议#建议过滤的关键字为:
[1] ' 单引号
[2] " 双引号
[3] / 斜杠
[4] \ 反斜杠
[5] ) 括号
[6] ; 分号
[7] [ 中括号
[8] < 尖括号
[9] > 尖括号
比如把<编码为<
在cookie中加入httponly属性可以在一定程度上保护用户的cookie,减少涌现XSS时丢失。
1.1.3 XML外部实体(XXE)注入#1.1.3.1 漏洞概述#XXE Injection即XML External Entity Injection,也便是XML外部实体注入攻击。漏洞是在对非安全的外部实体数据进⾏行处理时引发的安全问题。在XML1.0标准⾥里,XML文档构造里定义了实体(entity)这个观点,实体可以通过预定义在文档中调用,实体的标识符可访问本地或远程内容。如果在这个过程中引入了“污染”源,在对XML文档处理后则可能导致信息泄露、文件读取、命令实行等安全问题。
1.1.3.2 修复建议#对付PHP,常见的XML解析方法有:DOMDocument、SimpleXML、XMLReader,这三者都基于 libxml 库解析 XML,以是均受影响,xml_parse 函数则基于 expact 解析器,默认不载入外部 DTD ,不受影响。可以在php解析xml文件之前利用libxml_disable_entity_loader(true)来禁止加载外部实体(对上述三种 XML 解析组件都有效),并利用libxml_use_internal_errors()禁止报错;
对付Java,设置
DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);
对用户的输入做过滤,如<、>、'、"、&等
1.1.4 跨站点假造要求(CSRF)#1.1.4.1 漏洞概述#CSRF(Cross-Site Request Forgery,跨站点假造要求)是一种网络攻击办法,该攻击可以在用户绝不知情的情形下以用户自身的名义假造要求发送给受攻击站点,从而在未授权的情形下实行在权限保护之下的操作。详细来讲,可以这样理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意要求,对做事器来说这个要求是完备合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发,盗取你的账号,添加系统管理员,乃至于购买商品、虚拟货币转账等。
1.1.4.2 修复建议#检测HTTP header中的referer字段。做事器可以查看referer是否为自己的站点,如果不是,则谢绝做事。
在主要要求中的每一个URL和所有的表单中添加token
1.1.5 做事器端要求假造(SSRF)#1.1.5.1 漏洞概述#SSRF(Server-Side Request Forgery:做事器端要求假造) 是一种由攻击者布局形成并由做事端发起要求的一个安全漏洞。一样平常情形下,SSRF攻击的目标是从外网无法访问的内部系统。(正是由于它是由做事端发起的,以是它能够要求到与它相连而与外网隔离的内部系统)
SSRF 形成的缘故原由大都是由于做事端供应了从其他做事器运用获取数据的功能且没有对目标地址做过滤与限定。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。终极将可能导致,攻击者可通过外网做事器端利用该漏洞访问内网做事器真个资源。
1.1.5.2 修复建议#过滤返复书息,验证远程做事器对要求的相应是比较随意马虎的方法。如果web运用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
统一缺点信息,避免用户可以根据缺点信息来判断远端做事器的端口状态。
限定要求的端口为http常用的端口,比如80,443,8080,8090。
禁用不须要的协议。仅仅许可http和https要求。可以防止类似于file:///, gopher://,ftp://等引起的问题。
过滤内网ip,限定访问内网
1.1.6 任意文件上传#1.1.6.1 漏洞概述#任意文件上传漏洞紧张是由于程序员在开拓文件上传功能时,没有考虑对文件格式后缀的合法性进行校验或只考虑在运用前端(Web浏览器端)通过javascript进行后缀校验,攻击者可上传一个包含恶意代码的动态脚本(如jsp、asp、php、aspx文件后缀)到做事器上,攻击者访问该脚本时做事器将对包含恶意代码的动态脚本解析,终极实行相应的恶意代码。该漏洞终极将可能直接影响运用系统的做事器安全,攻击者可通过所上传的脚本完备掌握做事器。
1.1.6.2 修复建议#对上传文件格式进行严格校验及安全扫描,防止上传恶意脚本文件;
设置权限限定,禁止上传目录的实行权限;
严格限定可上传的文件类型;
严格限定上传的文件路径。
文件扩展名做事端白名单校验。
文件内容做事端校验。
上传文件重命名。
隐蔽上传文件路径。
1.1.7 任意文件下载或读取#1.1.7.1 漏洞概述#任意文件下载或读取漏洞紧张是由于运用系统在供应文件下载或读取功能时,在文件路径参数中直接指定文件路径的同时并没有对文件路径的合法性进行校验,导致攻击者可通过目录跳转(..\或../)的办法下载或读取到原始指定路径之外的文件。攻击者终极可通过该漏洞下载或读取系统上的任意文件,如数据库文件、运用系统源代码、密码配置信息等主要敏感信息,造成系统的敏感信息透露。
1.1.7.2 修复建议#对path参数进行过滤,依次过滤“.”、“..”、“/”、“\”等字符。
或者对付下载文件的目录做好限定,只能下载指定目录下的文件,或者将要下载的资源文件路径存入数据库,附件下载时指天命据库中的id即可,id即对应的资源。
1.1.8 任意目录遍历#1.1.8.1 漏洞概述#任意目录遍历紧张缘故原由是由于运用系统所供应的目录浏览或文件浏览功能中,在处理当前路径参数时没有对参数进行合法性校验,攻击者可通过目录跳转的办法(../或..\)浏览预想之外的目录信息。攻击者将可能利用该漏洞访问运用系统的任意文件目录,导致可浏览敏感目录下的文件信息,造成敏感信息透露。
1.1.8.2 修复建议#对参数进行过滤,依次过滤“.”、“..”、“/”、“\”等字符。1.1.9 .svn/.git源代码透露#1.1.9.1 漏洞概述#.svn/.git源代码透露紧张缘故原由是由于运用系统开拓职员或运维管理职员在对运用系统进行版本迭代更新时,没有及时对代码版本掩护程序(svn或git)中所产生的代码索引或代码库文件进行及时清理,攻击者可通过读取该代码索引或代码库文件访问并下载运用系统的源代码信息,终极导致运用系统的源代码信息遭到透露,攻击者可进一步通过源代码审计的办法挖掘运用系统中存在的安全隐患。
1.1.9.2 修复建议#开拓职员在利用 SVN/Git 时,严格利用导出功能,禁止直接复制代码支配上线。
在不影响代码运行的情形下,删除线上代码中所有目录下的 .svn/.git 目录。
1.1.10 信息透露#1.1.10.1 漏洞概述#信息透露紧张是由于开拓职员或运维管理职员的轻忽所导致。如未及时删除调试页面、未关闭程序调试功能、未屏蔽程序缺点信息、备份文件未删除、数据库备份文件未删除、未屏蔽敏感数据信息等多个方面所导致的不同严重程度的信息透露。攻击者可通过所节制的信息进一步剖析攻击目标,从而有效发起下一步的有效攻击。
1.1.10.2 修复建议#对身份验证时传输的用户名密码等作加密处理,为了防止重放攻击可以在验证时加个随机数,以担保验证单次有效。
关闭缺点输出,防止调试信息透露,或者当web运用程序出错时,统一返回一个缺点页面或直接跳转至首页
合理设置做事器端各种文件的访问权限
只管即便避免跨域的数据传输,对付同域的数据传输利用xmlhttp的办法作为数据获取的办法,依赖于javascript在浏览器域里的安全性保护数据。如果是跨域的数据传输,必须要对敏感的数据获取做权限认证,例如对referer的来源做限定,加入token等
1.1.11 PHPinfo界面创造#1.1.11.1 漏洞概述#phpinfo透露紧张是由于开拓职员或运维管理职员的轻忽所导致。如未及时删除调试页面、未关闭程序调试功能、未屏蔽程序缺点信息、备份文件未删除、数据库备份文件未删除、未屏蔽敏感数据信息等多个方面所导致的不同严重程度的信息透露。Web站点的某些测试页面可能会利用到PHP的phpinfo()函数,会输出做事器的关键信息,从而造成信息透露,攻击者可通过所节制的信息进一步剖析攻击目标,从而有效发起下一步的有效攻击。
1.1.11.2 修复建议#开拓职员在利用phpinfo界面时,严格利用导出功能,禁止直接复制代码支配上线。
在不影响代码运行的情形下,删除线上代码中所有目录下的phphinfo目录。
1.1.12 IIS短文件名透露#1.1.12.1 漏洞概述#Internet Information Services(IIS,互联网信息做事)是由微软公司供应的基于运行Microsoft Windows的互联网基本做事。Microsoft IIS在实现上存在文件列举漏洞,攻击者可利用此漏洞列举网络做事器根目录中的文件。危害:攻击者可以利用“~”字符猜解或遍历做事器中的文件名,或对IIS做事器中的.Net Framework进行谢绝做事攻击。
黑客可通过该漏洞考试测验获取网站做事器下存放文件的文件名,达到获取更多信息来入侵做事器的目的。
1.1.12.2 修复建议#修正Windows配置,关闭短文件名功能。
关闭NTFS 8.3文件格式的支持。该功能默认是开启的,对付大多数用户来说无需开启。
如果是虚拟主机空间用户,可采取以下修复方案:
1) 修正注册列表HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation的值为1(此修正只能禁止NTFS8.3格式文件名创建,已经存在的文件的短文件名无法移除)。
2)如果你的web环境不须要asp.net的支持你可以进入Internet 信息做事(IIS)管理器 --- Web 做事扩展 - ASP.NET 选择禁止此功能。
3)升级net framework 至4.0以上版本。
将web文件夹的内容拷贝到另一个位置,比如D:\www到D:\www.back,然后删除原文件夹
D:\www,再重命名D:\www.back到D:\www。如果不重新复制,已经存在的短文件名则是不会消逝的。
1.1.13 slow http Dos谢绝做事#1.1.13.1 漏洞概述#按照设计,HTTP协议哀求做事器在处理之前完备吸收要求。如果HTTP要求没有完成,或者传输速率非常低,做事器会保持其资源忙于等待别的数据。如果做事器保持太多的资源忙,这将造成一个谢绝做事。严重者一台主机即可让web运行缓慢乃至是崩溃!
1.1.13.2 修复建议#对付 Apache 可以做以下优化:
设置得当的 timeout 韶光(Apache 已默认启用了 reqtimeout 模块),规定了 Header 发送的韶光以及频率和 Body 发送的韶光以及频率
增大 MaxClients(MaxRequestWorkers):增加最大的连接数。根据官方文档,两个参数是一回事,版天职歧,MaxRequestWorkers was called MaxClients before version 2.3.13.Theold name is still supported.
默认安装的 Apache 存在 Slow Attack 的威胁,缘故原由便是虽然设置的 timeoute,但是最大连接数不足,如果攻击的要求频率足够大,仍旧会占满Apache的所有连接
1.1.14 T甲骨文Javaserver faces的多个漏洞#1.1.14.1 漏洞概述#甲骨文的JavaServer Faces包含多个漏洞,可能许可攻击者得到敏感信息。亚历克斯Kouzemtchenko和Coverity的安全研究实验室漏洞报告的乔恩Passki指出甲骨文的JavaServer Faces包含以下漏洞:偏目录遍历通过资源标识符(CWE-22):存在毛病,其许可在运用程序内的目录遍历。目录遍历是有限的,它不能被用来从运用逃脱和访问运用做事器上的任意文件。偏目录遍历通过库名称(CWE-22)。存在毛病,其许可在运用程序内的目录遍历。目录遍历是有限的,它不能被用来从运用逃脱和访问运用做事器上的任意文件。
1.1.14.2 修复建议#建议更新版本,更新公告中列出的建议关键路径的更新 - 2013年10月为CVE-2013-3827
1.1.15 CRLF注入#1.1.15.1 漏洞概述#CRLF注入即“HTTP相应头拆分漏洞”,紧张是由于运用系统在吸收用户浏览器发送的参数信息后,参数信息在HTTP相应头中进行了输出并未经由有效的校验,攻击者可提反目意的参数信息(\r\n)从而对HTTP相应头进行掌握。攻击者可通过该漏洞发起web缓存传染、用户信息涂改、盗取敏感用户页面、跨站脚本漏洞等攻击,从而造成普通用户遭受到恶意攻击。
1.1.15.2 修复建议#限定用户输入的CR和LF,或者对CR和LF字符精确编码后再输出。CR、LF分别对应回车(%0d)、换行(%0a)字符。1.1.16 命令实行注入#1.1.16.1 漏洞概述#命令实行注入紧张是由于开拓职员在处理运用系统发起操作系统命令时引用了客户端参数,同时没有对该参数进行合法性校验,攻击者可在参数中注入恶意的命令参数,致使实行命令的过程中实行了攻击者所指定的恶意命令。通过该漏洞攻击者可实行任意的操作系统命令,在权限配置不当的情形下可直接得到操作系统的完备掌握权限。
1.1.16.2 修复建议#只管即便避免利用exec、system、passthru、popen、shell_exec、eval、execute、assert等此类实行命令/实行代码干系函数。
实行代码/命令的参数,或文件名,不要利用外部获取,禁止和用户输入干系,只能由开拓职员定义代码内容,用户只能提交“1、2、3”参数,代表相应代码,防止用户布局。
1.1.17 URL重定向#1.1.17.1 漏洞概述#URL重定向紧张是由于Web运用系统在处理URL重定向时没有对吸收到的URL参数进行合法性校验,攻击者可指定URL路径为恶意URL或恶意域名,当用户访问该URL重定向页面时将可能跳转到攻击者所指定的恶意页面,从而造成用户遭受到恶意代码的攻击。
1.1.17.2 修复建议#避免利用重定向和转发
如果利用了重定向和转发,则不要在接管目标时涉及到用户参数
如果无法避免利用用户参数,则应确保其供应的值对付当前用户是有效的,并已经授权
确定白名单及网络边界,限定协议以及可访问的网络
1.1.18 Json挟制#1.1.18.1 漏洞概述#Json挟制紧张是由于网站页面在响运用户要求时采取Json数组的办法进行返回,而该页面没有进行相应的合法判断,攻击者可在恶意网站上布局访问该页面的URL并诱惑用户进行点击访问,终极攻击者可通过Javscript Hook的办法盗取用户在该页面上所返回的Json数组信息,从而造成用户的敏感信息透露。
1.1.18.2 修复建议#严格安全的实现 CSRF 办法调用 JSON 文件:限定 Referer 、支配一次性 Token等。
严格按照JSON格式标准输出 Content-Type 及编码( Content-Type : application/json; charset=utf-8)。
严格过滤 callback 函数名及 JSON 里数据的输出。
严格限定对 JSONP 输出 callback 函数名的长度。
1.1.19 第三方组件安全#1.1.19.1 漏洞概述#第三方组件紧张包括Ewebeditor、FCKeditor、Ueditor、JQuery等常用第三方组件,开拓职员在开拓过程中调用第三方组件时并未考虑组件当前的安全状况,攻击者可通过第三方组件上的安全漏洞攻击运用系统,从而影响运用系统自身的安全。
1.1.19.2 修复建议#无
1.1.20 本地/远程文件包含#1.1.20.1 漏洞概述#本地/远程文件包含漏洞紧张涌如今采取PHP开拓的运用系统中,在PHP代码开拓过程中较常采取文件包含的办法进行对代码的引用从而提高编码效率以及代码扩展性,被包含的文件内容将被当作php代码进行解析。当所须要包含的文件路径通过客户端浏览器进行提交时,攻击者可指定文件路径到本地或远程的恶意代码文件,运用系统将实行该文件中的恶意代码,终极攻击者可通过该办法获取运用系统的掌握权限。
1.1.20.2 修复建议#担保参数用户不可控/不可布局性。
利用 basename() 函数处理参数。
对所有的变量初始化。
1.1.21 任意代码实行#1.1.21.1 漏洞概述#任意代码实行紧张是由于运用系统在处理动态代码实行的过程中,部分代码片段可由客户端浏览器提交参数到做事器进行指定,从而攻击者可通过提反目意的代码参数到做事器,运用系统将实行所提交的恶意代码,终极攻击者可通过该漏洞直接得到运用系统的掌握权限。
1.1.21.2 修复建议#只管即便避免利用exec、system、passthru、popen、shell_exec、eval、execute、assert等此类实行命令/实行代码干系函数。
实行代码/命令的参数,或文件名,不要利用外部获取,禁止和用户输入干系,只能由开拓职员定义代码内容,用户只能提交“1、2、3”参数,代表相应代码,防止用户布局。
1.1.22 Struts2远程命令实行#1.1.22.1 漏洞概述#Struts2远程命令实行紧张是由于网站采取较低版本的Strut2框架,该框架低版本在处理远程客户端参数名、参数值、文件名参数等参数内容时没有经由严格的过滤,导致可注入到OGNL表达式中,从而造成任意代码实行漏洞。攻击者可通过布局恶意的OGNL表达式从而实现任意命令实行,终极可通过该漏洞完备得到网站权限乃至操作系统权限。
1.1.22.2 修复建议#Struts2远程命令实行漏洞涉及多个漏洞编号,如S2-005、S2-008、S2-009、S2-016、S2-020、S2-029、S2-032、S2-037、S2-045、S2-046、S2-052、S2-055等等,根据实际情形,建议升级Struts2框架至最新版本即可。如:
系统存在S2-016 Struts2远程命令实行漏洞,建议升级升级Struts2框架至最新版本。
1.1.23 Spring远程命令实行#1.1.23.1 漏洞概述#Spring远程命令实行紧张是由于网站采取较低版本的Spring框架,该框架低版本在处理Spring标签时没有进行合法性校验,导致可将标签内容信息注入到表达式中,从而造成任意代码实行漏洞。攻击者可通过布局恶意的标签内容到表达式从而实现任意命令实行,终极可通过该漏洞完备得到网站权限乃至操作系统权限。
1.1.23.2 修复建议#该漏洞为Spring标签EL表达式注入,CVE编号为CVE-2011-2730。
建议升级Spring至Spring3.1往后版本,或修正web.xml配置关闭对EL表达式的支持:
Spring Expression Language SupportspringJspExpressionSupportfalse
1.1.24 反序列化命令实行#1.1.24.1 漏洞概述#反序列化命令实行紧张是由于运用系统在通过反序列的办法处理字节序列时没有对该序列信息进行校验,攻击者可假造恶意的字节序列并提交到运用系统时,运用系统将对字节序列进行反序列处理时将实行攻击者所提交的恶意字节序列,从而导致任意代码或命令实行,终极可完成得到运用系统掌握权限或操作系统权限。
1.1.24.2 修复建议#无
1.2 业务逻辑安全#1.2.1 用户名列举#1.2.1.1 漏洞概述#在运用系统登录过程中,当输入缺点的用户名信息时,运用程序将反馈相应的诸如“用户不存在”的缺点提示,攻击者可通过该提示为依据进行对用户名的列举,猜解出已存在于运用系统的用户名信息,终极攻击者可进行一步发起对已有用户的密码猜解。
1.2.1.2 修复建议#模糊上岸缺点信息,对用户名缺点及密码缺点均提示”用户名或密码缺点,请重新输入”。
户登录后须要对初始口令进行修正,防止攻击者利用初始口令进行暴力破解。
系统设置强密码策略,建议用户密码采取10位以上数字加大小写字母。
对密码暴力猜解行为进行图灵验证,一旦创造用户口令破解行为及时对账户进行限时封停处理。
1.2.2 用户密码列举#1.2.2.1 漏洞概述#在运用系统登录过程中,由于并未限定用户的密码输入缺点次数,攻击者可通过密码字典不断列举指定用户的密码信息,终极用户密码将可能遭受到破解,攻击者可通过所破解的用户密码进入运用系统并发起进一步的攻击。
1.2.2.2 修复建议#模糊上岸缺点信息,对用户名缺点及密码缺点均提示”用户名或密码缺点,请重新输入”。
用户登录后须要对初始口令进行修正,防止攻击者利用初始口令进行暴力破解。
系统设置强密码策略,建议用户密码采取10位以上数字加大小写字母。
对密码暴力猜解行为进行图灵验证,一旦创造用户口令破解行为及时对账户进行限时封停处理。
1.2.3 用户弱口令#1.2.3.1 漏洞概述#由于运用系统的干系用户的安全意识薄弱,同时运用系统并未有效的逼迫性密码策略哀求,从而将可能存在弱口令用户,攻击者可轻易通过字典猜解的办法得到用户的密码并进入运用系统发起进一步攻击。
1.2.3.2 修复建议#用户登录后须要对初始口令进行修正,防止攻击者利用初始口令进行暴力破解。
系统设置强密码策略,建议用户密码采取10位以上数字加大小写字母。
对密码暴力猜解行为进行图灵验证,一旦创造用户口令破解行为及时对账户进行限时封停处理。
1.2.4 网站后台弱口令#1.2.4.1 漏洞概述#由于网站后台管理员密码强度低,随意马虎被攻击者暴力破解。攻击者可利用弱口令得到网站管理员权限,进入网站后台,严重者可导致做事器沦陷
1.2.4.2 修复建议#用户用户登录后须要对初始口令进行修正,防止攻击者利用初始口令进行暴力破解。
系统设置强密码策略,建议用户密码采取10位以上数字加大小写字母。
对密码暴力猜解行为进行图灵验证,一旦创造用户口令破解行为及时对账户进行限时封停处理。
1.2.5 会话标志固定攻击#1.2.5.1 漏洞概述#运用系统在用户登录成功或登录失落败后并未对当前的会话标志(Session ID)进行更新,从而攻击者可布局一个未登录且带有Session ID的URL并发送到用户,用户点击该URL并进行登录成功后,攻击者可通过该Session ID伪装用户并成功进入运用系统,从而可进一步发起对运用系统的攻击。
1.2.5.2 修复建议#用户登录成功后重新创建一个Sesssion ID,并销毁该用户之前上岸利用的Sesssion ID。
限定Sesssion ID的时效性,一段韶光后销毁Sesssion ID。
添加其他认证成分,如User-Agent验证及Token校验等。
1.2.6 平行越权访问#1.2.6.1 漏洞概述#运用系统在处理同一业务功能数据时,并未对数据与当前用户的权限进行合法性校验,从而导致用户可越权访问、修改、删除、添加其他用户的信息,造成越权操作。常见如:访问任意用户订单、修正任意用户密码、删除任意用户信息等。
1.2.6.2 修复建议#对付每个功能的访问,须要明确付与特定角色的访问权限。
如果某功能参与了事情流程,检讨并确保当前的条件是授权访问此功能的得当状态。
1.2.7 垂直越权访问#1.2.7.1 漏洞概述#运用系统在处理各个角色业务功能时,并未对当前用户角色与该业务功能的权限标志进行判断,导致用户可越权访问非自身权限范围内的业务功能,造成越权操作。常见如:越权添加、修正、删除用户以及权限、越权访问系统管理功能等。
1.2.7.2 修复建议#对付每个功能的访问,须要明确付与特定角色的访问权限。
如果某功能参与了事情流程,检讨并确保当前的条件是授权访问此功能的得当状态。
1.2.8 未授权访问#1.2.8.1 漏洞概述#运用系统对业务功能页面并未进行有效的身份校验,在未登录且获知业务功能页面的访问地址条件下,可直接操作该页面下的功能,将可能对运用系统的恶意毁坏。
1.2.8.2 修复建议#对付每个功能的访问,须要明确付与特定角色的访问权限。
如果某功能参与了事情流程,检讨并确保当前的条件是授权访问此功能的得当状态。
1.2.9 登录绕过漏洞#1.2.9.1 漏洞概述#由于对登录的账号及口令校验存在逻辑毛病,或再次利用做事器端返回的干系参数作为终极登录凭据,导致可绕过登录限定,如做事器返回一个flag参数作为登录是否成功的标准,但是由于代码末了登录是否成功是通过获取这个flag参数来作为终极的验证,导致攻击者通过修正flag参数即可绕过登录的限定!
1.2.9.2 修复建议#修正验证逻辑,如是否登录成功做事器端返回一个参数,但是到此便是终极验证,不须要再对返回的参数进行利用并作为登录是否成功的终极判断依据!
1.2.10 验证码毛病#1.2.10.1 漏洞概述#常见于运用系统在登录处理流程过程中,当用户登录失落败后并未对当前验证码进行注销并重新刷新验证码,攻击者可至始至终提交初始的验证码发起攻击穷举攻击;同时部分运用系统验证码只在客户端浏览器验证,并未经由做事器远程验证,将可能存在绕过验证码毛病,另一方面,在天生或获取验证码的过程中存在毛病,攻击者将可能成功预测验证码内容或直接解析验证码内容,从而使验证码失落去原故意义,终极导致一系列的穷举或遍历数据攻击。
1.2.10.2 修复建议#验证码利用一次后,立即销毁该验证码Session,防止验证码被多次利用。
对验证码添加滋扰线,对验证码字符随机扭曲、粘连、翻转等处理。
1.2.11 任意注册他人手机号#1.2.11.1 漏洞概述#任意注册他人电话号码,先burp抓包,然后改本钱身的电话号码,就会收到本该发给别人的验证码,由此成功注册他人手机号
1.2.11.2 修复建议#无
1.2.12 短信轰炸#1.2.12.1 漏洞概述#由于没有对短信或者邮件发送次数进行限定,在测试的过程中,对短信验证码接口进行重放,导致可无限次发送短信或邮件给用户,造成短信轰炸,进而可能被大量用户投诉,从而影响公司荣誉!
1.2.12.2 修复建议#限定每个手机号的逐日发送次数,超过次数则拒发送,提示超过当日次数。
每个ip限定最大限定次数。超过次数则拒发送,提示超过ip当日发送最大次数。
后台限定每个手机号发送的韶光间隔,不许可频繁操作。
1.3 中间件安全#1.3.1 中间件安全监测#1.3.1.1 漏洞概述#中间件配置毛病紧张是由于开拓职员或运维职员在安装支配中间件后,并未对默认的中间件配置进行安全加固,导致产生一系列诸如目录遍历、默认示例文件、缺点信息透露等毛病,从而导致运用系统产生信息透露隐患。
1.3.1.2 修复建议#设置自定义缺点跳转页,避免非200相应状态返回默认缺点信息
关闭调试信息、中间件版本信息等敏感信息的显示
1.3.2 第三方插件检测#1.3.2.1 漏洞概述#第三方插件紧张利用在CMS网站(内容管理系统)中,由于一些插件的安装量较大,且不须要认证或者对做事器进行操作,攻击者可利用插件中的安全漏洞攻击网站,例如SQL注入、文件上传等漏洞,从而导致攻击者可能得到数据库做事器的完备掌握权限。
1.3.2.2 修复建议#设置自定义及时更新插件版本
不该用非正规渠道下载的插件
1.3.3 默认配置文件检测#1.3.3.1 漏洞概述#默认配置文件常见于系统或软件安装后默认天生的文件,由于这些文件中包含大量文件或系统的敏感信息,若被攻击者盗取,可造成敏感信息透露,从而导致做事器被渗透的风险。
1.3.3.2 修复建议#设置自删除不必要的配置文件
设置文件访问权限
1.3.4 常见冗余文件检测#1.3.4.1 漏洞概述#冗余文件常见于开拓职员或管理员进行备份管理的文件,个中包含大量网站信息和数据库信息,由于文件存在于做事器中,若被攻击者盗取,可通过剖析源码,拿到做事器权限。
1.3.4.2 修复建议#设置自删除做事器中的冗余文件
设置文件访问权限
1.3.5 系统层漏洞(CVE风险漏洞)检测#1.3.5.1 漏洞概述#根据互联网中发布的CVE漏洞报告,攻击者可剖析漏洞事理,利用脚本写出POC进行批量攻击。常见CVE漏洞如:远程命令实行、反序列化等
1.3.5.2 修复建议#设置自及时更新系统补丁
根据官网中的漏洞修复方案进行修复
1.3.6 中间件配置毛病#1.3.6.1 漏洞概述#中间件配置毛病紧张是由于开拓职员或运维职员在安装支配中间件后,并未对默认的中间件配置进行安全加固,导致产生一系列诸如目录遍历、默认示例文件、缺点信息透露等毛病,从而导致运用系统产生信息透露隐患。
1.3.6.2 修复建议#设置自定义缺点跳转页,避免非200相应状态返回默认缺点信息
关闭调试信息、中间件版本信息等敏感信息的显示
1.3.7 中间件弱口令#1.3.7.1 漏洞概述#中间件弱口令紧张是由于开拓职员或运维职员在支配中间件过程中,并未对中间件掌握台进行口令配置或修正默认口令,从而攻击者可通过穷举猜解的办法进行中间件掌握台,终极攻击者可通过掌握台上传恶意脚本并得到运用系统权限。
1.3.7.2 修复建议#用户登录后须要对初始口令进行修正,防止攻击者利用初始口令进行暴力破解。
系统设置强密码策略,建议用户密码采取10位以上数字加大小写字母。
对密码暴力猜解行为进行图灵验证,一旦创造用户口令破解行为及时对账户进行限时封停处理。
1.3.8 Webloigc反序列化命令实行#1.3.8.1 漏洞概述#由于Weblogic版本并未进行及时更新,在低版本中的Commoncollections.jar程序包中存在反序列化命令实行漏洞,攻击者可远程布局恶意的字节序列发送到做事器端并实行,通过该漏洞攻击者可直接得到运用系统掌握权限乃至操作系统权限。
1.3.8.2 修复建议#Weblogic掌握年夜驾口(默认TCP 7001)迁移至内网,不对互联网开放。
Webloigc Java反序列化漏洞涉及多个CVE编号:CVE-2015-4852、CVE-2016-0638、CVE-2016-3510、CVE-2017-3248、CVE-2017-3506、CVE-2017-10352等,安装相应补丁即可,或更新Weblogic至最新版。
1.3.9 Jboss反序列化命令实行#1.3.9.1 漏洞概述#由于Jboss版本并未进行及时更新,在低版本中的Commoncollections.jar程序包中存在反序列化命令实行漏洞,攻击者可远程布局恶意的字节序列发送到做事器端并实行,通过该漏洞攻击者可直接得到运用系统掌握权限乃至操作系统权限。
1.3.9.2 修复建议#JBoss掌握年夜驾口(默认TCP 8080)迁移至内网,不对互联网开放。
修正默认配置,关闭 EJB Invoker/JMXInvokerServlet对外开放接口。
升级JBoss至最新版。
1.3.10 Websphere反序列化命令实行#1.3.10.1 漏洞概述#由于Websphere版本并未进行及时更新,在低版本中的Commoncollections.jar程序包中存在反序列化命令实行漏洞,攻击者可远程布局恶意的字节序列发送到做事器端并实行,通过该漏洞攻击者可直接得到运用系统掌握权限乃至操作系统权限。
1.3.10.2 修复建议#Qwer1、该漏洞Weblogic官方已经发布补丁,建议升级Weblogic至最新版。
1.3.11 Jenkins反序列命令实行#1.3.11.1 漏洞概述#由于Jenkins版本并未进行及时更新,在低版本中的Commoncollections.jar程序包中存在反序列化命令实行漏洞,攻击者可远程布局恶意的字节序列发送到做事器端并实行,通过该漏洞攻击者可直接得到运用系统掌握权限乃至操作系统权限。
1.3.11.2 修复建议#Jenkins Java反序列化漏洞涉及多个CVE编号:
CVE-2015-4852
CVE-2015-8103
CVE-2016-0792
CVE-2017-1000353
CVE-2017-1000354
CVE-2017-1000355
CVE-2017-1000356等等,安装相应补丁即可,或更新Jenkins至最新版。
1.3.12 JBoss远程代码实行#1.3.12.1 漏洞概述#由于Jboss版本未进行及时更新,在低版本中存在未授权访问漏洞从而可直接访问EJBInvokerServlet 或 JMXInvokerServlet功能模块,通过该功能模块攻击者可远程支配恶意的WAR运用程序包,终极攻击者可成功支配恶意代码到运用系统做事器上,从而得到运用系统权限。
1.3.12.2 修复建议#无
1.3.13 文件解析代码实行#1.3.13.1 漏洞概述#由于网站所采取的中间件版本过低,不同的低版本中间件均存在文件解析实行漏洞,攻击者可直接上传包含恶意代码的图片文件或压缩文件到网站做事器上,该图片或压缩文件将以动态脚本代码的办法进行解析并实行,终极攻击者可通过实行恶意代码得到网站的掌握权限。
1.3.13.2 修复建议#IIS6解析漏洞修复建议:
IIS6微软已经不在掩护,建议升级IIS至IIS8或更高版本。
IIS7.0/7.5解析漏洞修复建议:
修正php.ini中cgi.pathinfo为0,并重启IIS。
在IIS里找到“处理程序映射”,然后对PHP这一项进行编辑,点击“要求限定”,勾选“仅当要求映射至以下内容时才调用处理程序”。
Nginx解析漏洞修复建议:
升级Nginx版本
修正php.ini文件,将cgi.fix_pathinfo的值设置为0。完成后请重启PHP和Nginx。
Apache解析漏洞修复建议:
在httpd.conf或httpd-vhosts.conf中加入以下语句,从而禁止文件名格式为.php.的访问权限:
<FilesMatch ".(php.|php3.|php4.|php5.)">
Order Deny,Allow
Deny from all
1.3.14 HTTP.sys远程代码实行漏洞#1.3.14.1 漏洞描述:#远程代码实行漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未精确剖析经分外设计的 HTTP 要求时会导致此漏洞。成功利用此漏洞的攻击者可以在系统帐户的高下文中实行任意代码。若要利用此漏洞,攻击者必须将经分外设计的 HTTP 要求发送到受影响的系统。
1.3.14.2 修复建议:#更新补丁KB3042553
1.4 做事器安全#1.4.1 域传送漏洞#1.4.1.1 漏洞概述#域传送漏洞紧张由于DNS做事器开启了域传送功能,同时并未采取有效的白名单机制指定域传送的传送范围,导致攻击者可远程得到DNS做事器上的DNS记录,造成网站的域名以及IP地址信息的透露。
1.4.1.2 修复建议#DNS区域传送(DNS zone transfer)指的是一台备用做事器利用来自主做事器的数据刷新自己的域(zone)数据库。这为运行中的DNS做事供应了一定的冗余度,其目的是为了防止主的域名做事器因意外故障变得不可用时影响到全体域名的解析。一样平常来说,DNS区域传送操作只在网络里真的有备用域名DNS做事器时才有必要用到,但许多DNS做事器却被缺点地配置成只要有client发出要求,就会向对方供应一个zone数据库的详细信息,以是说许可不受信赖的因特网用户实行DNS区域传送(zone transfer)操作是后果最为严重的缺点配置之一。办理域传送问题只需allow-transfer限定可以进行同步的做事器,办法有两种,限定IP或利用TSIG key认证:
针对付bind软件,可以通过allowe-transfer指令来掌握,
可以作为global选项或者zone选项的一个参数,我们可以利用地址列表如下:
allowe-transfer {192.168.1.1; 172.24.123.253;};
采取TSIG key来严格定义区域传送的关系,如下
allowe-transfer {key "dns1-slave1"; key "dns1-slave2";};
1.4.2 Redis未授权访问#1.4.2.1 漏洞概述#Redis未授权访问紧张是由于默认安装的情形下并未对Redis配置身份校验功能,导致攻击者可造孽访问Redis下的数据信息,同时可进一步通过配置文件功能对做事器文件进行写入,如写入SSH密钥或操持任务,从而得到做事器的掌握权限。
1.4.2.2 修复建议#以低权限运行Redis做事,严禁利用root用户等高权限用户运行Redis做事
为Redis添加密码验证
修正redis.conf,添加
requirepass mypassword
禁止外网访问Redis
修正redis.conf,添加或修正,使得Redis做事只在当前主机可用
bind 127.0.0.1
1.4.3 Pivotal Software Redis<2.8.21/3.x/3.0.2 RCE#1.4.3.1 漏洞概述#远程主机上安装的Redis版本受远程代码实行漏洞的影响。攻击者可以通过eval命令利用这个问题来实行任意Lua bytecote。
1.4.3.2 修复建议#建议更新到Redis 2.8.21 / 3.0.2或更高版本。1.4.4 MangoDB未授权访问#1.4.4.1 漏洞概述#MangoDB未授权访问紧张是由于默认安装的情形下并未对MangoDB配置身份校验功能,导致攻击者可造孽访问MangoDB下的数据信息,从而造成MangoDB中的数据库信息透露。
1.4.4.2 修复建议#修正默认的 MongoDB 端口(默认为: TCP 27017)为其他端口
禁止外网访问 MongoDB
修正 /etc/mongodb.conf,设置 bind_ip
bind_ip = 127.0.0.1
禁用 HTTP 和 REST 端口
MongoDB 自身带有一个 HTTP 做事和并支持 REST 接口。在 2.6 往后这些接口默认是关闭的。MongoDB 默认会利用默认端口监听 Web 做事,一样平常不须要通过 Web 办法进行远程管理,建议禁用。修正配置文件或在启动的时候选择 –nohttpinterface 参数:nohttpinterface = false
MongoDB 授权
在 admin 数据库中创建用户,并设置强密码,修正配置文件 /etc/mongodb.conf,开启授权:
auth = true
1.4.5 操作系统弱口令#1.4.5.1 漏洞概述#操作系统弱口令紧张由于运维管理员的安全意识薄弱,对管理员账号设置了大略密码,攻击者可通过字典穷举的办法破解管理员密码并完备得到做事器掌握权限。
1.4.5.2 修复建议#用户登录后须要对初始口令进行修正,防止攻击者利用初始口令进行暴力破解。
系统设置强密码策略,建议用户密码采取10位以上数字加大小写字母。
对密码暴力猜解行为进行图灵验证,一旦创造用户口令破解行为及时对账户进行限时封停处理。
1.4.6 数据库弱口令#1.4.6.1 漏洞概述#数据库弱口令紧张由于运维管理员的安全意识薄弱,对数据库管理员账号设置了大略密码,攻击者可通过字典穷举的办法破解管理员密码并完备得到数据库掌握权限。在特定场景下,攻击者可通过数据库权限进行权限提升,从而进一步得到数据库所在做事器的掌握权限。
1.4.6.1 修复建议#用户登录后须要对初始口令进行修正,防止攻击者利用初始口令进行暴力破解。
系统设置强密码策略,建议用户密码采取10位以上数字加大小写字母。
对密码暴力猜解行为进行图灵验证,一旦创造用户口令破解行为及时对账户进行限时封停处理。
1.4.7 数据库构造透露#1.4.7.1 漏洞概述#数据库构造透露紧张是由于开拓职员或运维管理职员的轻忽所导致。如未及时删除调试页面、未关闭程序调试功能、未屏蔽程序缺点信息、备份文件未删除、数据库备份文件未删除、未屏蔽敏感数据信息等多个方面所导致的不同严重程度的信息透露。攻击者可通过所节制的信息进一步剖析攻击目标,从而有效发起下一步的有效攻击。
1.4.7.2 修复建议#关闭缺点输出,防止调试信息透露,或者当web运用程序出错时,统一返回一个缺点页面或直接跳转至首页
合理设置做事器端各种文件的访问权限
1.4.8 本地权限提升#1.4.8.1 漏洞概述#本地权限提升漏洞紧张是由于做事器没有及时更新操作系统补丁、数据库补丁或其他第三方运用程序补丁,导致攻击者可利用存在的安全毛病或配置毛病进行普通权限到最高权限的权限提升,终极可直接得到做事器的最高权限。
1.4.8.2 修复建议#无
1.4.9 已存在的脚本木马#1.4.9.1 漏洞概述#在渗透测试过程中创造非渗透测试职员所上传的脚本木马,紧张是攻击者此前对运用系统发起了攻击并成功上传脚本木马并得到了相应的权限。
1.4.9.2 修复建议#删除后门程序、对网站目录进行后门查杀
查看Web日志,进行攻击溯源
1.4.10 运用防护软硬件毛病#1.4.10.1 漏洞概述#运用防护软硬件毛病紧张是由于第三方安全产品在安全设置或安全策略存在安全毛病,导致攻击者可通过特定的办法绕过该安全产品的防护策略,从而打破防护进一步发起对运用系统的攻击。
1.4.10.2 修复建议#无
1.4.10 Host头攻击#1.4.10.1 漏洞描述#Host首部字段是HTTP/1.1新增的,旨在见告做事器,客户端要求的主机名和端口号,紧张用来实现虚拟主机技能。
利用虚拟主机技能,单个主机可以运行多个站点。
例如:hacker和usagidesign两个站点都运行在同一做事器A上,不管我们要求哪个域名,终极都会被解析成做事器A的IP地址,这个时候做事器就不知道该将要求交给哪个站点处理,因此须要Host字段指定要求的主机名。
我们访问hacker域名,经DNS解析,变成了做事器A的IP,要求传达到做事器A,A吸收到要求后,创造要求报文中的Host字段值为hacker,进而将要求交给hacker站点处理。
这个时候,问题就涌现了。为了方便获取网站域名,开拓职员一样平常依赖于要求包中的Host首部字段。例如,在php里用_SERVER["HTTP_HOST"],但是这个Host字段值是不可相信的(可通过HTTP代理工具修改)。
1.4.10.2 修复建议#对Host字段进行检测
Nginx,修正ngnix.conf文件,在server中指定一个server_name名单,并添加检测。
Apache,修正httpd.conf文件,指定ServerName,并开启UseCanonicalName选项。
Tomcat,修正server.xml文件,配置Host的name属性。
转载地址:https://security.pingan.com/blog/17.html