大家好,又见面了,我是你们的朋友全栈君。
目录
逻辑漏洞
因为程序本身逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误,造成的一系列漏洞
Web安全渗透三大核心方向
输入输出
OWASP早期比较侧重的典型的web漏洞:注入、跨站、上传、代码执行等属于输入输出
登录体系、权限认证
近年来,越权漏洞、逻辑绕过、接口安全等逐渐增多,这些属于登录体系和权限认证
业务逻辑漏洞分类
1、登录体系安全
暴力破解
用弱密码字典,或者社工生成针对性的字典去爆破密码
cookie安全
有的网站对cookie不加密,也不base64编码,直接明文表示。可以自己重构组建cookie
加密测试
测试cookie、用户名、密码等敏感信息是否加密、使用了什么加密算法,然后解密
登录验证绕过
直接在url里输入要进入的页面路径、文件名,看能不能不登录就直接访问
任意注册
不验证手机号,不要求提供手机验证码(或者可绕过)。比如生成十亿条手机号,然后批量注册,将没有注册过的手机号都注册掉,影响正常用户的注册。
或者只验证手机号,不验证是否注册过。比如这个手机号a用来注册一个微信号,然后a不用了,营业厅又把这个手机号卖给b了,b又拿着这个手机号注册了一个微信。结果b新注册的微信覆盖掉了a的微信(只是举例,纯属虚构)
2、业务一致性安全
手机号篡改
抓包,将目标手机号改为自己的手机号,然后自己的手机号就接收到了验证码,有的网站只会验证验证码是否正确,没绑定用户,不验证是发给谁的。
邮箱和用户名更改
同上,只是改的是邮箱和用户名
订单ID更改
改ID,第一次下了5万的订单,第二次下一个5块钱的订单。可以抓包将第二次的订单号改成第一次的订单号。或者换成别人值钱的订单号,系统可能会将第一次的订单发两次
商品编号更改
改商品编号,比如本来买的是5毛钱的1号商品,改成50k的2号商品
用户ID篡改
使用自己的账号密码登录成功,获取登录成功的状态码。然后将ID换成别人的ID,系统如果只验证状态码的话,就会以别人的ID登录
流程顺序
比如一个自动售货机,本来应该是先收钱,再吐商品。换个顺序,就成了先吐商品,再收钱。然后你就能拿了商品就跑
3、业务数据篡改
金额数据篡改
修改商品价格。0元购(一般是虚拟货币,比如用金币、Q币支付),0.01元购(一般是RMB支付,因为银行卡每次转账的金额必须大于等于0.01)
商品数量篡改
修改商品数量,本来只买1件衣服,改成买了100件衣服
最大数限制突破
比如特价商品限购1件,改成10件
金额&优惠组合修改
顾名思义,同上
4、密码找回漏洞
分析数据包,定位敏感信息
在实现找回密码功能时,有些网站会在返回包里加入一些敏感内容
分析找回机制
看是通过邮箱验证码还是手机验证码验证用户身份的
修改数据包验证
改cookie等信息
任意密码找回
通过分析验证码、cookie、状态码找回、修改密码——或者跳过验证步骤、找回方式等步骤,直接跳到设置新密码界面
5、验证码突破
暴力破解
验证码爆破,有的验证码就是0000-9999,可以一个一个试
时间、次数突破
有的验证码在一定时间内可以重复使用,比如使用手机验证码登录,然后登录完之后,还可以使用这个验证码修改密码(如果修改密码需要用到手机验证码的话),或者再重新登录一次
回显测试
进入找回密码页面,输入手机号,获取验证码,服务器会向手机发送验证码,可以抓包查看返回包信息,有时返回包中会包含验证码
验证码绕过测试
注册的时候需要手机验证码,此时可以随便填一个手机号。然后抓包改状态码,比如将0改为1,将false改为true
验证检验机制猜解
验证码生成有规律,可以猜测。比如是用户名加当前时间。比如这一次是0001,下一次是0002,下下一次是0003……验证码可控,我们能猜出下一次验证码是什么
6、会话权限安全
未授权访问
顾名思义,没经过授权就访问。和登录测试绕过差不多,都是未授权(没有登录),就看到了本应登录才能看到的东西
水平&垂直越权测试
水平测试,用户a执行了用户b的操作;垂直越权,a执行了管理员的操作
会话固定&会话劫持
会话固定:诱骗受害者使用攻击者指定的会话标识(SessionID)的攻击手段。会话固定也可以看成是会话劫持的一种类型,只不过不是盗取受害者的session,而是让受害者使用攻击者指定的session。
会话劫持:过盗取受害者Session ID,然后利用受害者的Session ID登录受害者的账号
7、数据重放安全
恶意注册
同任意注册
短信&邮件炸弹
有的只在前端验证,比如60s后才能重新发送短信验证码,但是后端没有验证,可以让他一直重发,耗尽他短信池的流量,一般用来做DDoS
内容编辑
条件竞争
比如上传一个木马,服务器识别到就会删除一个。同时发100000万个,然后不停的请求执行这个木马。在某一刻,服务器还没识别到这是个木马并删除的时候,你先请求执行这个木马——只要你上传的速度大于他删除的速度,总会成功请求一个的
信息遍历
比如有的网站,id=1,就返回1号用户的信息;id=2,就返回2号用户的信息……id=10000,就返回10000号用户的信息。重发的时候,可以设置id逐步加1,就能遍历所有人的信息
8、数据接口安全
APP接口webservice
邮件&短信网关接口
数据库接口
三方接口
一般来说,调用别人的接口都是有限制的,要么有次数限制,要么得花钱买。所以可以将用DDoS的方式耗光次数。而且在接口的位置可以爆破密码。
支付漏洞
1、抓包改价格
在支付当中,购买商品一般分为三步骤:订购、确认信息、付款。随便哪个步骤都可以进行修改价格测试,若是前面两步也有验证机制,可以在最后一步付款时进行抓包尝试修改金额
2、将未支付状态改为已支付
改状态码
3、用别人的银行卡支付
将银行卡号换成别人的银行卡号
演示
进入靶场,点击立即购买
提示花费了100元购买了商品
抓包
发现支付的金额就利用get传参明明白白写在这里
将价格改成0.01
放包,只花费了0.01元
越权漏洞
分类
1.根据对数据库的操作进行分类,可以分为以下几类:越权查询、越权删除、越权修改、越权添加等。
2.根据维度进行分类,可分为:平行越权、垂直越权、交叉越权。
这里讲的是根据维度进行分类
危害
越权漏洞的危害与影响主要是与对应业务的重要性相关,比如说某一页面服务器端响应(不局限于页面返回的信息,有时信息在响应包中,页面不一定能看见)中返回登录名、登录密码、手机号、身份证等敏感信息,如果存在平行越权,通过对用户ID的遍历,就可以查看所有用户的敏感信息,这也是一种变相的脱裤,而且很难被防火墙发现,因为这和正常的访问请求没有什么区别,也不会包含特殊字符,具有十足的隐秘性。
如何检测
最简单的方式,通过定位鉴权参数,然后替换为其他账户鉴权参数的方法来发现越权漏洞。
水平越权
定义
水平越权,就是权限类型不变,权限ID改变。比如a,b两个普通用户,a只能看a的资料,b只能看b的资料。但是a通过修改用户名或者其他参数,看到了b的资料,就是水平越权。
演示
点一下提示,看到了用户,密码信息。
使用lucy登录
查看个人信息,是lucy的信息
刷新界面,抓个包,将lucy改为lili
此时,查看个人信息,显示的是lili的信息
垂直越权
定义
权限ID不变,权限类型改变。比如linux里面普通用户使用sudo提权,id未变,权限变了。
比如服务器是通过验证某个字段的值来判断用户的权限,比如role为1则为管理员,role为0则为普通用户,普通用户通过手动修改role的值,欺骗服务器,达到提权的目的。
如果普通用户和管理员用户不在一个表里。则使用更改cookie的方法来提权。
演示
查看提示,知道了普通用户pikachu的密码,登录pikachu
此时发现只有查看权限
退出登录,使用admin用户登录
添加一个用户
创建的时候抓包,然后发送给重发器(Ctrl+R)
发完之后将包放了
退出admin的用户登录,此时再以pikachu的身份登录
这个时候已经admin创建的1用户已经生效了
刷新一下,抓个包,复制pikachu用户的cookie的值
回到重发器
将这里原本admin的cookie改为pikachu的cookie,用户的账号密码也改一下,以区分之前创建的1用户
点击发送,刷新一下页面,多了个2用户
水平垂直越权
顾名思义,这是前两个的合集。可以这么理解:技术部的员工干了人事部部长的事…………
越权漏洞修复方案
1、基础安全架构,完善用户权限体系。要知道哪些数据对于哪些用户,哪些数据不应该由哪些用户操作;
2、鉴权,服务端对请求的数据和当前用户身份做校验;
3、不要直接使用对象的实名或关键字。
4、对于可控参数进行严格的检查与过滤!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130475.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...