网络安全规范

旧时模样 提交于 2019-12-11 11:25:59

一:敏感信息泄露
1.1什么属于敏感信息
只要这些数据可以被黑客看到,并且对黑客的攻击有帮助的信息,都属于敏感信息。
1.2什么是敏感信息泄露
敏感信息泄露,是指人们把不该公开的信息,给放入到公开的信息库中,造成敏感信息泄露。
1.3怎样检查敏感信息是否加密
需要通过抓包工具,检查数据在传输过程中是否加密。
1.4 常见敏感信息分类
1.4.1 软件泄漏
软件类: 1. 操作系统版本 , 2.中间件的类型、版本 , 3.Web程序(cms类型及版本、敏感文件)
1.4.2 Web敏感信息

  1. phpinfo()信息泄漏
    描述:Web站点的某些测试页面可能会使用到PHP的phpinfo()函数,会输出服务器的关键信息。如下图所示:
    在这里插入图片描述

检测方法:访问http://[ip]/test.php 以及http://[ip]/phpinfo.php看是否成功。
修复方案:删除该PHP文件。
2.测试页面泄漏在外网
描述:一些测试页面泄漏到外网,导致外界误传公司被黑客入侵。如下图所示:

  1. 在这里插入图片描述

  2. http://parts.baby.qzoneapp.com/test.php
    在这里插入图片描述

  3. http://other.baby.qzoneapp.com
    在这里插入图片描述
    检测方法:检测页面内容,看是否是测试页面。
    修复方案:删除测试页面,例如test.cgi,phpinfo.php,info.pho, .svn/entries等。

  4. 编辑器备份文件泄漏在外网
    描述:编辑器或者人员在编辑文件时,产生的临时文件,如vim自动保存为.swp后缀、UltrlEditor自动保存.bak后缀等,这些文件会泄漏源代码或者敏感信息。如下图所示:
    在这里插入图片描述

泄漏源代码可以让黑客完全了解后台开发语言、架构、配置信息等。下图是国内某著名网站曾经出现过
源代码泄漏漏洞:
在这里插入图片描述

检测方法:在cgi文件后面添加.bak、.swp、.old、~等后缀探测。
修复方案:删除备份文件。
4.版本管理工具(如git)文件信息泄漏
描述:版本管理工具SVN会在所有目录添加特殊文件,如果这些文件同步到Web目录后就会泄漏路径等信息。如下图所示:
在这里插入图片描述

检测方法:访问http://[ip]/CVS/Entriesp 以及http://[ip]/.svn/entriesp看是否成功。
修复方案:删除SVN各目录下的.svn目录;删除CVS的CVS目录。
5.HTTP认证泄漏漏洞
描述:Web目录开启了HTTP Basic认证,但未做IP限制,导致攻击者可以暴力破解帐号密码。如下图所示:
在这里插入图片描述

修复方案:限制IP访问该目录。
6. 登录界面用户名,密码泄漏
描述:管理后台的帐号和密码设计过于简单,容易被猜测到,导致攻击者可以暴力破解帐号密码。如下图所示:
在这里插入图片描述
修复方案:

  1. 如果该管理后台必须提供给外网访问,则未登录页面不要显示过多内容,防止敏感信息泄漏,登录帐号需经过认证,且密码设置规则尽量复杂,增加验证码,以防止暴力破解。
    7.病人信息泄露(地址,身份证,手机号码。检查结果)
    描述:泄漏病人内部地址,身份证,手机号码,检查结果相当于泄漏了员工内部ID,可以为黑客进行社会工程学攻击提供有价值的材料,同时也为黑客暴力破解后台服务提供重要的帐号信息。
    8.错误页面暴漏信息
    描述:页面含有CGI处理错误的代码级别的详细信息,例如sql语句执行错误原因,php的错误行数等。
    检测方法:修改参数为非法参数,看页面返回的错误信息是否泄漏了过于详细的代码级别的信息。
    修复方案:将错误信息对用户透明化,在CGI处理错误后可以返回友好的提示语以及返回码。但是不可以提示用户出错的代码级别的详细原因。
  2. robots.txt
    robots.txt基本上每个网站都用,而且放到了网站的根目录下,任何人都可以直接输入路径打开并查看里面的内容,如http://www.splaybow.com/robots.txt。该文件用于告诉搜索引擎,哪些页面可以去抓取,哪些页面不要抓取。一般而言,搜索引擎都会遵循这个规则。
    https://blog.csdn.net/gongqinglin/article/details/52082841
  3. phpMyAdmin https://www.freebuf.com/news/159117.html

