常见web漏洞排查

最近在排查一个项目存在的漏洞的时候,补充了一些知识,搜集了一些资料,整理一下。

弱口令漏洞(weak password)

  • 弱口令没有严格的和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或者破解工具破解的口令均为弱口令。
    设置密码通常遵顼一下准则:
  1. 不适用空口令或者系统缺省的口令,这些口令众所周知,为典型的弱口令;
  2. 口令长度不少于8个字符;
  3. 口令不应该为连续的某个字符(例如:AAAAAA)或者重复某些字符的组合(例如tzf.tzf.)
  4. 口令应该为一下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个、那么该字符不应该为首字符或者尾字符。
  5. 口令中不应包含本人、父母、子女和配偶的的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人相关的信息,以及字典中的单词。
  6. 口令不应该为用数字或者符号代替某些字母的单词。
  7. 口令应该易于记住且可以快速输入,防止他人从你身后很容易看到你的输入。
    至少90条内更换一次口令。
    [图片上传中…(image.png-97e0e2-1545181638274-0)]

文件上传漏洞

  • 文件上传漏洞通常由于玩也代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过Web访问目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。因此,在开发网站以及应用程序过程中,需要严格限制和校验上传的文件,禁止恶意代码的文件。同时限制相关目录的执行权限,防范webshell攻击。

数据库安全漏洞问题

1. 错误的部署

  • 错误的部署或者部署不当都会很容易让数据库陷入危难之中。在进行完全部署之前,全面检查、测试数据库是非常必要的,以确保数据库能胜任其应该承担的工作。
  • 解决办法: 部署前进行广泛测试,检查,尽可能找出可被攻击者利用的方面。

2. 离线服务器数据泄露

  • 公司数据库可能会托管在不接入互联网的服务器上,但其实无论有没有互联网连接,数据库都有可供黑客切入的网络接口,数据库安全仍会受到威胁。
  • 解决办法: 首先,将数据库服务器当成联网服务器一样看待,做好相应的安全防护。其次,在进行数据库开发时,使用TLS或者SSL加密通信平台对数据进行加密尤为重要。

3.错误配置数据库

  • 很多数据库都是被陈旧未补的漏洞或默认账户配置参数出卖的。这可能是管理员太忙而无法及时顾及,或者因为业务关键系统无法承受停机检查数据库所带来的损失等原因所致。
  • 解决办法: 营造数据库安全是公司首要任务的氛围,提高全公司人员的安全意识,督促数据库管理员及时配置和修复数据库。

4. SQL注入攻击

  • SQL注入是最常见的数据库漏洞之一,它还是开放网页应用安全技术(OWASP)应用安全威胁列表上的头号威胁。SQL注入到数据库后,应用程序将被注入恶意的字符串来欺骗服务器执行命令。如读取敏感数据,修改数据,执行管理操作等。
  • 解决办法: 在开发过程中,对输入变量进行SQL注入测试。带开发完成后,用防火墙保护好数据库网络。

5.权限配置不当

  • 数据库面临的访问权限问题主要有:员工被赋予过多的超出其工作所需的权限;反之,则是没有开启足够的权限相反,则是没有足够的权限;另外,权限还可能被恶意使用。
  • 解决办法: 按照最小权限原则分发权限,仅赋予员工完成工作所需要的最小权限。此外,严格监视数据库访问行为,确保员工仅用于经授权的操作。员工离职时需立即撤销其所赋予的权限。

目录遍历漏洞

  • 目录遍历(路径遍历) 是由于web服务器或者wen应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的文件(可以是web根目录以外的文件),甚至执行系统命令。
  • 漏洞的原理: 程序在实现上没有充分过滤用户输入的../之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。
  • 解决办法:1.对用户的数据进行验证,特别是路径替代字符“…/”;2.尽可能采用班名单的形式验证所有输入;3.合理配置web服务器的目录权限;4. 程序出错时,不要显示内部相关细节。
  • 出现的场景: 在文件读取或者展示图片等对文件读取交互的功能块。

中间件漏洞

1.Struts2远程命令执行漏洞

  • Struts2远程命令执行漏洞是指代码未对用户可控参数做过滤,导致直接带入执行命令的代码,可被用来执行任意命令。
  • 带来的危险:
    1.攻击者可利用此漏洞直接执行操作系统命令会获取WebShell,并且可通过该系统影响内网安全;
    2.可被攻击者用来执行任意命令,写入后门等,进而完全控制服务器,造成严重后果。
  • 修复建议: 1. 将struts升级到最新版本;2. 部署web应用防火墙。

2.Tomcat远程部署漏洞

  • 这是JSP/PHP网站远程部署的一个工具,管理员只需要远程上传一个war格式的文件,便可以发布到网站上,方便了开发人员部署代码的同时,也为黑客上传木马程序敞开了大门。
  • 漏洞验证: 通过访问:管理地址,尝试弱口令或者默认口令,若能登录成功,则存在此漏洞。
  • 漏洞危害: 导致上传木马文件,控制服务器。
  • 漏洞修复: 1)删除此管理界面;2)防火墙设置外网禁止访问此页面,或者设置上传文件类型;3)中间件设置此页面访问权限;4)修改默认账号密码;5)升级Tomcat到最新版本。

3.Java反序列化漏洞

  • 由于某些Java容器(中间件)中的jar包存在反序列化漏洞,导致可被远程命令调用。影响容器有:jenkins, jboss, weblogic, websphere等。
  • 漏洞检测:下载发序列化测试工具。
  • 漏洞修复:tomcat容器不受影响。

你可能感兴趣的:(JavaEE)