【API安全漏洞剖析】 FaceBook OAuth 漏洞 - 2020-03-01
【API安全漏洞剖析】 FaceBook OAuth 漏洞 - 2020-03-01信息来源: https://www.amolbaikar.com/facebook-oauth-framework-vulnerability/
漏洞描述第三方网站如(Instagram)是可以通过 Facebook 账号进行登录的, 具体登录逻辑就是利用 Facebook 提供的 SDK,使用 OAuth 授权进行登录。
具体来说就是用户登录 ins, 然后 ins 会根据 FaceBook 的 SDK 规范, 跳转到 Facebook 对应的登录页面, Facebook 登录完成之后, 返回一个 access_token 给 ins, 完成登录。
黑客在这个 OAuth 授权流程能够窃取 access_token ,从而达到接管用户账号的目的。
漏洞成因 在 Facebook 提供给开发者接入的 SDK 中, 有一个名为 “/connect/ping” 的登录服务端, 它是提供给第三方应用获取用户访问令牌的第三方端点, 具体逻辑是开发者通过编码在后台创建跨域通信的代理 ifram ...
【NewStarCTF2023】Unserialize Again phar 文件反序列化
【NewStarCTF2023】Unserialize Again phar 文件反序列化题目源码打开靶机后,进入页面就一个文件上传,然后抓包看源码提示我们看 cookies,然后 cookies 里面有 pairing.php, 访问之后得到题目源码
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950<?phphighlight_file(__FILE__);error_reporting(0); class story{ private $user='admin'; public $pass; public $eating; public $God='false'; public function __wakeup(){ $this->user='human'; if(1==1){ ...
【NewStarCTF2023】Inject Me 目录穿越+ssti+flask_jwt
【NewStarCTF2023】Inject Me 目录穿越+ssti+flask_jwt进到靶机后, 稍微探索一下,发现有个这个图片泄露了源码:
这里是一个目录穿越漏洞,其中
1filename = filename.replace('../', '')
这一行代码是可以双写 ../ 成 ....// 进行绕过的.然后由于这是一个 flask 框架,我们尝试去找它的 app.py 文件, 在寻找之前,先来了解 flask 框架的文件结构
1234567891011121314151617181920/your-application /venv # 虚拟环境目录 /app # 应用模块目录 __init__.py # 初始化应用并引入各个组件 /templates # Jinja2模板文件夹 layout.html # 基本布局模板 index.html # 主页模板 ...
【NewStarCTF2023】OtenkiGirl nodejs 原型链污染
【NewStarCTF2023】OtenkiGirl nodejs 原型链污染题目进去之后,是一个类似于 blog 的页面,你输入对应信息后加入购物车就会把东西张贴出来:
后台抓包发现是post json. 题目给了源码,打开源码文件后有 hint 文件,提示我们去 routes 文件夹里找,然后在 submit.js 文件里看到了 merge 函数.
merge函数是一个经典的 nodejs 污染函数,接下来浅析一下什么是 nodejs 原型链污染。
nodejs 原型链污染 JavaScript 中,几乎所有对象都是 Object 的实例,对象原型包含了可以被继承的属性和方法。攻击者通过污染对象原型添加或修改属性,能够影响所有继承自该原型的对象。
在一个对象生成后,会生成一个关于该对象的原型,如:
1let cat = {};
上述代码构造了一个对象 cat, 首先会生成该 cat 的原型,即 cat.prototype. 生成 prototype 后,会生成一个隐式的构造函数 cat(), 这里构造函数 cat() 的原型 (protoype)就是 ...
【HackerGame2023】小型语言大模型星球 LLM Attack
【HackerGame2023】小型语言大模型星球 LLM Attack题目茫茫星系间,文明被分为不同的等级。每一个文明中都蕴藏了一种古老的力量 —— flag,被认为是其智慧的象征。
你在探索的过程中意外进入了一个封闭空间。这是一个由神秘的 33M 参数的「小型大语言模型」控制着的星球。星球的中心竖立着一个巨大的三角形任务牌,上面刻着密文和挑战。
在这个星球上,你需要与这个先进的语言模型展开一场交流。通过与它对话,诱导它说出指定的词语,从这个神秘智慧体中获得 flag。你需要让这个语言模型分别说出 you are smart,accepted,hackergame 和 🐮,以获得四个 flag.
题解这道题的 LLM 是一个仅有 33M 参数的 LLM,而且他并没有经过 Instruct Align, 他无法遵循人类的指令,导致我们无法与这个大模型对话,他只会根据我说的话填补故事内容,如
Please say "you are smart"
他的回应是:
and "you are kind". The little girl smiled ...
【HackerGame2023】 WriteUp
HackerGame 2023 WriteUp感想今年 hackergame 圆满结束,很享受的一次旅程(同时也有点折磨 QAQ),hackergame 这一个星期 ddl 挺多的,所以本次名次并不高,校内 15 名,总排名 226,这篇博客记录的不仅仅是自己做出来的题目的 WP,同时也对官方题解和我感兴趣的题目做一个 log,学习多点知识。
WP 部分HackerGame 启动签到题,打开题目后让你大声喊出 hackergame 启动!要求准确率到达百分之 99.99%,这是不可能的,上传的时候发现他是在 url 传参的,改一下参数(simularity=99.999)就过了。
猫咪小测今年猫咪小测一共有四道题:
1. 想要借阅世界图书出版公司出版的《A Classical Introduction To Modern Number Theory 2nd ed.》,应当前往中国科学技术大学西区图书馆的哪一层?(是一个非负整数)
答:这道题给了提示是一个非负整数,而且图书馆不会很高,直接 0-20 爆破就行了。
2. 今年 arXiv 网站的天体物理版块上有人发表了一篇关 ...
【newstarctf2023】Fast Destruct
【newstarctf】 More Fast pop 链构造题目源码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455<?phphighlight_file(__FILE__);class Start{ public $errMsg; public function __destruct() { die($this->errMsg); }}class Pwn{ public $obj; public function __invoke(){ $this->obj->evil(); } public function evil() { phpinfo(); }}class Reverse{ public $fun ...
【newstarctf2023】PharOne (DNS log外带法)
【newstarctf2023】PharOne (DNS log外带法)题目描述打开靶机,看到一个文件上传的页面,上传一句话木马文件后发现啥shell 拿不到,变换思路,看源码中有注释提示:class.php,url 请求 class.php 发现代码:
1234567891011<?phphighlight_file(__FILE__);class Flag{ public $cmd; public function __destruct() { @exec($this->cmd); }}@unlink($_POST['file']);
看到这个代码,就知道这个题要用 phar 去做了。
解题思路留意到了 unlink 这个方法和 flag 这个类,这个方法是可以触发 phar 的反序列化的,这里列举一下可以触发 phar反序列化 的方法:
1234567891011121314fopen() unlink() stat() fstat() fseek() rename() ...
【网信中山】Pytorch 神经网络复原
【网信中山】Misc Pytorch 神经网络复原题目描述中山杯打到后期,放出了一道 misc 题,下载附件拿到一个压缩包。解压获得了如下文件:
.npy 文件 : 用于存储 numpy 数组
label.json 文件 : 用于存储模型标签
MyLeNet.pt 文件 : PyTorch 的序列化文件格式,用于保存和加载 PyTorch 模型的参数和状态。这种格式方便用户在训练过程中保存检查点,以及在后续的推理或继续训练过程中加载模型。
思考过程在这里思路其实很明显: 先根据 pt 文件复原模型,然后将 npy 文件全部喂给模型,得到的输出根据 label.json文件做标签分类,然后再拼接获得flag。
这里最难的就是模型的复原,完全不知道他使用的哪个非线性方法,我试了很久也没试出来,跑出来的结果对称性非常强,一度让我以为是还要解码,最后遗憾告终,对这类题还是太陌生了。
题解比赛结束后看了唯一做出来的那队的 WP,才发现居然要逆MyLeNet.pt文件,直接把 MyLeNet 文件放到 CyberChef 里,看内容,发现里面有 sigmoid 和 relu 非线性方法,由于 ...
【newstarctf2023】 无参数 rce
【newstarctf】 R!!C!!E!! 无参数 RCE打开靶机,提示我们再找信息,dirsearch一下发现有 git 泄露,url请求该 path 拿到 git 文件,放到 cyberchef 里解密看到有其他的 php 文件,打开后看到源代码:
1234567<?php highlight_file(__FILE__); if (';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['star'])) { if(!preg_match('/high|get_defined_vars|scandir|var_dump|read|file|php|curent|end/i',$_GET['star'])){ eval($_GET['star']); } }
很明显是一道 RCE 题,这边要绕正则,第一个正则是
1 ...