Web Application Security(Web应用安全)
Web Application Security
1.web应用面临的主要安全问题
1)黑客入侵:撞库拖库、网页篡改、后门木马、加密勒索、数据泄露
2)恶意内容
2.web应用安全现状
1)网站安全问题:弱口令 > SQL注入 > 信息泄露 > 命令执行
2)web应用攻击类型:Webshell探测 > 命令执行 > sql注入 > 文件包含 >文件上传
3)漏洞类型:缓冲区溢出 > 跨站脚本 > 输入认证 > SQL注入 > 权限许可与访问控制
3.Web应用被攻击的原因:
自身存在漏洞
1)业务:缺乏业务风险控制手段 。垃圾注册大量用户获取出事击放和投票权;绕过接口验证机制,尝试批量破解用户账号密码(撞库)
2)内容:不对UGC进行内容审核。
3)数据层:数据明文存储和传输。入侵后窃取用户信息或篡改数据,例如篡改网页
4)应用层:存在应用和业务逻辑漏洞。通过罗东入侵后端服务器和数据库
5)主机层:弱口令、系统漏洞。通过系统漏洞入侵,并上传后门、木马
6)网络层:没有防范DDoS进攻的能力。DDoS/CC攻击,造成业务中断
7)移动APP:移动App未加固。反编译破解App客户端,获得敏感代码,进而伪造或篡改信息,或制作仿冒应用
威胁持续加剧
1)国家背景支持:政治动机驱动
2)漫无目的黑客:脚本小子。到处显示自己能力的黑客
3)网络犯罪:窃取金融信息、个人信息、DDOS、安装Botnet等,主要经济利益驱动
4)自动驱动型黑客:名利驱动型。可以发动高难度的入侵,主要证明自己的能力;
5)白帽子:热爱黑客技术,主要是帮助企业发现安全漏洞,可能是专业也可能是初学者
信息价值的飞速提升-》经济利益
4.web应用安全类型
1)注入:
攻击者发送恶意数据构造数据查询或操作系统命令
注入类型包括:SQL注入、操作系统命令注入、XML注入、LDAP注入等
注入是解释性语言(如脚本语言和标记型语言)不得不面对的挑战性问题
危害:信息泄露(数据库被窃取)、操作系统被控制
SQL注入:
示例:2016年,中国银行某站MySql注入(涉及管理员密码/大量用户卡号信息)
华为某站存在SQL注入(17w用户&任意文件下载)
天虹基金主站存在SQL注入
SQL注入的原因:
对敏感字符不加过滤不做转义处理
单引号篡改SQL语句
注释符号 --或 /**/篡改SQL语句
分号;在同一字符串内执行多个数据操作
SQL注入代码示例:
String query="SELECT * FROM accounts WHERE custID=' "+request.getParamenter("id")+"'";
恶意输入
http://example.com/app/accountView?id='or'1 ='1'
被篡改后的SQL语语句
SELECT * FROM accounts WHERE custID='or'1'='1'
//即custID=' 或 '1'='1'时,查询accouts,但1恒等于1,所以该SQL就等价于 Select * From accouts
SQL注入预防
对输入数据进行验证/编码/过滤
不要动态主装SQL语句,正确使用预编译SQL语句
如果需要动态组装sql语句,确保在使用输入数据在构造SQL之前,对特殊字符进行转义
加固数据库,控制损失范围
禁止将任何高权限账号(例如:root\data\sa等)用于应用程序数据库访问。更安全的方法是单独为应用创建有限权限的账号
限制账号所能访问的数据表
拒绝账号访问敏感的系统存储过程
2)失效的认证和会话管理
身份认证:用户名/密码>Token/PIN>指纹/脸扫描
会话管理:Http利用会话管理机制来实现连接识别。用户登录通过身份认证后获取session,通常放在cookie中,之后根据session对用户身份进行识别,而不需要每次都要登陆
危害:信息泄露、用户会话被劫持
预防方法:
使用SSL保护用户身份信息和sessionID
对用户密码强度设置做要求
登录使用验证吗或双因子认证账号进行短时锁定(双因子
对连续多次登录失败的账号进行短时锁定
不使用简单或可预期的密码保护问题
验证成功后更换sessionID
不在URL中显示sessionID
设置session闲置超时
确保退出、注销功能强制销毁session
3)跨站脚本攻击(XSS)
攻击者通过在Web页面输入点 注入恶意脚本,若web应用对输入数据不进行处理,直接结果输出到浏览器,浏览器将执行恶意脚本
XSS攻击类型:
非持久型:也称反射型XSS,通过Ge和post方法,将注入的恶意数据放置在URL的query字符串 或 form 数据中。如果服务器端对输入的数据不进行过滤,验证或编码,将恶意数据直接呈现给客户,可能会造成XSS
持久型,也叫存储型XSS,通常因为服务器端未将输入的恶意脚本通过验证就直接存储到数据库
危害:Dos攻击(使网络阻塞/主机资源耗尽)、信息泄露、篡改网页
示例:2011年,新浪微博Xss攻击事件:大量用户中毒后自动向自己的粉丝发送带链接的私信和微博,并自动关注一名hellosamy的用户。由于微博使用的是短链接,用户只能看到诱人的新闻标题的私信和微博,当他们点击链接后便也会中毒,造成恶性循环
预防方式:
编码:直接将HTML标签最关键的字符<>&编码为⁢>&
过滤:将script/style/iframe/onmouseover等有害字符串去掉,但保留<>&等有限的基本标签
防范XSS的真正挑战在于全面
输入过滤:比较低效,只使用过滤会很难全面(前端包含91中HTML标签、十多种编码方式、数种对象类型...),而且可能导致意外结果(例如:alice's变成alices),有时候还需要多次过来(例如:<scrip<script>t> )
输入编码:可设计全局的解决方案
输出编码:用于解决输入编码无法处理的已入库数据
借助第三方代码库
Java:OWASP的WSAPI与Java Encoder、Coverity Security Library(CSL)
JavaScript:Encoder.js、DOMPurify
4)不安全对象直接引用
用户可以通过修改访问参数可以直接访问非授权信息(例如:http://www.ddd.com/userinfo.do?ID=)
原因:开发者未设置合理的访问权限控制
示例:澳大利亚一个税务局网站被攻击者通过简单的修改ID获取了上万家公司的信息
危害:信息泄露
预防方式:(以下方案结合使用)
使用随机书使唯一标识变得难以猜测,增加攻击难度
隐藏实际引用,使用随机书为直接引用标识,生成非直接引用标识
确保对每个页面的访问都坚持访问去权限和页面所有权
5.Web 安全测试工具
白盒商业:
HPE Fortify(Static Code Analyzer)
IBM Security AppScan Source
CA Veracode Greenlight
Sonar Source Code Analyzers
白盒开源:
SonarQube,SonarLint
FindBugs
黑盒商业:
HPE Fortify WebInspect
SoapUI NG Pro
黑盒开源:
Selenium
soapUI
OWASP ZAP
sqlmap
Metasploit
w3af
Burp Suite
6.Web应用安全交互测试工具(即,开发时提示是否有漏洞)
商业:
HPE Fortify Declnspect
7.HPE Fortify 使用
Static Code Analyzer 源码静态扫描
WebInspect动态扫描
将扫描工具和集成Software Security Center。扫描发现的漏洞会自动创建SSC。SSC可以对比前后测试结果改进,提供测试报表
8.Web安全控制的流程:
inital review
Threat modeling
Design review
Code review
Risk assessment
Risk mitigation
Benchmark
Maintain
没有对敏感字符
Web Application Security(Web应用安全)的更多相关文章
- Web Application和Web Site两个模板的比较
Scenario Web Application Project Web Site Project 项目定义 跟 Visual Studio .NET 2003 类似,由于项目文件的存在,只有被项目文 ...
- Spring Security(三十七):Part IV. Web Application Security
Most Spring Security users will be using the framework in applications which make user of HTTP and t ...
- IDEA artifacts Web Application:Exploded Web Application:Archive
首先,artifacts是maven中的一个概念,表示项目/modules如何打包,比如jar,war,war exploded,ear等打包形式,一个项目或者说module有了artifacts 就 ...
- Spring Security(二十八):9.4 Authentication in a Web Application
Now let’s explore the situation where you are using Spring Security in a web application (without we ...
- ModSecurity web application firewall (WAF) Research
catalog . 引言 . OWASP ModSecurity Core Rule Set (CRS) Project . Installation mod_security for Apache ...
- What is Web Application Architecture? How It Works, Trends, Best Practices and More
At Stackify, we understand the amount of effort that goes into creating great applications. That’s w ...
- WEB APPLICATION PENETRATION TESTING NOTES
此文转载 XXE VALID USE CASE This is a nonmalicious example of how external entities are used: <?xml v ...
- Tomcat翻译--Tomcat Web Application Deployment(Tomcat中部署web应用)
原文:http://tomcat.apache.org/tomcat-7.0-doc/deployer-howto.html Introduction(介绍) Deployment is the te ...
- ASP.NET Web Application中使用链接文件
最近重构一个内部的平台系统,作为一个平台,其下有几个子系统,每个子系统有自己的网站系统.而每个网站使用的是统一的风格,统一的验证机制,反馈系统,等等.所以,为了避免几个子系统中重复出现相同的资源或文件 ...
随机推荐
- 【easy】263. Ugly Number 判断丑数
class Solution { public: bool isUgly(int num) { ) return false; ) return true; && num % == ) ...
- switch case 遇到判断type分支的写法
一叶障目,没有接触到的知识点真是太多了...... 最近项目里需要用到一个小工具,就用winform写了一个出来,然后需要一个功能就是清空控件内容,我这个工具就用到了textbox和combobox, ...
- pip install psycopg2出现python setup.py egg_info failed with error code 1 in /tmp/pip-build-YtLeN3/psycopg2错误处理
折腾了一上午flask部署,到最后访问域名还是出现Application Error错误提示.估计是程序还有问题,想着直接clone书中作者的代码先试试能不能部署成功.结果在执行pip install ...
- Java Spring Boot VS .NetCore (三)Ioc容器处理
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- 【Bootstrap】 typeahead自动补全
typeahead 这篇文章记录了我在使用typeahead的一些问题,不是很全,但是基本够用. Bootstrap提供typeahead组件来完成自动补全功能. 两种用法: 直接给标签添加属性 &l ...
- c_数据结构_队的实现
# 链式存储#include<stdio.h> #include<stdlib.h> #define STACK_INIT_SIZE 100//存储空间初始分配量 #defin ...
- call、apply、bind
***call,apply,bind 替换this 何时: 只要this不是想要的都可用call,apply,bind替换 选择: call/apply: *调用*函数,在调用时,*临时*替换函数中的 ...
- HDU 4283 You Are the One 【区间DP】
<题目链接> 题目大意: 有$n$个人排成一排要上台表演,每个人有一个屌丝值$pi$.第i个上台表演的人,他的不满意度为$(i-1)*p_i$.现在有一个类似于栈的黑屋子,你可以让某些人进 ...
- Python线性表——单链表
1. 线性表简介 线性表是一种线性结构,它是由零个或多个数据元素构成的有限序列.线性表的特征是在一个序列中,除了头尾元素,每个元素都有且只有一个直接前驱,有且只有一个直接后继,而序列头元素没有直接前驱 ...
- DWM1000 测距原理简单分析 之 SS-TWR代码分析2 -- [蓝点无限]
蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 正文: 首先将SS 原理介绍中的图片拿过来,将图片印在脑海里. 对于DeviceA 和 DeviceB来说,初 ...