[CISCN2019 华北赛区 Day1 Web2]ikun

[CISCN2019 华北赛区 Day1 Web2]ikun

buu题目复现

页面提示,一定要买到Lv6,查找几页,找不到Lv6的存在,尝试通过脚本爆破Lv6

import requests
url = 'http://57043135-ce0e-4b77-bcac-cd45e975d6f7.node4.buuoj.cn:81/shop?page='
for i in range(1,1000):
    url = 'http://57043135-ce0e-4b77-bcac-cd45e975d6f7.node4.buuoj.cn:81/shop?page=' + str(i)
    # print(url)
    result = requests.get(url).content.decode('utf-8')
    if 'lv6.png' in result:
        print(url+'|yes')
    else:
        print(url+'|no')

爆出结果在181页,访问找到Lv6

点击购买提示需要登录,没有账号可以先随手注册一个,注册成功后登录

在这里插入图片描述

余额只剩10元,明显不够,尝试逻辑支付漏洞绕过

在前端修改相关折扣
在这里插入图片描述

直接修改p标签里的数字无用,看到下面几个hidden类型的表单,通过post传参,才是解题关键

通过修改price值小于余额发现无法成功支付,提示操作失败

通过修改discount折扣值为0.00000000008,成功绕过,提示只允许admin访问
在这里插入图片描述

接下来是垂直越权操作,查看cookie,看到了一段JSON Web Token,复制出来,找在线网站[https://jwt.io/]解密查看在这里插入图片描述

看到了我们的用户名123,既然只允许admin访问,我们就可以修改123为admin进行越权操作,密钥可以通过c-jwt-cracker爆破出密码为1Kun,填入并修改用户为admin,得到修改后的JWT值

成功进入,在源码中找到了备份文件,下载并进行代码审计

这里考到了python pickle反序列化漏洞,全局搜索关键字pickle,定位到admin.py中,通过修改become参数来构造反序列化

在python2中只有内置类才有__reduce__方法,即用class A(object)声明的类,而python3中已经默认都是内置类了

在centos中利用python2执行得结果
在这里插入图片描述

复制结果到页面中找到对应的表单框(去掉标签的hidden类型),提交即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值