常见安全漏洞及测试⽅法
常见安全漏洞及测试⽅法
垂直权限问题及测试⽅法
垂直权限漏洞是指Web应⽤没有做权限控制,或仅仅在菜单上做了权限控制,导致恶意⽤户只要猜到了其他页⾯的URL,就可以访问或控制其他⾓⾊拥有的数据或页⾯,达到权限提升的⽬的。
业务测试过程中,要设计此场景安全测试⽤例,并切实落地执⾏:⽤户A登录后,打开浏览器NetWork,查看所有XHR⽹络请求。⽤户B登录后,A的请求,进⾏重复操作,若可以正当操作,则表⽰接⼝存在越权问题。CR过程,要针对有update、delete、add接⼝做着重观察。
⽔平权限问题
⽔平权限漏洞是指Web应⽤程序接收到⽤户请求时,没有判断数据的所属⼈,或者在判断数据所属⼈时是从⽤户提交的参数中获取了userid,导致攻击者可以⾃⾏修改userid修改不属于⾃⼰的数据。例如,UserA和UserB的权限是⼀样的,但是A可以看到B的数据,就是发⽣了⽔平越权问题。
如何做好一个管理者容易发⽣⽔平越权的地⽅,除了⾝份(会话ID)标识外,站点还⽤其它信息(⼿机号、员⼯编码、⼯号
给长辈拜年的祝福语或者使⽤Hash算法⽣成的)⽤来标识⽤户或⽤户信息。例如,getAccount.do?accId=12345 ,此类接⼝就是⾼危的接⼝。
教师节板报图片通常情况下,我们会⽤两个测试账号来访问同⼀个Url,看能否返回相同的数据,如果能够互通,则说明后端接⼝为对当前⽤户做数据隔离,存在⽔平权限问题。系统功能测试过程中,设计两个测试账号,同时登陆两个测试账号,对⽐同⼀个页⾯的数据是否存在交叉。CR过程中,注意针对查询接⼝看是否都加上了⽤户属性作为数据隔离条件。
命令注⼊/执⾏
漏洞原理:⽤户输⼊被当做/拼接成服务器命令,交由⽣产⽹服务器代为执⾏,从⽽导致⽤户可以对服务器执⾏任意命令,甚⾄置⼊⽊马,反连,提权等风险操作;
测试⽅法:STC安全扫描;针对需要执⾏命令的接⼝,输⼊”cat /etc/passwd”或”| cat /etc/passwd”或者其他命令看是否会返回该命令的执⾏结果,只要有⼀个命令可以返回执⾏结果,判定有效;
代码注⼊/执⾏
塞尔达传说天空之剑漏洞原理:⽤户输⼊的代码被服务器直接执⾏,从⽽导致⽤户可以对服务器执⾏任意命令,甚⾄置⼊⽊马,反连,提权等风险操作;
测试⽅法:安全扫描;针对需要执⾏代码的接⼝,根据可以执⾏的代码不同构造服务器命令调⽤的代码进⾏测试,若可以正常执⾏,则漏洞有效;
SSRF(服务端请求伪造)
漏洞原理:服务端代理⽤户对⽤户输⼊的URL⽆条件发起请求,并将response返回给⽤户。⽤户可以填写内⽹的任意IP以及端⼝,⽤来进⾏内⽹嗅探;
测试⽅法:STC安全扫描在某测试服务器上搭建对应测试HTTP服务器;在相关业务接⼝中填写测试服务器地址提交,查看测试HTTP服务器是否会有访问记录,若有则说明有漏洞;
XXE(XML实体注⼊)
漏洞原理:⽤户上传XML⽂件,服务器在进⾏解析时没有禁⽌实体解析,导致schema中的URL被访问,造成类似SSRF的风险;农行查询
测试⽅法:安全扫描:在某测试服务器上搭建对应测试HTTP服务器;构造特定XML⽂件,其中某个schema URL为测试HTTP服务器地址;在XML上传接⼝上传该⽂件,若有看到测试服务器访问记录则有漏洞;Java业务建议使⽤集团扫描器进⾏扫描
反序列化漏洞
漏洞原理:从⽤户可控的位置(cookie,参数)中读取序列化字符串,在服务端进⾏反序列化代码执⾏操作,因为反序列化的内容可以写⼊任意代码,导致代码注⼊执⾏
测试⽅法:安全扫描;构造可执⾏服务器命令的序列化字符串,填⼊对应参数/cookie中看是否可以执⾏成功;
SQL注⼊
漏洞原理:⽤户输⼊的参数会直接拼接进⼊SQL语句中实现业务逻辑,若参数为精⼼构造的SQL语句,将会产⽣本意之外的SQL执⾏,⽐如拆解sql的root密码,进⼀步拖库
测试⽅法:安全扫描;使⽤sqlmap进⾏sql注⼊扫描;
卡塔尔面积和人口JSONP劫持
漏洞原理:Jsonp跨域提供数据传输时,未对访问来源进⾏判断,导致可被未授权的他⽅读取接⼝中的敏感信息;
测试⽅法:安全扫描;通过burpsuite抓包,若发现有⽤户个⼈标识/资源标识出现在参数或者cookie中时,尝试修改并重放请求,若返回正常则存在漏洞
任意URL重定向
漏洞原理:业务进⾏跳转的URL的域名可以被⽤户任意修改(跳转⽬标url在某个参数/cookie中),从⽽跳转⾄伪造的钓鱼⽹站,引导⽤户在⽹站上进⾏敏感信息输⼊,从⽽
测试⽅法:安全扫描;修改跳转⽬标URL参数,若能跳转则有漏洞;
XSS(跨域脚本攻击)
漏洞原理:⽤户输⼊的内容,不经过处理直接展⽰在web页⾯上,若⽤户输⼊的是可执⾏的js脚本将会被直接执⾏,则可能导致session_id 被盗取,csrftoken被盗取,jsonp劫持refer防御失效,同域名下敏感信息页⾯被盗取等后果
测试⽅法:安全扫描;在输⼊框输⼊”< >’ “ &”,当该输⼊框内容展⽰在页⾯上的时候,查看页⾯源码,若原样输⼊,则有漏洞,若被转义成”<,>”等html实体,则说明做了安全防护;
CSRF(客户端请求伪造)
漏洞原理:常规http接⼝的path,method, 参数等内容完全可以被拆解,有⼈会伪造某些⾼危操作接⼝(⽐如点赞,收藏,好评),将该接⼝伪装之后(⽐如⽣成短链接,⼆维码)发送给其他⽤户点击,此时等于在不知情情况下做了⼀些对⾃⼰有害的操作
测试⽅法:安全扫描;使⽤burpsuite进⾏抓包,将参数中的token删除,或者设置为空,重放请求,若正常访问则说明有漏洞;
短信/邮件/电话
漏洞原理:短信/电话号码,邮箱地址由⽤户填写,并且可以⽆频率次数的给其发送信息,打电话,⽤以进⾏骚扰⽤户;
测试⽅法:安全扫描;使⽤burpsuite进⾏信息发送接⼝抓包,并利⽤repeater功能进⾏批量访问,如果每次都成功说明没有做防护;
登录⼝爆破
漏洞原理:登录⼝设计不当,风控策略缺失/不得当,可以进⾏⽤户名密码爆破
测试⽅法:安全扫描;使⽤burpsuite,构造弱⼝令字典,使⽤repeater功能访问登录接⼝;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论