11.网站源码备份文件(www.rar/sitename.tar.gz/web/zip等)
1.4.3. 网络信息泄漏
9. DNS域传送漏洞

  1. 运维监控系统弱口令、网络拓扑泄漏
    1.4.4 第三方软件应用
  2. github上源码、数据库、邮箱密码泄漏
  3. 百度网盘被员工不小心上传敏感文件
  4. 如果apache开启目录遍历之后,网站浏览者可以查看网站目录结构。同时iis等中间件都有这些功能。利用文件读取功能,也可以一定程度的读取网站目录结构。
    二:安全漏洞
    2.1 常见安全漏洞类型 :
  5. Brute Force(暴力破解)
  6. Command Injection(命令行注入)
  7. CSRF(跨站请求伪造)
  8. File Inclusion(文件包含)
  9. File Upload(文件上传)
  10. Insecure CAPTCHA(不安全的验证码)
  11. SQL Injection(SQL注入)
    描述:Web程序代码中对于用户提交的参数未做过滤就直接放到SQL语句中执行,导致参数中的特殊字符打破了SQL语句原有逻辑,黑客可以利用该漏洞执行任意SQL语句。
    检测方法:通过修改参数来判断是否存在漏洞。
    修复方案:
  12. 针对ASP.NET的防XSS库,Microsoft有提供统一的方法,具体可以参见如下链接: http://www.cnblogs.com/hcmfys/archive/2008/07/11/1240809.html
  13. 针对其它语言如下细分:
    在代码级对带入SQL语句中的外部参数进行转义或过滤:
    (1)对于整数,判断变量是否符合[0-9]的值;其他限定值,也可以进行合法性校验
    (2)对于字符串,对SQL语句特殊字符进行转义(单引号转成两个单引号,双引号转成两个双引号)。关于这点,PHP有类似的转义函数mysql_escape_string和mysql_real_escape_string。
    建议:
    (1)使用腾讯CMEM存储方案;(2)对与数据库进行交互的用户请求数据,要先做过滤,防止SQL注入。
  14. SQL Injection(Blind)(SQL盲注)
  15. XSS(Reflected)(反射型跨站脚本)
  16. XSS(Stored)(存储型跨站脚本)
    描述:Web程序代码中把用户提交的参数未做过滤就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫传播、篡改页面实施钓鱼攻击等。
    检测方法:通过修改参数来判断是否存在漏洞。
    比如用户输入内容:’a”的时候,合法的显示是: ’a” ,合法的显示的源码是:
    在这里插入图片描述
    而存在漏洞的页面显示却是:’a”
    源码是:
    在这里插入图片描述
    修复方案:
  17. 开发者应该严格按照openid和openkey的校验规则判断openid和openkey是否合法,且判断其它参数的合法性,不合法不返回任何内容。
  18. 严格限制URL参数输入值的格式,不能包含不必要的特殊字符( %0d、%0a、%0D 、%0A 等)。
  19. 针对ASP.NET的防XSS库,Microsoft有提供统一的库,具体可以参见如下链接
    微软官网:http://msdn.microsoft.com/en-us/library/aa973813.aspx
    描述:Web程序代码中把用户提交的参数未做过滤就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫传播、篡改页面实施钓鱼攻击等。
    检测方法:通过修改参数来判断是否存在漏洞。
    比如用户输入内容:’a”的时候,合法的显示是: ’a” ,合法的显示的源码是:
    在这里插入图片描述
    而存在漏洞的页面显示却是:’a”
    源码是:
    在这里插入图片描述
    修复方案:
  20. 开发者应该严格按照openid和openkey的校验规则判断openid和openkey是否合法,且判断其它参数的合法性,不合法不返回任何内容。
  21. 严格限制URL参数输入值的格式,不能包含不必要的特殊字符( %0d、%0a、%0D 、%0A 等)。
  22. 针对ASP.NET的防XSS库,Microsoft有提供统一的库,具体可以参见如下链接
    微软官网:http://msdn.microsoft.com/en-us/library/aa973813.aspx
    11 命令注入漏洞
    名称:命令注入漏洞(Command Injection)
    描述:Web程序代码中把用户提交的参数未做过滤就直接使用shell执行,攻击者可以执行任意系统命令。
    检测方法:通过修改参数来判断是否存在漏洞。
    修复方案:在代码级调用shell时,对命令行中的特殊字符进行转义(|、&、;等),防止执行其他非法命令。
    PHP中可使用escapeshellarg、escapeshellcmd来转义。
    12.HTTP响应头注入漏洞
    名称:HTTP响应头注入漏洞(HTTP-Response-Splitting,HTTP_header_injection)
    描述:Web程序代码中把用户提交的参数未做过滤就直接输出到HTTP响应头中,攻击者可以利用该漏洞来注入HTTP响应头,可以造成xss攻击、欺骗用户下载恶意可执行文件等攻击。
    另外根据国际安全组织司acunetix统计,以下apache存在header injection漏洞:1.3.34/2.0.57/2.2.1。
    检测方法:通过修改参数来判断是否存在漏洞。
    比如国内某著名网站曾经出现过header注入漏洞,如下url:
    http://www.YYYYYYYYY.com/YYYYWeb/jsp/website/agentInvoke.jsp?agentid=%0D%0AX-foo:%20bar
    抓包时发现:
    在这里插入图片描述
    修复方案:
  23. 在设置HTTP响应头的代码中,过滤回车换行(%0d%0a、%0D%0A)字符。
  24. 不采用有漏洞版本的apache服务器,同时对参数做合法性校验以及长度限制,谨慎的根据用户所传入参数做http返回包的header设置。
  25. 跳转漏洞
    名称:跳转漏洞
    描述:Web程序直接跳转到参数中的URL,或页面引入任意的开发者URL。
    检测方法:修改参数中的合法URL为非法URL。例如测试一下如下URL:
    http://***.qq.com/cgi-bin/demo_es.cgi?backurl=http://www.***.com,看是否会跳转到注入的http://www.***.com站点。
    修复方案:在控制页面转向的地方校验传入的URL是否为可信域名。
    例如以下是一段校验是否是腾讯域名的JS函数:
    function VaildURL(sUrl)
    {
    return (/(https?😕/)?[\w-.]+.(qq|paipai|soso|taotao).com($|/|\)/i).test(sUrl)||(/^[\w][\w/.-_%]+$/i).test(sUrl)||(/[/\][^/\]/i).test(sUrl) ? true : false;
    }
    14.XML注入漏洞
    名称:XML注入漏洞
    描述:Web程序代码中把用户提交的参数未做过滤就直接输出到XML中。
    检测方法:通过修改参数来判断是否存在漏洞。
    修复方案:在代码级输出时对XML特殊字符(“<”、“>”、“>]]”)进行转义。

