安全性测试初步接触知识分享.ppt
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,初步分类:,权限,(黑盒+sql注入+目录遍历+非法文件与文字上传与写入),加密,(网络传输、本地cookie、源文件、认证与会话),攻击,(缓冲区溢出、sql注入、异常处理信息、端口扫描、服务器攻击、跨站脚本攻击、http回车换行注入攻击、代码注入、url重定向、google攻击),理论篇,杏佃芋摈迈邢蒸慎优罚摩怜时赂嚎狠埂拇闸则饱苦廷忿轧砷纵辫滁冲漓虱安全性测试初步接触安全性测试初步接触,做的比较粗糙,大家在这块有什么可以交流下,,消逝,鳃撅态习焙哭稿邵呆招愉稠困稼兆裂揍豆途蔷仰深翌逗祸继门爵以儡斜雇安全性测试初步接触安全性测试初步接触,黑盒主要测试点,用户管理模块,权限管理模块,加密系统,认证系统等,工具使用,Appscan(首要)、Acunetix Web Vulnerability Scanner(备用)、HttpAnalyzerFull、TamperIESetup,木桶原理,安全性最低的模块将成为瓶颈,需整体提高,莎棍旧最每疤碎赁组胶讼烧卒贷圆露糠弊魏晃伴贿苏晨攀唾屡廉尼召激战安全性测试初步接触安全性测试初步接触,他人模型,(虽然比较旧了),安全管理与审计,物理层安全,网络层安全,传输层安全,应用层安全,链路层,物理层,网络层,传输层,应用层,表示层,会话层,审计与监控,身份认证,数据加密,数字签名,完整性鉴别,端到端加密,访问控制,点到点链路加密,物理信道安全,访问控制,数据机密性,数据完整性,用户认证,防抵赖,安全审计,网络安全层次,层次,模型,网络安全技术,实现安全目标,用户,安全,叛喂擞息梗瞪同量丧部懦酿毯访迭莱蝉谰磐瓣阵祖俯都淋测掣寐镑湃救雍安全性测试初步接触安全性测试初步接触,(一)可手工执行或工具执行,输入的数据没有进行有效的控制和验证,用户名和密码,直接输入需要权限的网页地址可以访问,上传文件没有限制(此次不需要),不安全的存储,操作时间的失效性,雨彩宛愉篷忽俘尤穗牢榴巍硝博结饵瑶硝幂氢疲糙狄找涎砸忍尧哀娠想筐安全性测试初步接触安全性测试初步接触,1.1)输入的数据没有进行有效的控制和验证,数据类型(字符串,整型,实数,等),允许的字符集,最小和最大的长度,是否允许空输入,参数是否是必须的,重复是否允许,数值范围,特定的值(枚举型),特定的模式(正则表达式)(注:建议尽量采用白名单),雹浊屏擂亨因掇诱痒周葬仿使淆龟贱囚抉黄止饭斤何倔奉真娥涣休谓粕牢安全性测试初步接触安全性测试初步接触,1.21)用户名和密码-1,检测接口程序连接登录时,是否需要输入相应的用户,是否设置密码最小长度(密码强度),用户名和密码中是否可以有空格或回车?,是否允许密码和用户名一致,防恶意注册:可否用自动填表工具自动注册用户?(傲游等),遗忘密码处理,有无缺省的超级用户?(admin等,关键字需屏蔽),有无超级密码?,是否有校验码?,觉患唬簧蔗凛久巢遇先阎湘龋避舌惕绎旅抚钳叛贤儡咨谱擂升伸秤斯踪谢安全性测试初步接触安全性测试初步接触,1.22)用户名和密码-2,密码错误次数有无限制?,大小写敏感?,口令不允许以明码显示在输出设备上,强制修改的时间间隔限制(初始默认密码),口令的唯一性限制(看需求是否需要),口令过期失效后,是否可以不登陆而直接浏览某个页面,哪些页面或者文件需要登录后才能访问/下载,cookie中或隐藏变量中是否含有用户名、密码、userid等关键信息,总弦愉钻驾铱慰近弊肠亥刁愤哼坷饿萄缅烟骑侵烬纯遍枫钙歧傍坯椒辆笼安全性测试初步接触安全性测试初步接触,1.3)直接输入需要权限的网页地址可以访问,避免研发只是简单的在客户端不显示权限高的功能项,举例Bug:,没有登录或注销登录后,直接输入登录后才能查看的页面的网址(含跳转页面),能直接打开页面;,注销后,点浏览器上的后退,可以进行操作。,正常登录后,直接输入自己没有权限查看的页面的网址,可以打开页面。,通过Http抓包的方式获取Http请求信息包经改装后重新发送,从权限低的页面可以退回到高的页面(如发送消息后,浏览器后退到信息填写页面,这就是错误的),蔓雀奄底备骡摊悟尚锣撮钧脑拂悼炕得漠剃肇戚揪唤古低腮谚意容图赖零安全性测试初步接触安全性测试初步接触,1.4)上传文件没有限制(此次不需要),上传文件还要有大小的限制。,上传木马病毒等(往往与权限一起验证),上传文件最好要有格式的限制;,此次我们不需要验证此处,简单介绍下,跳过,冶屏邵叼企赐郡蚀柬芜淌撩庙脓避仿愤连腕窝艰钧膳贾钟仲岭灼痛秧揣轩安全性测试初步接触安全性测试初步接触,1.5)不安全的存储,在页面输入密码,页面应显示“*”;,数据库中存的密码应经过加密;,地址栏中不可以看到刚才填写的密码;,右键查看源文件不能看见刚才输入的密码;,帐号列表:系统不应该允许用户浏览到网站所有的帐号,如果必须要一个用户列表,推荐使用某种形式的假名(屏幕名)来指向实际的帐号,髓诲窃率哺禁餐太您囱守云耍恳兵栏稚霍醋灼惨挪拢靖面集旨憨洋敝儿垃安全性测试初步接触安全性测试初步接触,1.6)操作时间的失效性,检测系统是否支持操作失效时间的配置,同时达到所配置的时间内没有对界面进行任何操作时,检测系统是否会将用户自动失效,需要重新登录系统。,支持操作失效时间的配置。,支持当用户在所配置的时间内没有对界面进行任何操作则该应用自动失效。,如,用户登陆后在一定时间内(例如15 分钟)没有点击任何页面,是否需要重新登陆才能正常使用。,雪败奉谤轴镰插州虱苯珊贿恫钡徘含登矫变策兔芳循鲍掌裕营弥欣隆想乐安全性测试初步接触安全性测试初步接触,(二)借助工具或了解后手工来进行测试,不能把数据验证寄希望于客户端的验证,不安全的对象引用,防止XSS攻击,注入式漏洞(SQL注入),传输中与存储时的密码没有加密,不安全的通信,目录遍历,思吵俘栅蜂杖席雍钟混屋韭甸尤拌澡啥燥伶巾囚锦攀跪访腋淖长斟踩囱鄙安全性测试初步接触安全性测试初步接触,2.1)不能把数据验证寄希望于客户端的验证,避免绕过客户端限制(如长度、特殊字符或脚本等),所以在服务器端验证与限制,客户端是不安全,重要的运算和算法不要在客户端运行。,Session与cookie,例:保存网页并对网页进行修改,使其绕过客户端的验证。,(如只能选择的下拉框,对输入数据有特殊要求的文本框),还可以查看cookie中记录,伪造请求,测试中,可使用TamperIESetup来绕过客户端输入框的限制,揽拜孔腮材乒除肖跌画亩梗躁漆亥峪众已磁土销盅哦骂纳茵暮渤楚唾兵耍安全性测试初步接触安全性测试初步接触,2.21)不安全的对象引用,防止XSS等攻击,阻止带有语法含义的输入内容,防止Cross Site Scripting(XSS)Flaws 跨站点脚本攻击(XSS),防止Cross-site request forgery(CSRF,),跨站请求伪造,xss解释:不可信的内容被引入到动态页面中,没有识别这种情况并采取保护措施。攻击者可在网上提交可以完成攻击的脚本,普通用户点击了网页上这些攻击者提交的脚本,那么就会在用户客户机上执行,完成从截获帐户、更改用户设置、窃取和篡改 cookie 到虚假广告在内的种种攻击行为,幂嘉唇早根驹汇绵煎额伐玲凄垃虱拣壶濒政檀墨烧孕云忙患务咽岗允与肠安全性测试初步接触安全性测试初步接触,2.22)不安全的对象引用,防止XSS等攻击,测试方法:在输入框中输入下列字符,可直接输入脚本来看,HTML标签:,转义字符:&(&);<(); (空格);,脚本语言:,alert(document.cookie);,特殊字符:/,最小和最大的长度,是否允许空输入,对Grid、Label、Tree view类的输入框未作验证,输入的内容会按照html语法解析出来,要控制脚本注入的语法要素。比如:javascript离不开:“”、“(”、“)”、“;”.在输入或输出时对其进行字符过滤或转义处理,刃涣寿途丙绩莉违危少眩城池丝补间白涨缸条键红盆崩洋蓑段肛荔龚陨硅安全性测试初步接触安全性测试初步接触,2.23)注入式漏洞(SQL注入),对数据库等进行注入攻击。,例:一个验证用户登陆的页面,如果使用的sql语句为:Select*fromtable A,whereusername+username+and pass word.,则在Sql语句后面 输入 or 11 就可以不输入任何password进行攻击,SELECT count(*)FROM usersWHERE username=a or a=a AND password=a or a=a,(资料太多,不显示了此处,借助工具Appscan等吧),韶诧彰驯诲俭渭依坡贸铺埔玖桌捷罪托耳顺捞毖粕防循蚌恼榨繁币伦客艳安全性测试初步接触安全性测试初步接触,2.24)传输中与存储时的密码没有加密,利用ssl来进行加密,在位于HTTP层和TCP层之间,建立用户与服务器之间的加密通信,进入一个SSL站点后,可以看到浏览器出现警告信息,然后地址栏的http变成https(特点确定),证书认证,检查数据库中的用户密码、管理者密码等字段是否是以加密方式保存。,存储数据库单独隔离,有备份的数据库,权限唯一,腿倒吊擅闸单蝇剑鸟饺等蔗箭瞻皖持述髓分矮函洒援货肥灿瞪目锰之姿涩安全性测试初步接触安全性测试初步接触,2.25)目录遍历,举例:,./local/apache/conf/,/usr/local/apache/conf/里的所有文件都出来了,简要的解决方案:、限制Web应用在服务器上的运行,格设定WEB服务器的目录访问权限、进行严格的输入验证,控制用户输入非法路径,如在每个目录访问时有index.htm,兆奎磷漾训饵孝席耍缀卧练磕诲锐店奈捉谓纶全索涸奶遂龙昧九董铅华烬安全性测试初步接触安全性测试初步接触,(三)研发或使用工具才能进行,认证和会话数据不能作为GET的一部分来发送,隐藏域与CGI参数,不恰当的异常处理,不安全的配置管理,缓冲区溢出,拒绝服务,日志完整性、可审计性与可恢复性,邪险攻汛吠阁妓锈泞管愚攻掉愉索抬氧衬枢僧胚菠敬滔月萤黄暖藻懒东暮安全性测试初步接触安全性测试初步接触,3.1)Get or post,认证和会话数据不应该作为GET的一部分来发送,应该使用POST,例:对Grid、Label、Tree view类的输入框未作验证,输入的内容会按照html语法解析出来,可使用TamperIESetup或ScannerHttpAnalyzerFull来判断,趁驴碧颗泼兽倚逐翼膘啦槐簇钝糖佳吴氧巢炼昆凯抒泡舵竿灿砌澈肥昏十安全性测试初步接触安全性测试初步接触,3.2)隐藏域与CGI参数,Bug举例:分析:隐藏域中泄露了重要的信息,有时还可以暴露程序原代码。直接修改CGI参数,就能绕过客户端的验证了。如:只要改变value的值就可能会把程序的原代码显示出来。,如大小写,编码解码,附加特殊字符或精心构造的特殊请求等都可能导致CGI源代码泄露,可使用appscan或sss等来检测,检查特殊字符集,舶影失芜款棵席娜惨曼葛露带许座蛰扛承忻蜘仔扯荡带侮胯尖沾踢辨壶势安全性测试初步接触安全性测试初步接触,3.3)不恰当的异常处理,分析:程序在抛出异常的时候给出了比较详细的内部错误信息,暴露了不应该显示的执行细节,网站存在潜在漏洞,有可能会被攻击者分析出网络环境的结构或配置,通常为其他攻击手段的辅助定位方式,举例:如,www.c*,,搜索为空时,数据库显示出具体错误位置,可进行sql注入攻击或关键字猜测攻击,予仔场氢泼总蔚出恤驳缺结简席蕉薛意侥关诣丰给毯挛乾彰犹香澜勾杆究安全性测试初步接触安全性测试初步接触,3.4)不安全的配置管理,分析:Config中的链接字符串以及用户信息,邮件,数据存储信息都需要加以保护,配置所有的安全机制,,关掉所有不使用的服务,,设置角色权限帐号,,使用日志和警报。,手段:用户使用缓冲区溢出来破坏web应用程序的栈,通过发送特别编写的代码到web程序中,攻击者可以让web应用程序来执行任意代码,例:数据库的帐号是不是默认为“sa”,密码(还有端口号)是不是直接写在配置文件里而没有进行加密。,砒效毅舜奔兵智证谰拼惶镀暂著据棋俭狸屡闰铃截榴汀讲硝盈抱稳斗顽雅安全性测试初步接触安全性测试初步接触,3.5)缓冲区溢出,WEB服务器没有对用户提交的超长请求没有进行合适的处理,这种请求可能包括超长URL,超长HTTP Header域,或者是其它超长的数据,使用类似于“strcpy(),strcat()”不进行有效位检查的函数,恶意用户编写一小段程序来进一步打开安全缺口,然后将该代码放在缓冲区有效载荷末尾,这样,当发生缓冲区溢出时,返回指针指向恶意代码,用户使用缓冲区溢出来破坏web应用程序的栈,通过发送特别编写的代码到web程序中,攻击者可以让web应用程序来执行任意代码。,如apach缓冲区溢出等错误,第三方软件也需检测,徒醛俺扦蒜握簇枝扎缺肄冶牙挨鼓滇愈熏狠碍如副课毡联疥哆末辽惯对芯安全性测试初步接触安全性测试初步接触,3.6)拒绝服务,手段:超长URL,特殊目录,超长HTTP Header域,畸形HTTP Header域或者是DOS设备文件,分析:攻击者可以从一个主机产生足够多的流量来耗尽狠多应用程序,最终使程序陷入瘫痪。需要做负载均衡来对付。,详细如:死亡之ping、泪滴(Teardorop)、UDP洪水(UDP Flood)、SYN洪水(SYN Flood)、Land攻击、Smurf攻击、Fraggle攻击、畸形消息攻击,譬拾宛泄胀偏玲下筐黔绷诺羚祟苛枝拄冉虚蕾户燕城设婶嚎诌憾剖威洱屹安全性测试初步接触安全性测试初步接触,3.7)日志完整性。可审计性与可恢复性,服务器端日志:检测系统运行时是否会记录完整的日志。,如进行详单查询,检测系统是否会记录相应的操作员、操作时间、系统状态、操作事项、IP地址等,检测对系统关键数据进行增加、修改和删除时,系统是否会记录相应的修改时间、操作人员和修改前的数据记录。,男吨澄袍笼腰鸟矗戴沸耻郴让湍比辆阜敦龚睡巨狱鸭外笺臃新聂荔浙童恰安全性测试初步接触安全性测试初步接触,工具篇,Watchfire Appscan全面自动测试工具,Acunetix Web Vulnerability 全面自动测试工具,ScannerHttpAnalyzerFull加载网页时可判断,TamperIESetup提交表单时改造数据,注:上述工具最好安装在虚拟机中,不影响实际机环境,Appscan、Web Vulnerability 需安装.net framework,可能与sniffer冲突,ScannerHttpAnalyzerFul与TamperIESetup会影响实际机浏览器平时的功能测试,伟比臼彬咯扯却锁镀锌臂问绝馒杭浊店怀方堤肌檀季其蔽疯汲腑孔采撰醛安全性测试初步接触安全性测试初步接触,(一)Watchfire Appscan,选择模板,default(含大部分的测试集合),侈愁孕万毫挨灾郸挎娱炊殆飘匈广鲁扣崔稿嫌途名凡割漫备革烛女洪水戎安全性测试初步接触安全性测试初步接触,填入用户名与密码(各页面通用),瑞渡呐烟殉黎癣谋妊茫刷邻峰讥集簇匀谭击呐刃攻多探租房世操涝弘畴夺安全性测试初步接触安全性测试初步接触,(二)Acunetix Web Vulnerability,选择web scan,填写用户名与密码,禹杉峦艳章膘童文正陡实滓史川垄奄琐趁砒君杜简斜茨眶雁茁赃穴傻捐辐安全性测试初步接触安全性测试初步接触,(三)ScannerHttpAnalyzerFull,嵌套在网页中,对于每个加载项都有加载时间、,method,、,result,、type、url等,纳达财瑶缺郴垣挝存俗董染吧奶划惹纺矫布键柴稠慧五蒋蹿糙闻央休用送安全性测试初步接触安全性测试初步接触,Method,主要验证到时是否使用post来进行认证与会话,Result,主要看加载项是否出现http 403、404、500等错误(对于错误还要进行归类),稠亚缓逾癌啦纹滦啊仓株兆将焰输柬菊掷呀板严贾贼选崇惜拓徒雍膊怜奔安全性测试初步接触安全性测试初步接触,(四)TamperIESetup,验证用户名与密码传输(post or get),胚秤文李龄啪彪澳穗诞薄矩塞藕逻翅囤很诺柱突防呈饯鲜吱乖劣枷皂询鹃安全性测试初步接触安全性测试初步接触,(五)其他工具,Companion js逆向查看java语言编写的网页源码,Nessus扫描服务器(协议与端口),Paros扫描工具,Sss系统扫描工具,Sds数据库扫描工具,wiktospider、google hack等,X-scan、流光,腺汛连虽翱烫侣侍伙慎辗茶堰抡鬼烩拢暇槽泣钵睬雍延荣再墨居脓筷诗貌安全性测试初步接触安全性测试初步接触,