web漏洞-逻辑越权之登录脆弱支付篡改(34)

在这里插入图片描述

 这节课是这两个内容,登录的内容会讲不完,会有一小点部分,在别的课将,

#登录应用功能点产生的安全问题

只要有登录功能都可以检测(排除之前讲过的)

1.登陆点的暴力破口(很好理解

2.http/https传输,这个两个网站协议,对于登录点有不一样的地方

3.cookie脆弱点验证,如果是cookie验证,在验证方面有些问题就可以尝试

4.session型验证固定点测试,

5.验证密文比对安全测试,

先来看一下第一点,关于http/https协议密文抓取,

老师先用正常的http的网站演示

老师自己博客后台登陆得地方

 这个网站使用http搭建的,可以看一下网站的前缀

 这里在网上随便打开一个http的登陆网站,随便输入个账户密码看一下它发出的数据包,密码是铭文的

 再找一个https的网站,抓一下数据包看看是什么样子的,

 一般的话,http的网页明文传输,https会用密文,但是这不是绝对的,

如果要采用爆破的话要先采用他的网站是http还是https,http是明文传输的,也可能有密文,主要是代码决定的,如果是https爆破的话要确定这个密文是否能得到加密信息。

#举个例子,后台登陆爆破密码测试,

老师本地搭建的靶场

看一个这个源码采用爆破的原理,

 这个网站是http的,他的账户密码没有加密,利用抓包工具去抓数据包,

 正常来说应该是明文,但是加密了,这种进行爆破的话是要不断替换密码,但是他是加密的,就要按照他的加密方式进行加密之后,这个是md5加密。

这时候爆破的话可以用一下这个字典:https://github.com/huyuanzhi2/password_brute_dictionary

下载下来引用就可以了。

把数据包发送到重发器之后,发送一下,观察回显的数据包长度和状态码

 错误的的长度和状态码是这样的。爆破先把数据包发送到这里来

 选中好要爆破的地方(这里爆破的密码)之后,在去选择字典,

 因为数据包里面是密文,所以我们爆破也要加密,burp就有这个功能

 

 

 这个明显就是爆破成功了。必须要按照他的加密形式进行爆破

#cookie脆弱点验证修改

打开网站的登陆地址

 直接进入他的后台页,index会跳转到登录界面,抓住登录数据包

 这个数据包里面有其他cookie干扰了,我们需要一个感觉的cookie数据包,点击查看看数据包,

 第一次访问的时候并没有cookie,因为刚刚浏览器里面可能包含了其他的东西,所以有cookie。

看一下程序源代码

以r传输,而网站传输的值是index,所以就打开index。php,

 他会直接跳转,所以他这里是有验证的,可能就是它包含的文件,打开看一下

这时候,我们知道了她的验证方式是因为cookie的user为空,所以跳转到登录界面,那我们在数据包哪里给cookie赋值,user等于a

 

 然后发送出去数据包试试,

 进入后台来,cookie的脆弱性。这个漏洞是通过代码审计分析出来的,如果没有源代码该怎么分析这个漏洞,需要看数据包的去看,

访问的时候没有cookie

 在登陆后台抓一下数据包看看

 在实战情况下,没有源码是很难发现cookie脆弱点的,一般是看cookie里面的值有没有可以操作的,比如说cookie这里写了user=admin,然后改成tesr是不是就变成test用户登录了,看cookie的时候一定要看一下有没有用户参数或者和网站相关的,然后修改一下试试。

##业务这一模块

数据篡改安全问题 

参考链接  https://www.secpulse.com/archives/67080.html

数据篡改是支付问题,因为我们支付大部分都是商品,商品才有数据,商品就会涉及到购买,

商品购买流程:

选择商品和数量-选择支付及配送方式-生成订单编号-订单支付选择-完成支付

常见篡改参数:

商品编号ID,购买价格,购买数量,支付方式,订单号,支付状态等

我修改编号的话会不会就变成了其他东西,购买价格五千修改为两千就以两千去购买。订单编号会对你的订单比如所华为手机订单为1,苹果手机订单是2,以1编号打开支付解界面,把编号改成2就会以华为手机的价格买一个苹果手机。购买的时候是否判定支付成功,就是支付回显的状态,状态1成功0失败,如果能更改这个状态,让他变成1,没有付款,对方就会付款成功,但并没有付款。

常见修改方法:

替换支付(修改支付接口),重复支付,最小额支付,负数支付,溢出支付,优惠券支付等 

打开个商品程序

 这种小中型网站,来说自己建的靶场

 点开第二个商品,然后抓包

 但我们不操作它,

 进入到这个界面就看到了数量和金额,然后我们把数量换成88,再点击购买抓包

 真实环境下购买网站会不会有这个参数值是不确定,这个1000就可能在其他地方产生了,把数据包放出去就来到下面这个截面

 金额88000,但是这里并没有什么意义,我们在抓一次数量数据包,把数量改成-1。

 放出数据包

 价格变成了-1000,支付金额也就变成了0。这个就是数量修改达到金额偏差。

第一个攻击,数量问题导致金额0元。讲完之后再说这个原因

再看一下订单的去看,打开个人中心,有一个订单,

操作订单编号

实现低价格买东西,先买十个,要付款一万块,然后提交订单抓住数据包,就看到了订单编号

 先保存一下发送到重发器啊,

 然后在买一个,支付金额是一块,点提交订单之后抓住有编号的数据包

 之后把订单编号换成一万块的

 这个顺序搞反了,因该先下一个一千的订单然后在下个一万的,在修改为一千的编码

这个漏洞能不能产生具体看他的验证状态,对方有检测就不会产生。

打开另一个测试靶场

 放包,看看订单页面

 之后这里还有一个漏洞,修改数据包里面的商品编号来实现用低价格买高价格的商品,

 只需要修改这两个值,把6000的编号复制粘贴到,5400手机的数据包里面,然后发送出去,我们查看一下订单,

就相当于我替换了商品信息,以5400的价格购买六千的商品。 

#修改支付接口

 而这个接受,把s值换成我网站的支付接口,代码就会调用我的网站的支付接口,付款的金额也会到我网站的钱包里面。

支付状态:假如数据包里面支付成功是1,失败2,然后修改支付状态为成功的,让对方误认为你是成功的。

#防御以上漏洞的措施

数据接受以数据的为准,金额不能为负数验证,数量和库存能不能对比,这都判断之后修改数量价格就不能攻击了;

替换编号id防御:设置token值,数据包的唯一性,有这个判断就不会有这个漏洞。这个还跟后面的回退重放有关,这个就是把购买成功的数据包都保留下来然后再重新走一遍,如果没有token值,数据包唯一性,就会再一次购买成功,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值