一:敏感信息泄露
1.1什么属于敏感信息
只要这些数据可以被黑客看到,并且对黑客的攻击有帮助的信息,都属于敏感信息。
1.2什么是敏感信息泄露
敏感信息泄露,是指人们把不该公开的信息,给放入到公开的信息库中,造成敏感信息泄露。
1.3怎样检查敏感信息是否加密
需要通过抓包工具,检查数据在传输过程中是否加密。
1.4 常见敏感信息分类
1.4.1 软件泄漏
软件类: 1. 操作系统版本 , 2.中间件的类型、版本 , 3.Web程序(cms类型及版本、敏感文件)
1.4.2 Web敏感信息
- phpinfo()信息泄漏
描述:Web站点的某些测试页面可能会使用到PHP的phpinfo()函数,会输出服务器的关键信息。如下图所示:
检测方法:访问http://[ip]/test.php 以及http://[ip]/phpinfo.php看是否成功。
修复方案:删除该PHP文件。
2.测试页面泄漏在外网
描述:一些测试页面泄漏到外网,导致外界误传公司被黑客入侵。如下图所示:
-
http://parts.baby.qzoneapp.com/test.php
-
http://other.baby.qzoneapp.com
检测方法:检测页面内容,看是否是测试页面。
修复方案:删除测试页面,例如test.cgi,phpinfo.php,info.pho, .svn/entries等。 -
编辑器备份文件泄漏在外网
描述:编辑器或者人员在编辑文件时,产生的临时文件,如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. 登录界面用户名,密码泄漏
描述:管理后台的帐号和密码设计过于简单,容易被猜测到,导致攻击者可以暴力破解帐号密码。如下图所示:
修复方案:
- 如果该管理后台必须提供给外网访问,则未登录页面不要显示过多内容,防止敏感信息泄漏,登录帐号需经过认证,且密码设置规则尽量复杂,增加验证码,以防止暴力破解。
7.病人信息泄露(地址,身份证,手机号码。检查结果)
描述:泄漏病人内部地址,身份证,手机号码,检查结果相当于泄漏了员工内部ID,可以为黑客进行社会工程学攻击提供有价值的材料,同时也为黑客暴力破解后台服务提供重要的帐号信息。
8.错误页面暴漏信息
描述:页面含有CGI处理错误的代码级别的详细信息,例如sql语句执行错误原因,php的错误行数等。
检测方法:修改参数为非法参数,看页面返回的错误信息是否泄漏了过于详细的代码级别的信息。
修复方案:将错误信息对用户透明化,在CGI处理错误后可以返回友好的提示语以及返回码。但是不可以提示用户出错的代码级别的详细原因。 - robots.txt
robots.txt基本上每个网站都用,而且放到了网站的根目录下,任何人都可以直接输入路径打开并查看里面的内容,如http://www.splaybow.com/robots.txt。该文件用于告诉搜索引擎,哪些页面可以去抓取,哪些页面不要抓取。一般而言,搜索引擎都会遵循这个规则。
https://blog.csdn.net/gongqinglin/article/details/52082841 - phpMyAdmin https://www.freebuf.com/news/159117.html
11.网站源码备份文件(www.rar/sitename.tar.gz/web/zip等)
1.4.3. 网络信息泄漏
9. DNS域传送漏洞
- 运维监控系统弱口令、网络拓扑泄漏
1.4.4 第三方软件应用 - github上源码、数据库、邮箱密码泄漏
- 百度网盘被员工不小心上传敏感文件
- 如果apache开启目录遍历之后,网站浏览者可以查看网站目录结构。同时iis等中间件都有这些功能。利用文件读取功能,也可以一定程度的读取网站目录结构。
二:安全漏洞
2.1 常见安全漏洞类型 : - Brute Force(暴力破解)
- Command Injection(命令行注入)
- CSRF(跨站请求伪造)
- File Inclusion(文件包含)
- File Upload(文件上传)
- Insecure CAPTCHA(不安全的验证码)
- SQL Injection(SQL注入)
描述:Web程序代码中对于用户提交的参数未做过滤就直接放到SQL语句中执行,导致参数中的特殊字符打破了SQL语句原有逻辑,黑客可以利用该漏洞执行任意SQL语句。
检测方法:通过修改参数来判断是否存在漏洞。
修复方案: - 针对ASP.NET的防XSS库,Microsoft有提供统一的方法,具体可以参见如下链接: http://www.cnblogs.com/hcmfys/archive/2008/07/11/1240809.html
- 针对其它语言如下细分:
在代码级对带入SQL语句中的外部参数进行转义或过滤:
(1)对于整数,判断变量是否符合[0-9]的值;其他限定值,也可以进行合法性校验
(2)对于字符串,对SQL语句特殊字符进行转义(单引号转成两个单引号,双引号转成两个双引号)。关于这点,PHP有类似的转义函数mysql_escape_string和mysql_real_escape_string。
建议:
(1)使用腾讯CMEM存储方案;(2)对与数据库进行交互的用户请求数据,要先做过滤,防止SQL注入。 - SQL Injection(Blind)(SQL盲注)
- XSS(Reflected)(反射型跨站脚本)
- XSS(Stored)(存储型跨站脚本)
描述:Web程序代码中把用户提交的参数未做过滤就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫传播、篡改页面实施钓鱼攻击等。
检测方法:通过修改参数来判断是否存在漏洞。
比如用户输入内容:’a”的时候,合法的显示是: ’a” ,合法的显示的源码是:
而存在漏洞的页面显示却是:’a”
源码是:
修复方案: - 开发者应该严格按照openid和openkey的校验规则判断openid和openkey是否合法,且判断其它参数的合法性,不合法不返回任何内容。
- 严格限制URL参数输入值的格式,不能包含不必要的特殊字符( %0d、%0a、%0D 、%0A 等)。
- 针对ASP.NET的防XSS库,Microsoft有提供统一的库,具体可以参见如下链接
微软官网:http://msdn.microsoft.com/en-us/library/aa973813.aspx
描述:Web程序代码中把用户提交的参数未做过滤就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫传播、篡改页面实施钓鱼攻击等。
检测方法:通过修改参数来判断是否存在漏洞。
比如用户输入内容:’a”的时候,合法的显示是: ’a” ,合法的显示的源码是:
而存在漏洞的页面显示却是:’a”
源码是:
修复方案: - 开发者应该严格按照openid和openkey的校验规则判断openid和openkey是否合法,且判断其它参数的合法性,不合法不返回任何内容。
- 严格限制URL参数输入值的格式,不能包含不必要的特殊字符( %0d、%0a、%0D 、%0A 等)。
- 针对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
抓包时发现:
修复方案: - 在设置HTTP响应头的代码中,过滤回车换行(%0d%0a、%0D%0A)字符。
- 不采用有漏洞版本的apache服务器,同时对参数做合法性校验以及长度限制,谨慎的根据用户所传入参数做http返回包的header设置。
- 跳转漏洞
名称:跳转漏洞
描述: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
来源:CSDN
作者:安迪雨梦
链接:https://blog.csdn.net/weixin_42996498/article/details/103487125