漏洞描述html
Web程序中对于用户提交的参数未作过滤直接拼接到SQL语句中执行,致使参数中的特殊字符破坏了SQL语句原有逻辑,攻击者能够利用该漏洞执行任意SQL语句,如查询数据、下载数据、写入webshell、执行系统命令以及绕过登陆限制等。前端
修复建议java
代码层最佳防护sql漏洞方案:使用预编译sql语句查询和绑定变量。python
(1)使用预编译语句,使用PDO须要注意不要将变量直接拼接到PDO语句中。全部的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎全部的数据库系统都提供了参数化SQL语句执行接口,使用此接口能够很是有效的防止SQL注入攻击。web
(2)对进入数据库的特殊字符(’”<>&*;等)进行转义处理,或编码转换。正则表达式
(3)确认每种数据的类型,好比数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。算法
(4)数据长度应该严格规定,能在必定程度上防止比较长的SQL注入语句没法正确执行。sql
(5)网站每一个数据层的编码统一,建议所有使用UTF-8编码,上下层编码不一致有可能致使一些过滤模型被绕过。shell
(6)严格限制网站用户的数据库的操做权限,给此用户提供仅仅可以知足其工做的权限,从而最大限度的减小注入攻击对数据库的危害。
(7)避免网站显示SQL错误信息,好比类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
(8)过滤危险字符,例如:采用正则表达式匹配union、sleep、and、select、load_file等关键字,若是匹配到则终止运行。
漏洞描述
一、Web程序代码中对用户提交的参数未作过滤或过滤不严,致使参数中的特殊字符破坏了HTML页面的原有逻辑,攻击者能够利用该漏洞执行恶意HTML/JS代码、构造蠕虫、篡改页面实施钓鱼攻击、以及诱导用户再次登陆,而后获取其登陆凭证等。
二、XSS攻击对Web服务器自己虽无直接危害,可是它借助网站进行传播,对网站用户进行攻击,窃取网站用户帐号身份信息等,从而也会对网站产生较严重的威胁。
XSS攻击可致使如下危害:
一、钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者经过注入钓鱼JavaScript脚本以监控目标网站的表单输入,甚至攻击者基于DHTML技术发起更高级的钓鱼攻击。
二、网站挂马:跨站时,攻击者利用Iframe标签嵌入隐藏的恶意网站,将被攻击者定向到恶意网站上、或弹出恶意网站窗口等方式,进行挂马。
三、身份盗用:Cookie是用户对于特定网站的身份验证标志,XSS攻击能够盗取用户的cookie,从而利用该cookie盗取用户对该网站的操做权限。
四、盗取网站用户信息:当窃取到用户cookie从而获取到用户身份时,攻击者能够盗取到用户对网站的操做权限,从而查看用户隐私信息。
五、垃圾信息发送:在社交网站社区中,利用XSS漏洞借用被攻击者的身份发送大量的垃圾信息给特定的目标群。
六、劫持用户Web行为:一些高级的XSS攻击甚至能够劫持用户的Web行为,从而监视用户的浏览历史、发送与接收的数据等等。
七、XSS蠕虫:借助XSS蠕虫病毒还能够用来打广告、刷流量、挂马、恶做剧、破坏数据、实施DDoS攻击等。
修复建议
xss漏洞本质上是一种html注入,也就是将html代码注入到网页中。那么其防护的根本就是在将用户提交的代码显示到页面上时作好一系列的过滤与转义
(1)过滤输入的数据,对例如:“ ‘ ”,“ “ ”,” < “,” > “,” on* “,script、iframe等危险字符进行严格的检查。这里的输入不只仅是用户能够直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。
(2)不只验证数据的类型,还要验证其格式、长度、范围和内容。
(3)不只在客户端作数据的验证与过滤,关键的过滤步骤在服务端进行。
(4)对输出到页面的数据进行相应的编码转换,如HTML实体编码、JS编码等。对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即便在输入作了编码等操做,在各处的输出点时也要进行检查。
漏洞详情
参考:https://www.freebuf.com/company-information/165769.html
漏洞描述:
CSRF是跨站请求伪造,不攻击网站服务器,而是冒充用户在站内的正常操做。一般因为服务端没有对请求头作严格过滤引发的。CSRF会形成密码重置,用户伪造等问题,可能引起严重后果。绝大多数网站是经过 cookie 等方式辨识用户身份,再予以受权的。因此要伪造用户的正常操做,最好的方法是经过 XSS 或连接欺骗等途径,让用户在本机(即拥有身份 cookie 的浏览器端)发起用户所不知道的请求。CSRF攻击会令用户在不知情的状况下攻击本身已经登陆的系统。
修复建议
一、验证请求的Referer是否来自本网站,但可被绕过。
二、在请求中加入不可伪造的token,并在服务端验证token是否一致或正确,不正确则丢弃拒绝服务。
漏洞描述
SSRF(Server-Side Request Forgery,服务器端请求伪造):通俗的来讲就是咱们能够伪造服务器端发起的请求,从而获取客户端所不能获得的数据。SSRF漏洞造成的缘由主要是服务器端所提供的接口中包含了所要请求的内容的URL参数,而且未对客户端所传输过来的URL参数进行过滤。这个漏洞形成的危害有:
(1)、能够对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;
(2)、攻击运行在内网或本地的应用程序(好比溢出);
(3)、对内网Web应用进行指纹识别,经过访问默认文件实现;
(4)、攻击内外网的Web应用,主要是使用Get参数就能够实现的攻击(好比Struts2漏洞利用,SQL注入等);
(5)、利用File协议读取本地文件。
修复建议
一、禁用不须要的协议,只容许HTTP和HTTPS请求,能够防止相似于file://, gopher://, ftp:// 等引发的问题。
二、白名单的方式限制访问的目标地址,禁止对内网发起请求
三、过滤或屏蔽请求返回的详细信息,验证远程服务器对请求的响应是比较容易的方法。若是web应用是去获取某一种类型的文件。那么在把返回结果展现给用户以前先验证返回的信息是否符合标准。
四、验证请求的文件格式
五、禁止跳转
六、限制请求的端口为http经常使用的端口,好比 80、44三、8080、8000等
七、统一错误信息,避免用户能够根据错误信息来判断远端服务器的端口状态。
漏洞描述
命令或代码执行漏洞是指代码未对用户可控参数作过滤,致使直接带入执行命令和代码,经过漏洞执行恶意构造的语句,执行任意命令或代码。攻击者可在服务器上执行任意命令,读写文件操做等,危害巨大。
修复建议
一、严格过滤用户输入的数据,禁止执行非预期系统命令。
二、减小或不使用代码或命令执行函数
三、客户端提交的变量在放入函数前进行检测
四、减小或不使用危险函数
漏洞描述
文件上传漏洞一般因为代码中对文件上传功能所上传的文件过滤不严或web服务器相关解析漏洞未修复而形成的,若是文件上传功能代码没有严格限制和验证用户上传的文件后缀、类型等,攻击者可经过文件上传点上传任意文件,包括网站后门文件(webshell)控制整个网站。
修复建议
一、对上传文件类型进行验证,除在前端验证外在后端依然要作验证,后端能够进行扩展名检测,重命名文件,MIME类型检测以及限制上传文件的大小等限制来防护,或是将上传的文件其余文件存储服务器中。
二、严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关上传文件目录的执行权限,防止木马执行。
三、对上传文件格式进行严格校验,防止上传恶意脚本文件;
四、严格限制上传的文件路径。
五、文件扩展名服务端白名单校验。
六、文件内容服务端校验。
七、上传文件重命名。
八、隐藏上传文件路径。
漏洞描述
文件下载或获取文件显示内容页面因为未对传入的文件名进行过滤,利用路径回溯符../跳出程序自己的限制目录,来下载或显示任意文件。
修复建议
对传入的文件名参数进行过滤,而且判断是不是容许获取的文件类型,过滤回溯符../。
漏洞描述
本地文件包含是指程序在处理包含文件的时候没有严格控制。利用这个漏洞,攻击者能够先把上传的文件、网站日志文件等做为代码执行或直接显示出来,或者包含远程服务器上的恶意文件,进而获取到服务器权限。
修复建议
一、严格检查变量是否已经初始化。
二、对全部输入提交可能包含的文件地址,包括服务器本地文件及远程文件,进行严格的检查,参数中不容许出现./和../等目录跳转符。
三、严格检查文件包含函数中的参数是否外界可控。
漏洞描述
因为网站用户账号存在弱口令,致使攻击者经过弱口令可轻松登陆到网站中,从而进行下一步的攻击,如上传webshell,获取敏感数据。
另外攻击者利用弱口令登陆网站管理后台,可执行任意管理员的操做。
修复建议
一、强制用户首次登陆时修改默认口令,或是使用用户自定义初始密码的策略;
二、完善密码策略,信息安全最佳实践的密码策略为8位(包括)以上字符,包含数字、大小写字母、特殊字符中的至少3种。
三、增长人机验证机制,限制ip访问次数。
漏洞描述
因为没有对登陆页面进行相关的人机验证机制,如无验证码、有验证码但可重复利用以及无登陆错误次数限制等,致使攻击者可经过暴力破解获取用户登陆帐号和密码。
修复建议
一、若是用户登陆次数超过设置的阈值,则锁定账号(有恶意登陆锁定账号的风险)
二、若是某个 IP登陆次数超过设置的阈值,则锁定IP
三、增长人机验证机制
四、验证码必须在服务器端进行校验,客户端的一切校验都是不安全的。
漏洞描述
因为没有对用户访问角色的权限进行严格的检查及限制,致使当前帐号可对其余帐号进行相关操做,如查看、修改等。对低权限对高权限帐户的操做为纵向越权,相同权限帐户之间的操做成为横向越权也称水平越权。
修复建议
一、对用户访问角色的权限进行严格的检查及限制。
二、在一些操做时可使用session对用户的身份进行判断和控制
漏洞描述
因为没有对网站敏感页面进行登陆状态、访问权限的检查,致使攻击者可未受权访问,获取敏感信息及进行未受权操做。
修复建议
一、页面进行严格的访问权限的控制以及对访问角色进行权限检查。
二、可使用session对用户的身份进行判断和控制。
漏洞描述
因为web服务器配置不当,开启了目录浏览,攻击者可得到服务器上的文件目录结构,获取敏感文件。
修复建议
一、经过修改配置文件,禁止中间件(如IIS、apache、tomcat)的文件目录索引功能
二、设置目录访问权限
漏洞描述
php反序列化漏洞也叫PHP对象注入,造成缘由为程序未对用户输入的序列化字符串进行检测,致使攻击者能够控制反序列化过程,从而致使代码执行、文件操做、执行数据库操做等不可控后果。这一类攻击在java、python等面向对象语言中均存在。
可参考:https://www.freebuf.com/articles/web/167721.html
修复建议
一、对传入的对象进行严格的过滤检查
二、在反序列化过程执行的文件读写、命令或代码执行函数中是否有用户可控的参数。
漏洞描述
按照设计,HTTP协议要求服务器在处理以前彻底接收请求。 若是HTTP请求没有完成,或者传输速率很是低,服务器会保持其资源忙于等待其他数据。若是服务器保持太多的资源请求和处理,这将形成一个拒绝服务。严重者一台主机便可让web运行缓慢甚至是崩溃。
修复建议
对于 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的全部链接
漏洞描述
CRLF 是“回车 +换行”(\r\n)的简称。在 HTTP 协议中,HTTPHeader 与 HTTP Body 是用两个 CRLF 符号进行分隔的,浏览器根据这两个 CRLF 符号来获取 HTTP 内容并显示。所以,一旦攻击者可以控制 HTTP 消息头中的字符,注入一些恶意的换行,就能注入一些会话 Cookie 或者 HTML 代码。
修复建议
一、过滤 \r 、\n 及其各类编码的换行符,避免输入的数据污染到其余 HTTP 消息头。
漏洞描述
因为Web 应用程序没有对用户发送的数据进行适当过滤和检查,攻击者可修改LDAP 语句的结构,而且以数据库服务器、Web 服务器等的权限执行任意命令,许可权可能会容许查询、修改或除去 LDAP 树状构造内任何数据。
修复建议
对用户的输入内容进行严格的过滤。
漏洞描述
有的Web 应用程序中使用URL参数中的地址做为跳转连接的功能 ,攻击者可实施钓鱼、恶意网站跳转等攻击。
修复建议
一、在进行页面跳转前校验传入的URL是否为可信域名。
二、白名单规定跳转连接
漏洞描述
用户登陆过程当中使用明文传输用户登陆信息,若用户遭受中间人攻击时,攻击者可直接获取该用户登陆帐户,从而进行进一步渗透。
修复建议
一、用户登陆信息使用加密传输,如密码在传输前使用安全的算法加密后传输,可采用的算法包括:不可逆hash算法加盐(4位及以上随机数,由服务器端产生);安全对称加密算法,如AES(12八、19二、256位),且必须保证客户端密钥安全,不可被破解或读出;非对称加密算法,如RSA(不低于1024位)、SM2等。
二、使用https来保证传输的安全。
漏洞描述
经渗透测试发现目标站点存在webshell,攻击者可直接爆破口令使用木马,很是低成本的进行恶意操做。
修复建议
一、确认并删除木马文件,并进行本地文件漏洞扫描排查是否还存在有其余木马。
二、发现并及时修复已存在的漏洞。
三、经过查看日志、服务器杀毒等安全排查,确保服务器未被留下后门
漏洞描述
网站备份文件或、敏感信息文件存放在某个网站目录下,攻击者可经过文件扫描等方法发现并下载该备份文件,致使网站敏感信息泄露。
修复建议
一、不在网站目录下存放网站备份文件或敏感信息的文件。
二、如需存放该类文件,请将文件名命名为难以猜解的无规则字符串。
漏洞描述
在页面中或者返回的响应包中泄露了敏感信息,经过这些信息,给攻击者渗透提供了很是多的有用信息。
修复建议
一、若是是探针或测试页面等无用的程序建议删除,或者修改为难以猜解的名字。
二、不影响业务或功能的状况下删除或禁止访问泄露敏感信息页面。
三、在服务器端对相关敏感信息进行模糊化处理。
四、对服务器端返回的数据进行严格的检查,知足查询数据与页面显示数据一致。
漏洞描述
因为没有对短信或者邮件发送次数进行限制,致使可无限次发送短信或邮件给用户,从而形成短信轰炸,进而可能被大量用户投诉,从而影响公司声誉。
修复建议
在服务器限制发送短信或邮件的频率,如同一帐号1分钟只能发送1次短信或邮件,一天只能发送3次。
漏洞描述
Web站点的某些测试页面可能会使用到PHP的phpinfo()函数,会输出服务器的关键信息,形成服务器信息泄露,为攻击提供有利的信息。
修复建议
一、删除phpinfo 函数。
二、若文件无用可直接删除。
漏洞描述
Internet Information Services(IIS,互联网信息服务)是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。 Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件。危害:攻击者能够利用“~”字符猜解或遍历服务器中的文件名,或对IIS服务器中的.Net Framework进行拒绝服务攻击。
攻击者可经过该漏洞尝试获取网站服务器文件的文件名,达到获取更多信息来入侵服务器的目的。
修复建议
修改Windows配置,关闭短文件名功能。
1.关闭NTFS 8.3文件格式的支持。该功能默认是开启的,对于大多数用户来讲无需开启。
2.若是是虚拟主机空间用户,可采用如下修复方案:
1)修改注册列表HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation的值为1(此修改只能禁止NTFS8.3格式文件名建立,已经存在的文件的短文件名没法移除)。
2)若是你的web环境不须要asp.net的支持你能够进入Internet 信息服务(IIS)管理器 --- Web 服务扩展 - ASP.NET 选择禁止此功能。
3)升级net framework 至4.0以上版本。
3.将web文件夹的内容拷贝到另外一个位置,好比D:\www到D:\www.back,而后删除原文件夹D:\www,再重命名D:\www.back到D:\www。若是不从新复制,已经存在的短文件名则是不会消失的。
漏洞描述
攻击者可经过特殊的攻击向量,使web服务器出现500、403等相关错误,致使信息泄漏如绝对路径、webserver版本、源代码、sql语句等敏感信息,恶意攻击者颇有可能利用这些信息实施进一步的攻击。
修复建议
一、自定义错误页面或使用统一的错误页面提示。
漏洞描述
Apache Tomcat默认样例文件没有删除或限制访问,可能存在cookie、session伪造,进行后台登陆操做
修复建议
一、删除样例文件
二、限制文件访问权限
漏洞描述
网站根目录下的 crossdomain.xml 文件指明了远程Flash 是否能够加载当前网站的资源(图片、网页内容、Flash等)。若是配置不当,可能致使遭受跨站请求伪造(CSRF)攻击。
修复建议
对于不须要从外部加载资源的网站,在 crossdomain.xml 文件中更改allow-access-from的domain属性为域名白名单。
漏洞描述
目标服务器启用了不安全的传输方法,如PUT、TRACE、DELETE、MOVE等,这些方法表示可能在服务器上使用了 WebDAV,因为dav方法容许客户端操纵服务器上的文件,如上传、修改、删除相关文件等危险操做,若是没有合理配置dav,有可能容许未受权的用户对其进行利用,修改服务器上的文件。
修复建议
一、关闭不安全的传输方法,只开启POST、GET方法。
二、若是服务器不使用 WebDAV 可直接禁用,或为容许webdav的目录配置严格的访问权限,如认证方法,认证须要的用户名,密码。
漏洞描述
目标存在weblogic SSRF服务器请求伪造漏洞。WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造造成由服务端发起请求的一个安全漏洞。通常状况下,SSRF攻击的目标是从外网没法访问的内部系统。(正是由于它是由服务端发起的,因此它可以请求到与它相连而与外网隔离的内部系统)。Weblogic中间件默认带有“UDDI 目录浏览器”且为未受权访问,经过该应用,可进行无回显的SSRF请求。攻击者可利用该漏洞对企业内网进行大规模扫描,了解内网结构,并可能结合内网漏洞直接获取服务器权限。
修复建议
一、若不影响业务则可删除uddiexplorer文件夹
二、限制uddiexplorer应用只能内网访问
漏洞描述
Apache Struts2的“Dynamic MethodInvocation”机制是默认开启的,仅提醒用户若是可能的状况下关闭此机制,若是未关闭此机制将致使远程代码执行漏洞,远程攻击者可利用此漏洞在受影响应用上下文中执行任意代码。
修复建议
一、目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载。
二、或者手工设置struts.xml文件<constantname="struts.enable.DynamicMethodInvocation"value="false"/>
漏洞描述
Apache Struts2在使用REST插件时,攻击者能够绕过动态方法执行的限制,调用恶意表达式执行远程代码。
修复建议
建议用户到官方获取最新补丁或者最新版本程序。
漏洞描述
为了便于开发人员调试程序,Struts2提供了一个devMode模式,能够方便查看程序错误以及日志等信息。当Struts2中的devMode模式设置为true时,存在严重远程代码执行漏洞。若是WebService 启动权限为最高权限时,可远程执行任意命令,包括关机、创建新用户、以及删除服务器上全部文件等等。
修复建议
建议用户到官方获取最新补丁或者最新版本程序。
或者将struts.properties中的devMode设置为false,或是在struts.xml中添加以下代码: <constant name="struts.devMode"value="false"/>。
漏洞描述
Apache Struts2的Jakarta Multipartparser插件存在远程代码执行漏洞,漏洞编号为CVE-2017-5638。攻击者能够在使用该插件上传文件时,修改HTTP请求头中的Content-Type值来触发该漏洞,致使远程执行代码。
修复建议
检测方式查看web目录下/WEB-INF/lib/目录下的struts-core.x.x.jar ,若是这个版本在Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10之间则存在漏洞。
一、建议用户到官方获取最新补丁或者最新版本程序。
二、更新至Strusts2.3.32或者Strusts2.5.10.1,或使用第三方的防御设备进行防御。
三、临时解决方案:删除commons-fileupload-x.x.x.jar文件(会形成上传功能不可用)。
四、修改WEB-INF/classes目录下的配置
在WEB-INF/classes目录下的struts.xml中的struts 标签下添加
<constantname=”struts.custom.i18n.resources”value=”global”/>;
在WEB-INF/classes/目录下添加global.properties,文件内容以下:
struts.messages.upload.error.InvalidContentTypeException=1
漏洞描述
Apache Struts2在开启动态方法调用(DynamicMethod Invocation)的状况下,攻击者使用REST插件调用恶意表达式能够远程执行代码。
修复建议
一、用户到官方获取最新补丁或者最新版本程序。
二、或者在容许的状况下禁用动态方法调用(Dynamic Method Invocation),修改Struts2的配置文件struts.xml,将struts.enable.DynamicMethodInvocation设置为“false”。