三:网络安全工具
3.1 测试用到的网络工具
3.1.1网络漏洞扫描器:Burp Suite
Burp Suite在某种程度上很像Maltego,因为它也有一堆帮助渗透测试者和黑客的工具。Burp Suite中有两个常用应用,一个叫"Burp Suite Spider",它可以通过监测cookie、初始化这些web应用的连接列举并绘制出一个网站的各个页面以及它的参数;另一个叫"Intruder",它可以自动执行web应用攻击。同样,如果你是网络安全研究员或者正在进行渗透测试,Burp Suite也是一个必学工具
3.1.2网络漏洞扫描器:AWVS
AWVS是一个自动化的Web安全测试工具,它可以扫描Web站点和Web应用,AWVS可以快速扫描SQL注入,XSS攻击,目录遍历,文件入侵,PHP代码注入、代码执行等等
3.1. 3网络漏洞扫描器:AppScan
AppScan是一款非常好用且功能强大的Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界,Rational AppScan 可自动化 Web 应用的安全漏洞评估工作,能扫描和检测所有常见的 Web 应用安全漏洞,例如 SQL 注入(SQL-injection)、跨站点脚本攻击(cross-site scripting)、缓冲区溢出(buffer overflow)及最新的 Flash/Flex 应用及 Web 2.0 应用曝露等方面安全漏洞的扫描。欢迎有需要的朋友们前来下载使用。
3.1. 3代码漏洞扫描器:FingBugs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!