《最新安全性测试初步接触PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新安全性测试初步接触PPT课件.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、安全性测试初步接触安全性测试初步接触n n做的比较粗糙,大家在这块有什么可以交流下,n n消逝n n1.3)直接输入需要权限的网页地址可以访问n n避免研发只是简单的在客户端不显示权限高的功能项避免研发只是简单的在客户端不显示权限高的功能项举例举例BugBug:n n没有登录或注销登录后,直接输入登录后才能查看的页面没有登录或注销登录后,直接输入登录后才能查看的页面的网址(含跳转页面),能直接打开页面;的网址(含跳转页面),能直接打开页面;n n注销后,点浏览器上的后退,可以进行操作。注销后,点浏览器上的后退,可以进行操作。n n正常登录后,直接输入自己没有权限查看的页面的网址,正常登录后,直
2、接输入自己没有权限查看的页面的网址,可以打开页面。可以打开页面。n n通过通过HttpHttp抓包的方式获取抓包的方式获取HttpHttp请求信息包经改装后重新发请求信息包经改装后重新发送送 n n从权限低的页面可以退回到高的页面(如发送消息后,浏从权限低的页面可以退回到高的页面(如发送消息后,浏览器后退到信息填写页面,这就是错误的)览器后退到信息填写页面,这就是错误的)1.4)上传文件没有限制(此次不需要)上传文件没有限制(此次不需要)n n上传文件还要有大小的限制。上传文件还要有大小的限制。n n上传木马病毒等(往往与权限一起验证)上传木马病毒等(往往与权限一起验证)n n上传文件最好要有
3、格式的限制;上传文件最好要有格式的限制;此次我们不需要验证此处,简单介绍下,跳过此次我们不需要验证此处,简单介绍下,跳过1.5)不安全的存储 n n在页面输入密码,页面应显示在页面输入密码,页面应显示“*”“*”;n n数据库中存的密码应经过加密;数据库中存的密码应经过加密;n n地址栏中不可以看到刚才填写的密码;地址栏中不可以看到刚才填写的密码;n n右键查看源文件不能看见刚才输入的密码;右键查看源文件不能看见刚才输入的密码;n n帐号列表:系统不应该允许用户浏览到网站所有的帐号,帐号列表:系统不应该允许用户浏览到网站所有的帐号,如果必须要一个用户列表,推荐使用某种形式的假名(屏如果必须要一
4、个用户列表,推荐使用某种形式的假名(屏幕名)来指向实际的帐号幕名)来指向实际的帐号1.6)操作时间的失效性 n n检测系统是否支持操作失效时间的配置,同时达到所配置检测系统是否支持操作失效时间的配置,同时达到所配置的时间内没有对界面进行任何操作时,检测系统是否会将的时间内没有对界面进行任何操作时,检测系统是否会将用户自动失效,需要重新登录系统。用户自动失效,需要重新登录系统。n n支持操作失效时间的配置。支持操作失效时间的配置。n n支持当用户在所配置的时间内没有对界面进行任何操作则支持当用户在所配置的时间内没有对界面进行任何操作则该应用自动失效。该应用自动失效。如,用户登陆后在一定时间内(例
5、如如,用户登陆后在一定时间内(例如1515分钟)没有点击任何分钟)没有点击任何页面,是否需要重新登陆才能正常使用。页面,是否需要重新登陆才能正常使用。(二)借助工具或了解后手工来进行测试(二)借助工具或了解后手工来进行测试 n n不能把数据验证寄希望于客户端的验证n n不安全的对象引用,防止XSS攻击n n注入式漏洞(SQL注入)n n传输中与存储时的密码没有加密,不安全的通信n n目录遍历2.1)不能把数据验证寄希望于客户端的验证 n n避免绕过客户端限制(如长度、特殊字符或脚本等),所避免绕过客户端限制(如长度、特殊字符或脚本等),所以在服务器端验证与限制以在服务器端验证与限制n n客户端
6、是不安全,重要的运算和算法不要在客户端运行。客户端是不安全,重要的运算和算法不要在客户端运行。n nSessionSession与与cookiecookie例:保存网页并对网页进行修改,使其绕过客户端的验证。例:保存网页并对网页进行修改,使其绕过客户端的验证。(如只能选择的下拉框,对输入数据有特殊要求的文本框)(如只能选择的下拉框,对输入数据有特殊要求的文本框)还可以查看还可以查看cookiecookie中记录,伪造请求中记录,伪造请求测试中,可使用测试中,可使用TamperIESetupTamperIESetup来绕过客户端输入框的限制来绕过客户端输入框的限制 2.21)不安全的对象引用,防
7、止XSS等攻击n n阻止带有语法含义的输入内容,防止阻止带有语法含义的输入内容,防止CrossSiteScriptingCrossSiteScripting(XSS)Flaws(XSS)Flaws跨站点脚本攻击(跨站点脚本攻击(XSSXSS)n n防止防止Cross-siterequestforgeryCross-siterequestforgery(CSRFCSRF)跨站请求伪造跨站请求伪造n nxssxss解释:不可信的内容被引入到动态页面中,没有识别解释:不可信的内容被引入到动态页面中,没有识别这种情况并采取保护措施。攻击者可在网上提交可以完成这种情况并采取保护措施。攻击者可在网上提交可
8、以完成攻击的脚本,普通用户点击了网页上这些攻击者提交的脚攻击的脚本,普通用户点击了网页上这些攻击者提交的脚本,那么就会在用户客户机上执行,完成从截获帐户、更本,那么就会在用户客户机上执行,完成从截获帐户、更改用户设置、窃取和篡改改用户设置、窃取和篡改cookiecookie到虚假广告在内的种种到虚假广告在内的种种攻击行为攻击行为2.22)不安全的对象引用,防止XSS等攻击测试方法:在输入框中输入下列字符,可直接输入脚本来看测试方法:在输入框中输入下列字符,可直接输入脚本来看n nHTMLHTML标签:标签:n n 转义字符:转义字符:&(&)&(&);<()<()>()
9、; ( (空格空格);n n脚本语言:脚本语言:alert(document.cookie);alert(document.cookie);n n特殊字符:特殊字符:/n n最小和最大的长度最小和最大的长度n n是否允许空输入是否允许空输入n n 对对GridGrid、LabelLabel、TreeviewTreeview类的输入框未作验证,输入的类的输入框未作验证,输入的内容会按照内容会按照htmlhtml语法解析出来,要控制脚本注入的语法要语法解析出来,要控制脚本注入的语法要素。比如:素。比如:javascriptjavascript离不开:离不开:“”“”“”、“(”“(
10、”、“)”、“;”.“;”.在输入或输出时对其进行字符过滤或转义处理在输入或输出时对其进行字符过滤或转义处理2.23)注入式漏洞(SQL注入)n n对数据库等进行注入攻击。对数据库等进行注入攻击。n n例:一个验证用户登陆的页面,例:一个验证用户登陆的页面,如果使用的如果使用的sqlsql语句为:语句为:Select*fromtableASelect*fromtableAwhereusernamewhereusername+username+andpassword.+username+andpassword.则在则在SqlSql语句后面语句后面 输入输入or1or111就可以不输入任何就可以不
11、输入任何passwordpassword进行攻击进行攻击n nSELECTcount(*)SELECTcount(*)FROMusersFROMusersWHEREusername=aora=aANDpassword=aorWHEREusername=aora=aANDpassword=aora=aa=an n(资料太多,不显示了此处,借助工具资料太多,不显示了此处,借助工具AppscanAppscan等吧等吧)2.24)传输中与存储时的密码没有加密n n利用利用sslssl来进行加密,在位于来进行加密,在位于HTTPHTTP层和层和TCPTCP层之间,建立用层之间,建立用户与服务器之间的加密
12、通信户与服务器之间的加密通信 n n进入一个进入一个SSLSSL站点后,可以看到浏览器出现警告信息,然站点后,可以看到浏览器出现警告信息,然后地址栏的后地址栏的httphttp变成变成httpshttps(特点确定)(特点确定)n n证书认证证书认证n nn n检查数据库中的用户密码、管理者密码等字段是否是以加检查数据库中的用户密码、管理者密码等字段是否是以加密方式保存。密方式保存。n n存储数据库单独隔离,有备份的数据库,权限唯一存储数据库单独隔离,有备份的数据库,权限唯一2.25)目录遍历n n举例:举例:n nhttp:/ n认证和会话数据不能作为GET的一部分来发送n n隐藏域与CGI
13、参数n n不恰当的异常处理n n不安全的配置管理n n缓冲区溢出n n拒绝服务n n日志完整性、可审计性与可恢复性3.1)Get or postn n认证和会话数据不应该作为认证和会话数据不应该作为GETGET的一部分来发送,应该使的一部分来发送,应该使用用POSTPOSTn n例:对例:对GridGrid、LabelLabel、TreeviewTreeview类的输入框未作验证,输类的输入框未作验证,输入的内容会按照入的内容会按照htmlhtml语法解析出来语法解析出来 n n可使用可使用TamperIESetupTamperIESetup或或ScannerHttpAnalyzerFullS
14、cannerHttpAnalyzerFull来判断来判断3.2)隐藏域与CGI参数n nBugBug举例:举例:分析:隐藏域中泄露了重要的信息,有时还可以暴露程序分析:隐藏域中泄露了重要的信息,有时还可以暴露程序原代码。原代码。直接修改直接修改CGICGI参数,就能绕过客户端的验证了。参数,就能绕过客户端的验证了。如:如:inputtype=hiddenname=hvalue=http:/XXX/checkout.php只要改变只要改变valuevalue的值就可能会把程序的原代码显示出来。的值就可能会把程序的原代码显示出来。n n如大小写,编码解码,附加特殊字符或精心构造的特殊请如大小写,编
15、码解码,附加特殊字符或精心构造的特殊请求等都可能导致求等都可能导致CGICGI源代码泄露源代码泄露n n可使用可使用appscanappscan或或ssssss等来检测,检查特殊字符集等来检测,检查特殊字符集3.3)不恰当的异常处理 n n分析:程序在抛出异常的时候给出了比较详细的内部错误分析:程序在抛出异常的时候给出了比较详细的内部错误信息,暴露了不应该显示的执行细节,网站存在潜在漏洞,信息,暴露了不应该显示的执行细节,网站存在潜在漏洞,有可能会被攻击者分析出网络环境的结构或配置有可能会被攻击者分析出网络环境的结构或配置n n通常为其他攻击手段的辅助定位方式通常为其他攻击手段的辅助定位方式n
16、 n举例:如举例:如www.c*www.c*,搜索为空时,数据库显示出,搜索为空时,数据库显示出具体错误位置,可进行具体错误位置,可进行sqlsql注入攻击或关键字猜测攻击注入攻击或关键字猜测攻击3.4)不安全的配置管理 分析:分析:ConfigConfig中的链接字符串以及用户信息,邮件,数据存中的链接字符串以及用户信息,邮件,数据存储信息都需要加以保护储信息都需要加以保护 n n配置所有的安全机制,配置所有的安全机制,n n关掉所有不使用的服务,关掉所有不使用的服务,n n设置角色权限帐号,设置角色权限帐号,n n使用日志和警报。使用日志和警报。n n手段:用户使用缓冲区溢出来破坏手段:用
17、户使用缓冲区溢出来破坏webweb应用程序的栈,通应用程序的栈,通过发送特别编写的代码到过发送特别编写的代码到webweb程序中,攻击者可以让程序中,攻击者可以让webweb应用程序来执行任意代码应用程序来执行任意代码n n例:数据库的帐号是不是默认为例:数据库的帐号是不是默认为“sa”“sa”,密码(还有端口号),密码(还有端口号)是不是直接写在配置文件里而没有进行加密。是不是直接写在配置文件里而没有进行加密。3.5)缓冲区溢出 n nWEBWEB服务器没有对用户提交的超长请求没有进行合适的处服务器没有对用户提交的超长请求没有进行合适的处理,这种请求可能包括超长理,这种请求可能包括超长URL
18、URL,超长,超长HTTPHeaderHTTPHeader域,域,或者是其它超长的数据或者是其它超长的数据n n使用类似于使用类似于“strcpy()“strcpy(),strcat()”strcat()”不进行有效位检查的函数,不进行有效位检查的函数,恶意用户编写一小段程序来进一步打开安全缺口,然后将恶意用户编写一小段程序来进一步打开安全缺口,然后将该代码放在缓冲区有效载荷末尾,这样,当发生缓冲区溢该代码放在缓冲区有效载荷末尾,这样,当发生缓冲区溢出时,返回指针指向恶意代码出时,返回指针指向恶意代码n n用户使用缓冲区溢出来破坏用户使用缓冲区溢出来破坏webweb应用程序的栈,通过发送应用程
19、序的栈,通过发送特别编写的代码到特别编写的代码到webweb程序中,攻击者可以让程序中,攻击者可以让webweb应用程应用程序来执行任意代码。序来执行任意代码。n n如如apachapach缓冲区溢出等错误,第三方软件也需检测缓冲区溢出等错误,第三方软件也需检测3.6)拒绝服务n n手段:超长手段:超长URLURL,特殊目录,超长,特殊目录,超长HTTPHeaderHTTPHeader域,畸形域,畸形HTTPHeaderHTTPHeader域或者是域或者是DOSDOS设备文件设备文件n n分析:攻击者可以从一个主机产生足够多的流量来耗尽狠分析:攻击者可以从一个主机产生足够多的流量来耗尽狠多应用
20、程序,最终使程序陷入瘫痪。需要做负载均衡来对多应用程序,最终使程序陷入瘫痪。需要做负载均衡来对付。付。n n详细如:死亡之详细如:死亡之pingping、泪滴(、泪滴(TeardoropTeardorop)、)、UDPUDP洪水洪水(UDPFloodUDPFlood)、)、SYNSYN洪水(洪水(SYNFloodSYNFlood)、)、LandLand攻击、攻击、SmurfSmurf攻击、攻击、FraggleFraggle攻击、攻击、畸形消息攻击畸形消息攻击3.7)日志完整性。可审计性与可恢复性 n n服务器端日志:检测系统运行时是否会记录完整的日志。服务器端日志:检测系统运行时是否会记录完整
21、的日志。n n如进行详单查询,检测系统是否会记录相应的操作员、操如进行详单查询,检测系统是否会记录相应的操作员、操作时间、系统状态、操作事项、作时间、系统状态、操作事项、IPIP地址等地址等n n检测对系统关键数据进行增加、修改和删除时,系统是否检测对系统关键数据进行增加、修改和删除时,系统是否会记录相应的修改时间、操作人员和修改前的数据记录。会记录相应的修改时间、操作人员和修改前的数据记录。工具篇WatchfireAppscanWatchfireAppscan全面自动测试工具全面自动测试工具AcunetixWebVulnerabilityAcunetixWebVulnerability全面自
22、动测试工具全面自动测试工具ScannerHttpAnalyzerFullScannerHttpAnalyzerFull加载网页时可判断加载网页时可判断TamperIESetupTamperIESetup提交表单时改造数据提交表单时改造数据n n注:上述工具最好安装在虚拟机中,不影响实际机环境注:上述工具最好安装在虚拟机中,不影响实际机环境注:上述工具最好安装在虚拟机中,不影响实际机环境注:上述工具最好安装在虚拟机中,不影响实际机环境n nAppscanAppscan、WebVulnerabilityWebVulnerability需安装需安装framework,可能与,可能与sniffersn
23、iffer冲突冲突n nScannerHttpAnalyzerFulScannerHttpAnalyzerFul与与TamperIESetupTamperIESetup会影响实际机浏览器平时的会影响实际机浏览器平时的功能测试功能测试(一)Watchfire Appscann n选择模板,default(含大部分的测试集合)n n填入用户名与密码(各页面通用)(二)Acunetix Web Vulnerabilityn n选择webscan,填写用户名与密码(三)ScannerHttpAnalyzerFulln n嵌套在网页中,对于每个加载项都有加载时间、method、result、type、u
24、rl等n nMethodn n主要验证到时是否使用post来进行认证与会话n nResultn n主要看加载项是否出现http403、404、500等错误(对于错误还要进行归类)(四)TamperIESetupn n验证用户名与密码传输(postorget)(五)其他工具n nCompanionjsCompanionjs逆向查看逆向查看javajava语言编写的网页源语言编写的网页源码码n nNessusNessus扫描服务器(协议与端口)扫描服务器(协议与端口)n nParosParos扫描工具扫描工具n nSssSss系统扫描工具系统扫描工具n nSdsSds数据库扫描工具数据库扫描工具n nwiktospiderwiktospider、googlehackgooglehack等等n nX-scanX-scan、流光、流光结束语结束语谢谢大家聆听!谢谢大家聆听!36