漏洞 应急方案
数据类型判断
强类型语言(Java c#)可以完全忽略数字型注入,弱类型语言会根据参数自动推到数据类型,只需要在程序中严格判断数据类型即可,使用is_numeric()、ctype_digit()函数判断数据类型
特殊字符转义
OWASP ESAPI提供了专门对数据库字符编码的接口,根据不同的数据库实现不同的编码器,支持Mysql,Oracle,DB2
Oracle为例
Oracle orcl = new OracleCodec();
springframework远程代码执行漏洞String sql = “SELECT USERID,USERNAME,PASSWORD FORM USER WHERE USERI= ”+der().encodeforSQL(orcl,userId);
State stmt = ateStatement(sql);
使用预编译语句
预编译语句在创建的时候已经将指定的SQL 语句发给了DBMS,完成解析、检查、编译等工作。
java中提供了三个接口与数据库交互,statement(执行静态SQL语句,并返回它所生成结果的对象)、PreparedStatement(statement的子类,表示预编译SQL语句的对象)、callablestatement(PreparedStatement的子类,执行SQL存储过程)
在使用Preparedstatement接口时,不能使用动态拼接SQL语句,必须使用它提供的setter方法。
框架技术
有一类框架专门和数据库打交道,被称为持久性框架,代表有:Hibernate、Mybatis、JORM,同样框架也要避免使用字符串动态拼接的方式,使用参数名称或者位置绑定的方式。
总结: SQL注入工具已经相当完备,一般工具为主,手工为辅。SQL注入的危害很大,可以完全杜绝,开发团队必须要有自己一套安全规范模板。
防范上传漏洞
客户端检测
客户端使用JavaScript检测,在文件未上传时,就对文件进行验证
客户端验证的初衷是防止普通客户上传错误,很容易绕过,FireBug可以绕过,Burp Suite中间人攻击可以绕过
服务端检测
主要包括:白名单和黑名单扩展名过滤、文件类型检测(MIME类型用来设定某种扩展文件的打开方式,当具有该扩展名的文件被访问时,浏览器会自动使用指定的应用程序打开,如GIFTU图片MIME为image/gif,css文件MIME类型text/css)、文件重命名等,但是开发人员要考虑解析问题,上传漏洞配合解析漏洞可以绕过大多数上传验证。
总结:上传漏洞成因一是目录过滤不严,攻击者可能建立畸形目录,二是文件未重命名,攻击者可能利用Web容器解析漏洞。
防御步骤(1)接收文件及其文件路径。
(2)获取扩展名与白名单对比,如果没有命令,程序退出。
(3)对文件重命名
以上步骤可以基本防御上传漏洞,Web容器为Apache时,不识别RAR格式,攻击者就可以上传病毒文件,配合Apache解析漏洞入侵。不仅需要程序编写方面要注意,在服务器配置,Web容器配置也要注意。
防范XSS跨站脚本
过滤敏感字符
在PHP中提供了htmlspecialchars()、htmlentities()函数把预定义的字符转换成HTML实体在Java中也有一些三方组件支持过滤XSS漏洞,OWASPEsapi、JSOUP、xssprotect
虽然HttpOnly对防御XSS漏洞不起作用,主要是解决XSS漏洞后续的Cookie劫持攻击
防范命令执行漏洞
1、尽量不要使用系统执行命令
2 、在进入执行命令函数或方法前,变量做好过滤,敏感字符转义
3、使用动态函数之前,确保使用的函数是指定的函数之一
4 、PHP不能完全掌控的函数最好不要使用
防范文件包含漏洞
1严格判断包含中的参数是否外界可控
2路径限制:限制被包含的文件只能在某一文件夹内,一定要禁止目录跳转字符,如“…/”
3包含文件验证验证被包含的文件是否是白名单一员
4尽量不要使用动态包含,可以在需要包含的页面固定写好
防范CSRF
CSRE可以理解为:服务器有没有执行POC的请求
预防
二次确认
Token确认
攻击成功的两个因素:
1 攻击者得知URL的所有参数项
2 、诱导用户访问构造好的POC
二级目录防范逻辑漏洞
成因不可预知性太强,需要丰富的经验,也需要足够强的代码能力,常规的挖掘逻辑漏洞:
1 、 发现网站提供的功能模块,比如:修改密码、回密码、修改个人资料等
针对具体的功能确定业务流程,详细划分具体步骤,拦截HTTP/HTTPS请求,分析其参数项的含义修改参数值,尝试触发逻辑漏洞
2、常见的逻辑漏洞
绕过授权验证(水平越权,垂直越权)、密码回逻辑漏洞、支付逻辑漏洞(数量为负,0元购买)、指定账户恶意攻击

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。