从0开始学杂项 第一期:什么是杂项

Misc学习(一) - 什么是杂项

前言

说句实话,在写这篇博客的20天前,我甚至都不知道什么是杂项。在这十几天里,我也只是对杂项进行了一个比较初步的学习,对各种工具的应用、对各种知识的掌握也只能算掌握了个皮毛,这个系列并不是个教学系列,我只是在这里记下我的笔记、我的心得、我的体会,只是期待能与大家共同进步(所以叫从0开始学杂项嘛)。

杂项是CTF的一个分支,跟CTF一样,相比于做题,它更像是一个游戏,一个解谜游戏,正如它的名字(Capture The Flag),我们在作者设置的各种谜题中一步步寻找线索,通过各种工具破除障碍,最终获得 flag,赢得游戏的胜利。

这篇文章的大部分来自于我为了科学之光冬令营20号下午的讲课所准备的大纲。

正文

一. 什么是杂项(Misc )

Misc 是英文 Miscellaneous 的前四个字母,杂项、混合体、大杂烩的意思。顾名思义,它就是各种各样无法分类在Web、Pwn、Crypto、Reserve中的题目,有时 Crypto(尤其是古典密码)也被划入其中。杂项考察类型繁多,大致分为如下:

  • 信息搜集(Recon)
  • 编码转换(Encode)
  • 数字取证(Forensic)
  • 隐写分析(Stego)

虽然Misc类型题目千奇百怪,但它对于像我这种初学者来说最容易上手(甚至有些完全不需要CTF知识,有点像科普了),考察各领域的基本知识,同时许多小寄巧对于现实生活也有一些奇奇怪怪的应用(有什么应用需要自己去体会)。

二. 学习杂项至少要有什么

首先要有个脑子,其实什么也不需要,用到的知识都可以做中学,不过要是想要游戏玩的畅快,我推荐最好你能掌握一些计算机的基础知识,比如会打 (命令行)、认识常见文件的文件格式(比如知道 jpg 是图片)以及对Ascii、十六进制、二进制等有基本的了解等等。

三. 怎样学习杂项

正如我上面所说的,杂项考察类型千变万化,做杂项题一半靠经验一半靠直觉(其实是枚举),出题者总是能给你玩点新花样,所以玩这个并没有什么万能公式,都是要靠自己去一步步分析。这时候就体现出经验的重要性了,毕竟出题者也不是凭空想象、凭空捏造出题的,他们往往也是杂项的资深玩家,你总能在新题中找到熟悉的旧味道。平时做题的积累可以帮助你更快、更准确的定位出题者可能隐藏的点,甚至可能直接找出破绽,得到题解。

同时,杂项还考验我们搜索资料和学习新知识的能力,由于杂项有时(往往)考察的知识并非为我们所掌握(如[BUUCTF]荷兰宽带数据泄露考察路由器文件),我们必须要善于利用搜索工具,搜集并学习我们需要用到的知识,在学习中做题,在做题中学习。

另外,杂项还往往喜欢同其他领域联合考察,比如 [BUUCTF]sqltest涉及SQL注入、[BUUCTF]二维码考察PS技术去拼接撕碎的二维码、[BUUCTF HBNIS2018]低个头考察语文阅读理解(?),只能说这年头身上没点技能还真不敢玩这游戏了。

当然了,“工欲善其事,必先利其器”,做杂项题,一堆杂七杂八的工具是必不可少的(首先你需要一个十六进制编辑器),其中具体内容我会在之后的章节分别展开讲述。


本期就先到这里,主要讲了讲自己的一些心里话,用粗糙的语言勉强讲了讲什么是杂项和怎么学杂项比较合适(只是我觉得),我们下期再见。

参考资料

[1] CTF WIKI : http://ctf-wiki.org/misc/introduction/

以上内容仅供参考,水平不高,大佬见笑。
下一期:隐写分析(1):直接附加


