逻辑漏洞基础

暴力破解

 

无任何保护机制:没有验证码的,没有对输错密码次数进行限制,而且还是明文传输的系统,二话不说先是一顿暴力破解。
②抓取登录的数据包,发现用户名密码明文传输。
 
锁定机制绕过:
一定的错误次数会将账号进行锁定。或者是某IP频繁的进行登录操作会将IP封了
撞库攻击
 
 
验证码绕过:图片验证码和短信验证码。
图片验证码绕过:图片验证码输入一次正确可重复使用;图片验证码前端校验;图片验证码可被识别;验证码信息返回客户端
 
重复使用 正常爆破
 
 
短信验证码绕过
任意用户注册
 
 
修复建议:
以上简单的介绍了暴力破解的场景,那么要怎么防止被暴力破解呢?斗哥简单的和大家提几点修复建议: 
1.锁定机制:如限制单位时间内执行某项操作的次数(如果次数超过则对账号或IP进行一段时间的锁定,锁定时间内不得使用相关功能,应对限制方式、次数和计算方法、锁定时间等进行明确的说明。) 
2.人机识别措施:如图片验证码、重力感应、短信验证码、语音验证码等,为了提升用户体验,对于一些低风险的操作,可以设定单位时间内执行操作次数的阀值,超过阀值后再进行人机识别措施。 
3.图片验证码不应选择简单的数字图片,应加入干扰线、变形、颜色、汉字或者其他机器较难识别的逻辑来提升人机识别的有效性。 
4.验证码的生存周期应为一次性,即无论校验成功或失败,验证码在一次校验后就应该失效。 
5.所有的人机识别措施和校验都应在服务端进行。 
6.验证过程中不应返回有助于推测正确验证答案的信息,比如返回验证码的内容回客户端。
 
 

敏感数据泄露

抓包,看传输信息,看源代码,看返回信息

1.敏感信息传输
 某系统修改密码的时候,发现通过JSON进行传输的过程中,可以看到明文的新旧密码。
 
2.敏感信息显示
 
a). 某系统登录页面存在缺陷,导致敏感信息泄露。
html源代码中就有。。。sb的前端直接判断
3.客户端代码注释
 
4.错误处理测试
返回的错误信息
 
 
1.应根据业务特点定义出系统存储的敏感信息。
2.敏感信息在存储、传输、显示时应进行安全处理,可采用的处理方式为加密或脱敏。
3.敏感信息不应使用GET方式提交到服务器。
4.用户密码为最高级别的敏感信息,在存储、传输、显示时都必须加密。
5.需要选择可靠的加密算法,优先选择不对称加密算法,不得使用BASE64等编码方式进行“加密”
6.对于一些系统默认报错页面应重新进行设计自定义报错页面,以免暴露系统敏感信息。
 
 

上传漏洞

 

修改文件名字/扩展名。或者插入木马。修改,
 
文件上传过程中没有对文件的安全性进行有效的校验
1.无任何过滤
。。。。直接上webshell
2.客户端校验绕过
。。。前端认证
3.服务端校验绕过
1MIME绕过
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。标准的文件上传组件中会自动上传文件的MIME类型,但是由于MIME类型是从客户端传递的,修改也不影响文件正常运行,因此通过BURP拦截和修改MIME类型可以轻易绕过此类检测。
 
原理:服务端MIME类型检测是通过检查http包的Content-Type字段中的值来判断上传文件是否 合法的 。
2.  文件内容绕过
针对白名单检测,可以在满足要求的文件后插入木马脚本语句来绕过。而黑名单则可以通过对关键函数的各类混淆变化来绕过。
3.  扩展名绕过
文件扩展名检测通常分为黑名单检测和白名单检测两种,针对黑名单绕过方式有使用不常见的扩展名、大小写绕过及特殊字符结尾等,针对白名单绕过方式可以使用截断绕过、解析漏洞等进行绕过。
A. 特殊扩展名
eg:在文件后缀名后加上一个空格和一个小数点,发现可以绕过上传的限制
B.  截断漏洞
上传的时候进行抓包,修改后缀,加上url编码后的%00,例如下面的修改为jtbx1.jsp%00.dat。
 
 
 
 
 
