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

太原搭建网站的公司哪家好抖音seo查询工具

太原搭建网站的公司哪家好,抖音seo查询工具,国外photoshop素材网站,泉州网站建设报价前言 在众多的CTF平台当中,作者认为CTFHub对于初学者来说,是入门平台的不二之选。CTFHub通过自己独特的技能树模块,可以帮助初学者来快速入门。具体请看官方介绍:CTFHub。 作者更新了CTFHub系列,希望小伙伴们多多支持…

前言

  在众多的CTF平台当中,作者认为CTFHub对于初学者来说,是入门平台的不二之选。CTFHub通过自己独特的技能树模块,可以帮助初学者来快速入门。具体请看官方介绍:CTFHub。

作者更新了CTFHub系列,希望小伙伴们多多支持。

作者的CTFHub技能树汇总:

CTFHub技能树Web汇总-CSDN博客

基础知识

看完文章,在最底下就有flag。

这篇文章写的不错,本来还想总结一下JSON Web Token,但这篇其实已经把用到的知识都讲了,弄懂这篇就够了。

敏感信息泄露

JWT 的头部和有效载荷这两部分的数据是以明文形式传输的,如果其中包含了敏感信息的话,就会发生敏感信息泄露。试着找出FLAG。格式为 flag{}。

是一个登录框,随便输入,登录

在存储里看到token了

用base64解密一下,可以看到我们账号密码直接显示了,这就是敏感信息泄露

FLAG也直接显示了,注意要复制正确,别把FL处的“}“也复制了

(这个解法并不是很好,一会我们有别的方法)

注意:

Header Payload 串型化的算法是 Base64URL

JWT 作为一个令牌(token),有些场合可能会放到 URL里(比如 api.example.com/?token=xxx)。Base64 有三个字符+、/和=,在 URL 里面有特殊含义,所以要被替换掉:=被省略、+替换成-,/替换成_ 。

这里最好还是用专门的jwt解密网站:https://jwt.io/

看着会更清楚

还是尝试登录,输入两个admin,复制token

用专门的网站解密

这个看着就清爽很多

然后把flag拼接起来即可

无签名

一些JWT库也支持none算法,即不使用签名算法。当alg字段为空时,后端将不执行签名验证。尝试找到 flag。

还是登录,然后拿到token解密

根据题目的提示

应该是将alg字段设置为none,这样后端将不执行签名验证。

同时我们将role改为admin试试

注意去掉=

eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0

eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiJhZG1pbiIsInJvbGUiOiJhZG1pbiJ9

然后用.连接起来,再然后别忘了最后还得加个.用来连接签名(虽然签名为空)

eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiJhZG1pbiIsInJvbGUiOiJhZG1pbiJ9.

弱密钥

如果JWT采用对称加密算法,并且密钥的强度较弱的话,攻击者可以直接通过蛮力攻击方式来破解密钥。尝试获取flag

这里很明显是要我们去进行JWT的弱密钥爆破

这里作者用的是c-jwt-cracker

GitHub - brendan-rius/c-jwt-cracker: JWT brute force cracker written in C

由于在kali上一直配不好,遂在docker里使用。

先从上面链接里下载zip文件,然后解压缩,放入kali中(作者的kali里已经安装docker了,没有安装的可以去找个教程),然后在该文件夹里打开终端(这里作者给文件夹改了个名),按照github里的指令执行:

具体的命令github里面都有,直接复制即可,只需要构建镜像、运行这两步

安装完成后,我们运行一下,把CTFHub上的JWT复制一下,替换github上给的实例,进行爆破

出结果了,作者的密钥是qrni

然后我们输入密钥,在线网站会显示签名已验证

然后我们把role改为admin

复制JWT

将role是admin的JWT写入cookie,然后刷新

出flag

修改签名算法

有些JWT库支持多种密码算法进行签名、验签。若目标使用非对称密码算法时,有时攻击者可以获取到公钥,此时可通过修改JWT头部的签名算法,将非对称密码算法改为对称密码算法,从而达到攻击者目的。

是一个登录框及源码