上一篇文章:[代码Show]第一期- Calendar ——CSDN
下一篇文章:从0开始学Java 第一期:开发前的准备 ——CSDN
再下一篇文章:从0开始学杂项 第二期:隐写分析(1) 直接附加 ——CSDN

作者:CHTXRT

出处:http://www.cnblogs.com/chtxrt/

本文使用「CC BY-ND 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。

本文转载于网络 如有侵权请联系删除

相关文章

  • LC130—被围绕的区域

    130.被围绕的区域难度中等488给你一个mxn的矩阵board,由若干字符'X'和'O',找到所有被'X'围绕的区域,并将这些区域里所有的'O'用'X'填充。示例1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GvKLMEwp-1615827270980)(https://assets.leetcode.com/uploads/2021/02/19/xogrid.jpg)]输入:board=[["X","X","X","X"],["X","O","O","X"],["X","X","O","X"],["X","O","X","X"]] 输

  • 用 GPU 运行代码,还有这种操作?!

    计算机组成原理里面提到计算机必须具备五大基本组成部件:运算器、控制器、存储器、输入设备和输出设备,其中运算器和控制器必定存在于CPU中。然而,如果CPU中运算器数量特别少,我们的程序却需要进行大量的巨型矩阵的运算,使用CPU运行时间会特别长。我们先来简单分析一下为什么CPU运行时间会特别长,因为运算量非常大,同时CPU只能一次运算一条数据,虽然现在CPU普遍是多核,但是处理大量的数据还是显得力不从心。这个时候我们就不能使用CPU了,而应该使用GPU,我们首先来看一下GPU究竟是个什么东西。GPU图形处理器(英语:GraphicsProcessingUnit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。考虑到GPU主要用来处理图像,而图像在计算机中的存储是一个二维数组或者三维数组,因此,图像的各种变换可以看作是对这个数组的各种变换。为了可以迅速做出变换,GPU的构造就比CPU要复杂得多,CPU当中只有几个大核,而GPU中确有几千个小核,只不过小核频率会比较低(现在普遍都是1GHz

  • 使用GDC在线查看TCGA数据

    GDC是GenomicDataCommons的缩写,是由美国国家癌症研究所NCI建立的一套癌症数据共享系统,整合包括TCGA在内的多个癌症数据库中的信息,提供了癌症数据的统一存储,管理,展示,将数据与世界范围内的癌症基因组学研究者共享,网址如下https://portal.gdc.cancer.gov/数据来源于以下多个大型癌症研究组织和项目FoundationMedicine(FM)ClinicalProteomicTumorAnalysisConsortium(CPTAC)THeCancerGenomeAtlas(TCGA)TherapeuticallyApplicableResearchtoGenerateEffectiveTreatments(TARGET)HumanCancerModelInitiative(HCMI) 以上只是部分来源信息,而且还在陆续更新,以后也会有新的来源数据整合到GDC中。当然,到目前为止,该数据库中最大的数据依然是来自TCGA的数据。为了方便管理如果大量的数据,建立了一个统一的数据模型,如下所示最高层级为program,对应不同的数据来源,如TCG

  • console.log的炫酷用法

    背景今天使用chrome浏览器打开百度首页(https://www.baidu.com),打开开发者工具,windows下的快捷键是F12,MAC上的快捷键通常是option+cmd+i,接着点击consoletab,看到了下面一幕。什么,你发现了一大堆报错,那是因为笔者在chrome浏览器上安装了adBlock扩展(advertisementblock,即“广告阻塞”)导致的,请读者忽略这个问题哈。除了一堆报错之外,我们应该也发现了百度的招聘广告,竟然可以产生高亮的红色字体,有点炫酷不是吗。继续探索,按照以下步骤进行:找到对应的代码行发现原来console.log可以这么玩。深度探索经过一番google之后,我们来到googlechrome开发者工具的官网地址,文档链接(https://developers.google.com/web/tools/chrome-devtools/console/console-write),内容引用如下:使用CSS设置控制台输出的样式利用CSS格式说明符,您可以自定义控制台中的显示。使用说明符启动字符串,并设置为您希望的样式,作为第二个参数。尝试使

  • iOS 网络图片转为UIImage 和微信分享时缩略图片的压缩

    在写微信分享项目时,发现微信设置缩略图:image我们的图片是从阿里云那里获取的网络图片,需要把网络图片转化为UIImage,下面就是方法:+(UIImage*)getImageFromURL:(NSString*)fileURL { UIImage*result; NSData*data=[NSDatadataWithContentsOfURL:[NSURLURLWithString:fileURL]]; result=[UIImageimageWithData:data]; returnresult; }复制image.gif微信设置的缩略图要小于32KB,否则无法调起微信,而微信也没有返回错误信息,只是[WXApisendReq:req]=NO,所以我们要压缩小于32Kb压缩方法为:#pragmamark-压缩图片 +(UIImage*)compressImage:(UIImage*)imagetoByte:(NSUInteger)maxLength{ //Compressbyquality CGFloatcompression=1; NSData*data=UIImag

  • Roslyn 如何在 Target 引用 xaml 防止文件没有编译

    在使用新的项目格式,可以使用Target添加项目,但是有一些项目需要在合适的时候添加,如果添加早了,那么会让用户看到这些文件,如果添加的时间是在引用编译之后,那么文件将无法进行编译。本文是更多请看手把手教你写Roslyn修改编译的一个文章,在开始本文之前,假设大家已经了解Roslyn相关。本文主要是我自己探索VisualStudio编译的过程,所以有一点乱,主要的过程就是遇到了将xaml写在了Traget里,编译的时候因为找不到xaml编译,所以无法编译通过。于是我就不断在早一个Target在这个Target之前添加编译xaml就可以让VisualStudio编译通过先来说结论通过BeforeTargets="GenerateBindingRedirects"里添加xaml文件就可以让VisualStudio编译的时候编译添加xaml编译。也就是通过下面代码添加的MainPage.xaml可以被编译<TargetName="MoqakermirLaqouLurter"BeforeTargets="GenerateBindingRe

  • 腾讯AI翻译首次亮相博鳌论坛,只证明了一件事……

    不管是技术层面,还是训练数据,当前的AI翻译距离取代人类还有好一段距离。“一带一路”=“一条腰带和一条路”?4月9日下午,“腾讯同传”在博鳌论坛现场上闹了一个大乌龙。这是博鳌论坛首次采用AI同声传译技术,作为头一份的“腾讯同传”竟然还出现这种离谱的翻译错误。另外,从网上一些上传的现场翻译图片来看,一些错误简直令人不忍直视:按照官方所称,上面的错误简称“大面积单词无意义重复、大小写及字符混乱”。首次亮相结果闹乌龙说好的取代人类呢? 在博鳌论坛现场,基于自研的NMT(神经网络机器翻译)、语音识别等技术,“腾讯同传”会实时识别、翻译各国嘉宾的演讲内容,并同时以中英双语的字幕形式进行投屏展示。另外,观众还可利用微信小程序对嘉宾演讲的双语同传内容进行回看、收听和记录。从提供的服务内容来看,腾讯的同声传译听起来还是不错的。然而,从上面的错误来看,体验有些糟糕呢。对此,也有网友也进行了调侃:对于此次乌龙,腾讯官方也没有试图遮掩,并针对图片中“大面积单词无意义重复、大小写及字符混乱”的错误给出了解释。譬如中英双语切换频率的问题,官方解释:当声源在两种语言之间不断转换时,后台中、英文识别引擎就会同时开始

  • 安装docker-ce

    CentOS/RedHat安装下载yum源curl-o/etc/yum.repos.d/docker-ce.repohttps://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo复制安装docker-ce安装最新版yuminstalldocker-ce复制安装指定版本yumlistdocker-ce--showduplicates|sort-r yuminstalldocker-ce-18.03.1.ce复制添加镜像加速地址mkdir/etc/docker/ vim/etc/docker/daemon.json { "registry-mirrors":["https://XXXXXXX.mirror.aliyuncs.com"],#登录aliyun获取加速地址,需认证为开发者 "graph":"/data/docker" #修改镜像存储位置 }复制启动docker-cesystemctldaemon-reload sy

  • iNeuOS工业互联网操作系统下发命令给iNeuLink硬件网关,进一步修改设备参数和控制设备

    目      录 1.     应用场景...1 2.     DCS数据采集...2 3.     硬件网关的配置...2 4.     平台端配置...3 1.  应用场景   iNeuLink数据采集参见:iNeuLink硬件网关与iNeuOS工业互联网操作系统互联互通应用案例。   用户现场应用场景需求,iNeuOS工业互联网平台通过OPCUA采集现场DCS系统的数据;现场分布部署的设备通过iNeuLink硬件网关采集,再通过4G网络传输MQTT协议把数据上传的平台上。DCS里的关键数据要通过iNeuLink网关下发给分布部署的设备。应用场景示意,如下图: 2.  DCS数据采集   参见视频:DCS系统通过OPC与iNeuOS工业互联网系统实现数据对接。 3. 

  • 获取当前服务的IP和端口号

    packagecom.movitech.product.datahub.util; importorg.slf4j.Logger; importorg.slf4j.LoggerFactory; importjavax.management.MBeanServer; importjavax.management.MalformedObjectNameException; importjavax.management.ObjectName; importjavax.management.Query; importjava.lang.management.ManagementFactory; importjava.net.InetAddress; importjava.util.Set; /** *@authorJay *@date2019/06/10 */ publicclassCommonUtils{ privatestaticfinalLoggerlogger=LoggerFactory.getLogger(CommonUtils.class); publicstaticvo

  • 判断系统,是否是移动端

    1. 判断是ios还是android letu=navigator.userAgent,letisAndroid=u.indexOf('Android')>-1||u.indexOf('Linux')>-1;//gletisIOS=!!u.match(/\(i[^;]+;(U;)?CPU.+MacOSX/);//ios终端if(isAndroid){//这个是安卓操作系统}if(isIOS){  //这个是ios操作系统}   2. 判断是PC端还是M端 letuserAgent=navigator.userAgent;letAgents=["Android","iPhone","SymbianOS","WindowsPhone","iPad","iPod"];letflag=true;for(letiinAgents){if(userAgent.indexOf(Agents[i])>-1){flag=false;break;}}if(flag){  //这个是PC端}else{  //这个是M端}

  • Codeforces Round #597 (Div. 2)

    这是我退役前最后一场div2了啊。。。 所以打算写个题解 以前那么多cf,,现在就剩这么一两场了,可惜自己瞎做连个黄名都没上过。。 A: #include<bits/stdc++.h> usingnamespacestd; typedeflonglongll; intt,a,b; intmain(){ ios::sync_with_stdio(false); cin>>t; while(t--){ cin>>a>>b; if(__gcd(a,b)==1){ cout<<"Finite"<<endl; }else{ cout<<"Infinite"<<endl; } } } 复制 B: 我tm,看到样例读的字符串长度都是3以为给的是个长度为3的循环节。然后wa了,有点迷 #include<bits/stdc++.h> usingnamespacestd; typedeflonglongll; intt,n,a,b,c; strings; charans[555]; intmain(

  • Flask之前后端分离restful api学习笔记(二)—— 自定义错误返回、AOP思想解决全局错误返回

    具体源码:https://github.com/LMFrank/Flask_api 自定义错误返回 Flask_api/app/libs/error.py fromflaskimportrequest,json fromwerkzeug.exceptionsimportHTTPException classAPIException(HTTPException): code=500 msg='Sorry,wemakeamistake!' error_code=999 def__init__(self,msg=None,code=None,error_code=None,headers=None): ifcode: self.code=code iferror_code: self.error_code=error_code ifmsg: self.msg=msg super(APIException,self).__init__(msg,None) defget_body(self,environ=None): body=dict( msg=self.msg, error_cod

  • ai自动生成文章,帮你打开写作思路

    小猫智能写作,使用大数据和人工智能技术,提供作者写作方向的准确洞察,输入关键词自动生成文章并基于作者的自收集内容和订阅的图书馆提供智能写作服务。 作为一种智能写作工具,“小猫智能写作”可以帮助你打开你的写作思路,丰富张文的内容,提高张文的点击率,真正节省你70%的写作时间。 对于运营商来说,高质量和高数量的专业文案意味着产品将吸引更多的用户,产品的营销机会将更大。拥抱作者独创的“小猫智能写作”理念,通过专业的内容库和智能辅助技术,帮助操作人员提高内容制作的效率。 对于自媒体人来说,满足于自己强大的个性和符合用户口味意味着粉丝们积累的经济价值越多,他们的变现能力就越强。 “小猫智能写作”支持个性化内容创作。通过对专业内容库的个性化收集和订阅,极大地提高了自媒体人创建个性化内容的效率。 对于网站编辑来说,根据网站的位置快速收集和筛选内容是一项基本技能,以确保内容的及时性并被搜索引擎所青睐。 在大数据和人工智能技术的支持下,创意写作可以快速从各种数据源获取数据,有效地识别内容的相关性,并高效地产生大量及时且可搜索的内容。 如果您有互联网问题,也可以咨询我,谢谢!如果你也想一起学习人工智能,

  • B站视频爬虫

    #fromyou_getimportcommon#common.any_download(url='https://www.bilibili.com/video/av25805649/?spm_id_from=333.788.videocard.6',stream_id='mp4',info_only=False,output_dir=r'C:\Users\mgxx\Desktop',merge=True)importrequestsimportreimportosheaders={'Referer':'https://www.bilibili.com/','User-Agent':'Mozilla/5.0(Linux;Android6.0;Nexus5Build/MRA58N)AppleWebKit/537.36(KHTML,likeGecko)Chrome/74.0.3729.131MobileSafari/537.36'}url='https://space.bilibili.com/ajax/member/getSubmitVideos?mid=77180504&pag

  • UVALive 3953 Strange Billboard (状态压缩+枚举)

    StrangeBillboard 题目链接: http://acm.hust.edu.cn/vjudge/contest/129733#problem/A Description Themarketingandpublic-relationsdepartmentoftheCzechTechnicalUniversityhasdesignedanewreconfigurablemechanicalFlip-FlopBill-Board(FFBB).ThebillboardisaregulartwodimensionalgridofR×Csquaretilesmadeofplastic.Eachplastictileiswhiteononesideandblackontheother.Theideaofthebillboardisthatyoucancreatevariouspicturesbyflippingindividualtilesover.Suchbillboardswillhangaboveallentrancestotheuniversityandwillbeusedtod

  • xss-跨站脚本攻击-后台传给前端的html标签安全显示

    作用后台拼接的html字符串传到前端,默认是不安全的,需要告诉前端这个字符串是安全的,可以正常显示html标签。知识点1、定义恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的特殊目的。2、工作流程1)恶意用户,在一些公共区域(例如,建议提交表单或消息公共板的输入表单)输入一些文本,这些文本被其它用户看到,但这些文本不仅仅是他们要输入的文本,同时还包括一些可以在客户端执行的脚本。如:123<script>   获取session,cookie,伪造成用户。。。。</script>2)恶意提交这个表单3)其他用户看到这个包括恶意脚本的页面并执行,获取用户的cookie等敏感信息。三种解决方法​后台拼接字符串传到前端不显示问题​1传到前端是个变量1{{变量 |safe}}2需要simpletag处理的数据不能加safe123{%autoescapeoff%}    {%模板引擎函数函数参数%}{%en

  • Burnside引理和Polya定理

    群的定义: 设\(G\)是一个集合,\(∗\)是\(G\)上的二元运算,若\((G,∗)\)满足下面的条件:则称\((G,∗)\)为一个群。 ①封闭性:\(∀a,b∈G,a∗b∈G\) ②结合律:\(∀a,b,c∈G,(a∗b)∗c=a∗(b∗c)\) ③单位元:\(∀a∈G,∃e∈G,a∗e=e*a=a\) ④逆元:\(∀a∈G,∃a′∈G,a∗a′=e\) 若群中的元满足交换律,则该群被称作为阿贝尔群。 置换的定义: 设\(X\)是一个有限集,\(π\)是\(X\)到\(X\)的排列的一个变换且为双射,则称\(π\)是\(X\)上的一个置换。 可将一个\(\{1,2,3,\cdots,n\}\)的置换\(π\)记为: \[\pi=\begin{pmatrix} 1&2&\cdots&n\\ a_1&a_2&\cdots&a_n\\ \end{pmatrix} \]注意:①\(π\)是集合的运算;②置换不是针对下标,而是针对集合中的元素。也就是说,\(π\)的第一行不一定是\(\{1,2,3,\cdots,n\}\);③同一置换用这样的

  • js时间格式化

    需要传入两个参数 第一个是需要的时间 第三个是想要的格式例如:yyyy-MM-dd hh:mm:ss getDateTimeFormat=(datetime,format)=>{ letdate=newDate(datetime); varo={ "M+":date.getMonth()+1, "d+":date.getDate(), "h+":date.getHours(), "m+":date.getMinutes(), "s+":date.getSeconds(), "q+":Math.floor((date.getMonth()+3)/3), "S":date.getMilliseconds() } if(/(y+)/.test(format)){ format=format.replace(RegExp.$1,(date.getFullYear()+"").substr(4-RegExp.$1.length)); } for(letkino){ if(newRegExp("("+k+")").test(format)){ format=

  • Windows编程系列:如何监测某个进程是否退出?

    使用WaitForSingleObject函数,可以判断进程是否退出。 WaitForSingleObject函数的作用是:等待直到指定的对象处于信号状态(通知状态)或到达指定的等待时间(超时时间)。 函数声明如下: 1DWORDWaitForSingleObject( 2[in]HANDLEhHandle, 3[in]DWORDdwMilliseconds 4);复制 参数说明: hHandle:需要等待的对象 dwMilliseconds:超时时间(毫秒),如果设置为INFINITE,则会一直等待下去,直到对象被通知。   WaitForSingleObject支持以下对象: Changenotification Consoleinput Event Memoryresourcenotification Mutex Process Semaphore Thread Waitabletimer 这里只是简单介绍一下这个函数,如果需要了解更详细的说明,可以参考:https://docs.microsoft.com/zh-cn/windows/win32/api/syn

  • elasticsearch7.x-指定分析器-分析器优先级

    指定分析器 Elasticsearch提供了多种方式去指定内置或者自定义分析器 通过文本字段、索引、查询 在索引文档或者搜索文档时 索引时分析器优先级 Elasticsearch依次检查下面参数来决定使用哪个索引分析器 mapping中对文本字段是否配置了分析器 setting中是否配置了analysis.analyzer.default(索引全局默认分析器) 如果1,2都没有配置,standard分析器将被使用 为一个字段指定分析器 PUTmy-index-000001 { "mappings":{ "properties":{ "title":{ "type":"text", "analyzer":"whitespace" } } } }复制 为一个索引指定默认分析器 PUTmy-index-000001 { "settings":{ "analysis":{ "analyzer":{ "default":{ "type":"simple" } } } } }复制 搜索时分析器优先级 Elasticsearch依次检查下面参数来决定使用哪个搜索分

相关推荐

推荐阅读