Web安全培训守望者内容概述•安全测试简介•安全测试方法•安全风险原理分析•主要工具介绍安全测试介绍•安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程安全测试方法•安全问题的本质是权限或能力约束的突破,从系统角度分析安全问题必须从外部内部权限对象的角度实施威胁建模,通过完备的分析攻击界面,数据流,威胁,威胁的细化漏洞形式来指导进行完备的安全测试。系统自身的安全问题涵盖了3个不同的要点:安全功能,安全策略,安全实现。威胁建模的不同过程可以逐步指导对这三个层面的要求,最后反馈和指导安全测试。安全测试流程漏洞分析——SQL注入•SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。•条件一:用户能够控制输入•条件而:程序执行的代码拼接了用户输入的数据漏洞分析——SQL注入(二)代码:StringuserName=request.getParameter(“userName”);Stringpasswd=request.getParameter(“passwd);Stringquery=SELECT*FROMusersWHEREuser='+userName+'ANDpasswd='+passwd+';ResultSetrs=stmt.execute(query);SQL语句:SELECT*FROMusersWHEREuser=‘userName’ANDpasswd=‘passwd’;如果一个攻击者输入参数passwd为passwd'OR'a'='a,那么构造的查询就会变成:SELECT*FROMusersWHEREuser=‘userName’ANDpasswd=‘passwd’OR‘a’=‘a’;由于or‘a’=‘a’会使where从句永真。SQL查询便可简化成下列:SELECT*FROMusers;漏洞分析——SQL注入(三)Sql注入高级部分•Union使用•带外通道•条件判断•时间延时漏洞分析——XSS•跨站脚本攻击,通常指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。漏洞分析——XSS(二)对参数param作输出,代码:?php$input=$_GET[“param”];echo“div”.$input.”/div”;?当我们输入param=scriptalert(111)/script时(即插入一段弹框脚本),浏览器客户端便会执行。查看浏览器源代码:divscriptalert(111)/script/div漏洞分析——代码执行•编程语言中包含一些可以执行代码的函数,如PHP中的eval()、system()、exec()等。当开发人员编写源码时没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端执行。其他漏洞•1、文件包含•2、文件上传•3、文件下载•4、越权工具介绍——APPSCAN•APPSCAN是IBM公司开发的一款综合性的应用系统安全漏洞扫描工具。主要针对web应用层漏洞。•AppScan扫描由两个阶段组成:•探测阶段:AppScan用模拟人为点击链界和填写表格的方式探测站点(应用或者Web服务)。它分析响应,查找潜在弱点的迹象并利用他们创建“测试请求”。•测试阶段:AppScan在探索期间发送上千个预定的测试请求。记录并分析应用的响应,辨别安全问题并排列他们的安全级别。•软件优缺点:•优点:漏洞误报率相对较低。•缺点:资源占用率较高,漏洞测试全面性较低工具介绍——WVS•WVS(WebVulnerabilityScanner)是一个自动化的Web应用程序安全测试工具,它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序。•相对于其它同类型的扫描器,wvs扫描器优缺点如下:•优点:•扫描速度较快,漏洞发掘较全面,资源占用率较少。•缺点:•扫描误报率高,验证漏洞相对较烦琐。