sky's blog

sky's blog

一叶飘零 @ whitzard / r3kapig

2019 Hgame Week4 Crypto&Sign_in_SemiHard
前言为了防止整天沉迷switch智力降低,于是刷了一道有意思的Crypto题,其中涉及大概2个考点:Hash Length Extension Attacks & CBC Byte Flipping Attack,虽然利用有些麻烦,但是锻炼脑力,从CTF开始~ 程序分析先看主程序代码123456789101112131415161718192021222324252627282930313233if __name__ == '__main__': unprintable = b"" for i in range(256): if chr(i) not i...
2019 Hgame Web Week4 Writeup
happyPython信息搜集发现是flask,随手测试一下1http://118.25.18.223:3001/{{1+1}} 发现可能存在SSTI,打了几发payload,发现都是500,想到测试一下过滤1http://118.25.18.223:3001/%7B%7B'aa'.upper()%7D%7D 发现将()替换成了空 SECRET_KEY`获取那么执行命令应该变得非常困难,但是发现网站有登录,注册功能随手解了一下session猜测可能要伪造user_id=1那么不能执行命令,我们可以进行信息读取,获得SECRET_...
2019 Hgame Web&Crypto Week3 Writeup
Web神奇的MD5发现文件泄露1http://118.25.89.91:8080/question/.login.php.swp 得到源码123456789101112131415161718192021222324<?phpsession_start();error_reporting(0); if (@$_POST['username'] and @$_POST['password'] and @$_POST['code']) { $username = (string)$_POST['username']; $password...
2019 Hgame Web Week2 Writeup
easy_php发现信息1http://118.24.25.25:9999/easyphp/robots.txt 得到1img/index.php 访问得到12345678<?php error_reporting(0); $img = $_GET['img']; if(!isset($img)) $img = '1'; $img = str_replace('../', '', $img); include_once($img.".php"); highlight_file(__FILE__); 发现可以文件读取,用..././绕...
2019 Hgame Web Week1
谁吃了我的flag按照题目描述以及题目信息容易想到是.index.html.swp下载后得到flag1hgame{3eek_diScl0Sure_fRom+wEbsit@} 换头大作战按照要求改http header即可得到flag1hgame{hTTp_HeaDeR_iS_Ez} very easy web拿到源码1234567891011121314<?phperror_reporting(0);include("flag.php");if(strpos("vidar",$_GET['id'])!==FALSE) die("<p...
2019 安恒杯 1月月赛 Writeup
1文章首发于安全客 https://www.anquanke.com/post/id/170341 Webbabygo拿到题目12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061<?php @error_reporting(1); include 'flag.php';class baby { protected $skyobj; public $aaa; public ...
JavaScript侧信道时间测量
1文章首发于安全客 https://www.anquanke.com/post/id/170268 前言最近因为需求,需要测量JavaScript单个函数的执行时间,但由于精度问题,遇到了各种各样的问题,在此做简单记录。 JavaScript高精度时间函数首先得明确,JavaScript单个函数执行时间应该是微秒级的,所以必须需要高精度。那么第一反应自然是查找是否有相关函数,以往的时间函数new Date().getTime()肯定是不够了,因为其精度为毫秒级,测量函数执行时间,得到的结果必然为0。这里我们查阅手册,将目光定位到performance.now()我们不妨做个测试12345...
Cross-Browser-Tracking-Summary-Part-4
1文章首发于先知 https://xz.aliyun.com/t/3724 前言上一篇文章主要讲解了论文中具有代表性的模块的代码实现,这一篇文章主要讲论文的整体架构和处理流程,包括数据生成,数据收集,数据处理等。 整体架构1.后端给前端下发渲染任务2.前端进行渲染,并且将部分结果进行hash后发送给后端3.渲染任务同时搜集浏览器信息,设备信息,一并发送给后端4.后端接收到数据进行处理5.生成浏览器指纹与设备指纹6.将指纹存储到数据库,并将指纹打印到前端 模块整合/数据生成作者使用loader.js进行模块整合,测试项目大概如下1234567891011121314151617this.t...
Cross-Browser-Tracking-Summary-Part-3
1文章首发于先知 https://xz.aliyun.com/t/3723 渲染部分实现多数代码均利用webgl进行渲染,更重要的是模型和参数的选取,已经在前一篇文章简单介绍。对渲染代码感兴趣的可以自行学习图形学。这里我们主要介绍数据的收集和利用。 数据收集这里对图像的渲染结果基本利用下述方法进行结果获取1234567891011121314151617181920212223242526this.getData = function(gl, id) { if (!this.finalized) { throw "Still generating ID's";...
Cross Browser Tracking Summary Part-2
1文章首发于先知 https://xz.aliyun.com/t/3722 前言本篇文章主要讲解模型和参数选择部分知识,下一篇文章将讲述相关代码实现。 Task(a)-纹理简单来说即测试片段着色器中的常规纹理特征。具体来说,即将经典的Suzanne模型在随机生成纹理的画布上呈现。纹理大小为256×256的正方形,通过随机选择每个像素的颜色来创建,即我们在一个像素的三个基色(红色,绿色和蓝色)之间产生0~255的三个随机值,将三个基色混合在一起,并将其用作像素的颜色。 之所以选择这个随机生成的纹理,是因为这个纹理比常规纹理具有更多的指纹特征。原因如下,当片段着色器将纹理映射到模型时,片段着...
avatar
一叶飘零
苟有恒,何必三更眠五更起。