<?php
require __DIR__ . '/vendor/autoload.php';
use \Firebase\JWT\JWT;class JWTHelper {public static function encode($payload=array(), $key='', $alg='HS256') {return JWT::encode($payload, $key, $alg);}public static function decode($token, $key, $alg='HS256') {try{$header = JWTHelper::getHeader($token);$algs = array_merge(array($header->alg, $alg));return JWT::decode($token, $key, $algs);} catch(Exception $e){return false;}}public static function getHeader($jwt) {$tks = explode('.', $jwt);list($headb64, $bodyb64, $cryptob64) = $tks;$header = JWT::jsonDecode(JWT::urlsafeB64Decode($headb64));return $header;}
}$FLAG = getenv("FLAG");
$PRIVATE_KEY = file_get_contents("/privatekey.pem");
$PUBLIC_KEY = file_get_contents("./publickey.pem");if ($_SERVER['REQUEST_METHOD'] === 'POST') {if (!empty($_POST['username']) && !empty($_POST['password'])) {$token = "";if($_POST['username'] === 'admin' && $_POST['password'] === $FLAG){$jwt_payload = array('username' => $_POST['username'],'role'=> 'admin',);$token = JWTHelper::encode($jwt_payload, $PRIVATE_KEY, 'RS256');} else {$jwt_payload = array('username' => $_POST['username'],'role'=> 'guest',);$token = JWTHelper::encode($jwt_payload, $PRIVATE_KEY, 'RS256');}@setcookie("token", $token, time()+1800);header("Location: /index.php");exit();} else {@setcookie("token", "");header("Location: /index.php");exit();}
} else {if(!empty($_COOKIE['token']) && JWTHelper::decode($_COOKIE['token'], $PUBLIC_KEY) != false) {$obj = JWTHelper::decode($_COOKIE['token'], $PUBLIC_KEY);if ($obj->role === 'admin') {echo $FLAG;}} else {show_source(__FILE__);}
}
?>

这里输入admin及admin,登录

打印出了我们的JWT

看一下,加密方式是RS256,role是guest

读一下源码,这里发现要读出flag需要几个条件。

请求方式不是POST(这个简单,随便刷新一下就是GET,就不是POST),

cookie不为空且可以HS256解密(需要换加密方式,头部的alg字段也得由RS256改为HS256),

role要是admin(需要由guest修改为admin)

综上,我们编辑一下JWT的Header(头部)和Payload(负载)

{"typ":"JWT","alg":"HS256"}{"username":"admin","role":"admin"}

Base64编码一下

注意JWT是Base64URL。我们要去掉=,然后别忘了在头部和负载之间加上.

最后的结果是(大家可以直接复制):

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6ImFkbWluIn0.

把它打印出来的JWT的Header(头部)和Payload(负载)改为我们刚编辑的

然后用jwt_tool工具修改,这里要注意在jwt_tool文件夹下将给我们的公钥写入publickey.pem

jwt_tool工具生成JWT后按F12写入cookie中

然后再刷新(不要点Login,这是POST方法,POST方法不会输出flag)

http://www.yidumall.com/news/46059.html

相关文章:

  • 建筑网站的功能模块有哪些设计公司网站设计
  • 网页和网站有什么区别最近国际新闻大事20条
  • 没有网站做cpa海东地区谷歌seo网络优化
  • 多语言企业网站源码天津seo顾问
  • 一般的企业网站开发价格设计好看的网站
  • 品牌网站建设怎么做网站推广宣传语
  • 查看一个网站的备案人2023今日新闻头条
  • 佛山新网站制作平台大数据分析师
  • wordpress怎么设计网站百度爱采购官方网站
  • 网络推广和seo杭州专业seo服务公司
  • 岳阳二手房网站百度软件安装
  • 网站平台构建网站做优化一开始怎么做
  • 自助建站系统免费加盟360识图
  • 南宁自助建站软件windows优化大师卸载
  • 做博客网站怎么赚钱网络营销专业是做什么的
  • 石河子网页制作招聘宁波seo推广服务电话
  • 网站设置访问密码神马网站快速排名软件
  • 山东网站营销指数基金
  • 大于二高端网站建设公司网站推广费用
  • 关于网站建设的论文提纲网站seo公司哪家好
  • 任丘网站开发建设怎么选软件开发公司排名
  • wordpress网站 app河南seo技术教程
  • 哪些公司经常做网站发布平台
  • 外贸局是做什么的工作陕西seo快速排名
  • 哪些网站是dz做的推广软件赚钱违法吗
  • 网站开发合同封面优化关键词排名推广
  • 山西网络网站建设销售公司常熟seo网站优化软件
  • 上海html5网站制作个人免费建站软件
  • 中国空间站离地球多远百度指数查询排行榜
  • 建设旅游网站的意义关键词推广优化外包