1.对上传的文件的扩展名和文件报头信息在服务端与白名单对比,不符合白名单的不予保存。
2.上传过程不应传递目录或文件路径,使用预先设置路径列表中的匹配索引值,严禁泄露文件绝对路径。
3.对文件进行重命名,使用随机性好的文件目录和文件名进行保存。
4.上传文件的临时目录和保存目录不允许执行权限。
5. 有条件时可将保存在内容服务器或者数据库中。
 
 
越权 一般关注的就ID的几个参数

 

 
水平:
1. 基于用户身份ID
抓包修改用户ID、账号、手机号、证件号等,查看到其他用户信息
2. 基于对象ID
遍历订单号、记录号,可以查到他人信息
3.基于文件名
在使用某个功能时通过文件名直接访问文件,最常见于用户上传文件的场景。
①某系统存在水平越权漏洞。
②遍历fileid可以下载到数十万的资质文件:
http://**.**.**.**/sFile-image.action?fileid=9316
 
 
 
垂直
1.未认证账户访问无需认证后能访问该功能。
前端验证授权。。。。。
eg:①某站点后台仅使用js跳转来限制未授权的用户访问,去掉js就可以访问后台

 

2. 不具备某个功能权限的账户认证后成功访问该功能。
A.使用default用户名和密码,
useradmin为低权限用户,
对象管理——>用户管理——>编辑‘useradmin’——>得到URL:*.*.*.*/cgi-bin/webif/Objset-users.sh?edituser=edituser&id=5” 修改id得到高权限用户。。。。。
B.权限框架缺陷
在cookie中使用简单的权限标识来标记用户的权限等级或使用用户请求参数中所带的简单用户ID来控制用户权限,是典型的权限框架缺陷。
 
1.采用成熟的权限管理框架,如spring security。
2.用户进行访问操作的凭证(如用户ID、产品号码、订单流水号等)优先采用在服务端关联session或加密后放在session中的方式获取。
3.必须采用表单或其他参数提交用户进行访问操作的凭证(如用户ID、产品号码、订单流水号等)时,应尽可能采用难以猜测的构造方式(增加字母及随机数字等)或采用复杂的加密算法加密后提交,应对客户端提交的凭证与会话的权限进行严格的验证,如提交的产品号码是否为隶属于登录用户的产品号码。
4.对管理功能模块进行严格的权限验证,如非必要建议不对互联网开放或进行网络层的访问控制。
 
 

 绕过验证

客户端校验绕过//前端校验
直接修改参数
是否付费只靠前端js控制
 

 

 

 

获取视频下载地址
客户端验证信息泄露
验证信息直接泄露到客户端,攻击者可以通过分析服务端的返回数据直接获得关键的验证信息
客户端流程控制绕过
重置密码跳过短信验证码验证身份,直接到重置密码的页面
访问http://*.*.*.*/a/user/findPasswordSetp 直接跳到重置密码的页面。
 
操作目标篡改绕过
在身份验证过程中替换身份校验对象或操作对象实现绕过验证。
 
绑定手机,修改成自己的手机号获取验证码
 
参数篡改
验证程序时有可能会对验证码字段进行正确性校验,但当验证码字段不存在或为空时就直接通过校验。

 

 
删除验证字段进行爆破‘

 

辅助验证功能绕过
辅助验证功能包括图片验证码、短信验证码、邮箱验证
 
 
 
1.所有验证在服务端进行,验证问题的答案不能以任何形式返回客户端中(如图片验证码答案、短信验证码、验证问题答案等)。
2.验证结果及下一步跳转操作由服务端直接进行。
3.应尽可能避免采用连续身份验证机制,无论采用何种验证机制,只有当所有的数据输入以后,才进行身份验证数据的验证。
 
 
验证码不能出现在明文包中 任何时候都要考虑一下中间人攻击
参考:freebuf专栏_漏斗社区
posted @ 2019-03-12 13:21  hilfloser  阅读(530)  评论(0编辑  收藏  举报