逻辑漏洞 常见类型2

输入正确旧密码和新密码,可成功修改密码。

  如图1-1

图1-1

图1-1

  再尝试输入错误的旧密码,看系统是否会对输入的旧密码进行判断正误如图1-2

图1-2

  可以看到,使用错误密码也能成功修改账户密码,没有对账户的旧密码进行正误判断。

  因此我们可以通过修改id参数的值,再利用错误密码也可修改密码这个漏洞进行任意用户密码修改如图1-3

图1-3

  交易

2.1 购买

  2.1.1修改支付的价格

  案例:

  顺丰宝存在支付逻辑漏洞,可以允许用户1元变1亿元。原因是页面交互都使用了对字段做签名。但是顺丰宝没做签名,导致支付金额可以被修改为任意数值。

  充值,填写充值金额1如图1-4

图1-4

  开启firefox的tamper,点击支付,截取数据包,修改参数Amount为一分如图1-5

图1-5

  修改支付的状态

  修改购买数量为负数

  修改金额为负数

  重放成功的请求

3. 越权

3.1 未授权访问

一、MongoDB 未授权访问漏洞

  漏洞信息

(1) 漏洞简述开启 MongoDB 服务时若不添加任何参数默认是没有权限验证的而且可以远程访问数据库登录的用户无需密码即可通过默认端口 27017 对数据库进行增、删、改、查等高危操作。刚安装完毕时MongoDB 都默认有一个 admin 数据库此时 admin 数据库为空没有记录权限相关的信息。当 admin.system.users 一个用户都没有时即使 MongoDB 启动时添加了 –auth 参数还是可以做任何操作不管是否以 –auth 参数启动直到在 admin.system.users 中添加了一个用户。

  检测方法

  可以自己编制相应脚本或利用专用工具检测也可以查看配置文件

(1) 检测是否仅监听 127.0.0.1

--bind_ip 127.0.0.1 or vim /etc/mongodb.conf bind_ip = 127.0.0.1

2) 检测是否开启 auth 认证

mongod --auth or vim /etc/mongodb.conf auth = true

  修复方法

(1) 为 MongoDB 添加认证

① MongoDB 启动时添加 -auth 参数。

② 给 MongoDB 添加用户

限制绑定 IP

  启动时加入参数

–bind_ip 127.0.0.1

或在 /etc/mongodb.conf 文件中添加以下内容

bind_ip = 127.0.0.1

  越权访问

  该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。越权访问漏洞主要分为水平越权访问和垂直越权访问。

  水平越权

  水平越权访问是一种“基于数据的访问控制”设计缺陷引起的漏洞。由于服务器端在接收到请求数据进行操作时没有判断数据的所属人/所属部门而导致的越权数据访问漏洞。

  假设用户A和用户B属于同一角色,拥有相同的权限等级,他们能获取自己的私有数据(数据A和数据B),但如果系统只验证了能访问数据的角色,而没有对数据做细分或者校验,导致用户A能访问到用户B的数据(数据B),那么用户A访问数据B的这种行为就叫做水平越权访问。

  如:getAddress.do?addressId=12345

  攻击者修改addressId即可得到他人的address信息。

  垂直越权

  垂直越权是一种“基于URL的访问控制”设计缺陷引起的漏洞,又叫做权限提升攻击。

  由于后台应用没有做权限控制,或仅仅在菜单、按钮上做了权限控制,导致恶意用户只要猜测其他管理页面的URL或者**的参数信息,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。如图1-6

图1-6

  将超管的包里的cookie替换成普通管理员,也能成功执行,从而达到垂直越权的目的

(本章完)

相关推荐