CTF的一些简介

网络有:表层网络(触手可及)、深网(需要一定的手段)、暗网(需要专门的工具和技术)三种

白帽子:专门保护信息不被泄露、防御的工程师

黑帽子:专门盗取信息、爆破数据库的人

CTF赛制与题型:Capture The Flag,直译为“夺旗赛”。

CTF题目类型:web安全、逆向工程(Rverse)、漏洞挖掘与漏洞利用(PWN、EXPLOIT)、密码学(Crypto)、调查取证(Misc,又叫杂项)、移动安全(Mobile)

web安全:SQL注入、xss、文件上传、包含漏洞、xxe、ssrf、命令执行、代码审计等。

逆向工程:没有源代码的软件,需要使用工具进行反编译

PWN:二进制破解

刷题平台:

WP网址:

杂项题解题思路:

杂项题目主要可以分为四个方向:文件操作与隐写、图片隐写、压缩文件处理、流量取证技术

1、文件操作与隐写

(1) 文件类型识别:

file命令:适用于不知道后缀名,无法打开文件的情景,当文件没有后缀名或有后缀名而无法正常打开文件时根据识别出的文件类型,通过修改文件后缀名来打开文件。

file + 文件名                /*kali系统下使用*/

winhex:适用于windows下通过文件头信息判断文件类型,通过winhex程序查看文件头类型,根据文件头类型判断文件类型。

(2) 使用winhex程序查看文件类型

winhex下载地址:123云盘

https://423down.lanzouo.com/b0f1bltdg

https://pan.baidu.com/s/1Ys6p2u2aHA-BTmuezW0qlw

(3) 文件头残缺/错误:适用于文件头部残缺或者文件头部字段错误无法打开正常文件。

文件无法正常打开的情况有两种,一种是文件头部残缺,另一种是文件头部字段错误。正对文件头部残缺的情况,使用winhex程序添加相应的文件头,针对头部字段错误,可以找一个相同文件进行替换。

出现这种情况时,在kali虚拟机下使用file命令,无法显示数据。

对文件进行修复:使用winhex程序打开文件,对文件头进行修改。

对图片中标注的位置进行修改,可以改变文件头部参数。

2、文件分离操作

(1) Binwalk工具:

Binwalk是Linux下用来分析和分离文件的工具,可以快速分辨文件是否由多个文件合并而成,并将文件进行分离。如果成功分离会在目标文件的目录。同目录下生成一个形如:文件名_extracted的文件目录,目录中有分离后的文件。用法如下:

分析文件:binwalk filename
分离文件:binwalk -e  filename

 将文件分离之后,会在同级目录下生成一个文件夹,用来存放分离后的文件。binwalk工具在遇到压缩包时,会自动解压。

(2) foremost:

如果binwalk无法正确分离文件,可以使用foremost,将目标文件复制到kali中,成功执行后,会在目标文件的文件目录下生成我们设置的目录,目录中会按文件类型分离文件。foremost命令的用法:

foremost 文件名 -o 输出文件名

(3) dd命令(相当难用,操作复杂,适用于解决难题):

当文件自动分离出错或者因为其他原因无法自动分离时,可以使用dd实现文件手动分离。

格式:

dd if=源文件 of=目标文件名 bs=1 skip=开始分离的字节数
参数说明:
if=file        /*输入文件名,缺省为标准输入*/
of=file        /*输出文件名,缺省为标准输出*/
bs=bytes       /*同时设置读写块的大小为bytes,可以代替ibs和obs*/
skip=blocks    /*从输入文件开头跳过blocks个块后再开始复制*/

如下图命令dd if=1.txt of=2.txt bs=5 count=1,输入文件为1.txt,输出文件为2.txt,将bs=5 count=1,将1.txt的前5位取出来形成2.txt文件。

下图命令dd if=1.txt of=3.txt bs=5 count=3 skip=1,输入文件为1.txt,输出文件为3.txt,一个块5个字符,共计3个块,skip=1跳过第一个块。输出文件为后3个块的内容。

使用binwalk查看文件的组成部分,使用dd命令对文件进行分离,从图中可以看到0-22895是jpeg格式,22896-23046是zip格式,则dd命令格式为:dd if=输入文件 of=输出文件 bs=1 count=23046 skip=22859,即每一块大小为1,跳过前22895块。(一共取23046块,所以count=23046)

使用winhex程序实现文件手动分离,将文件拖入winhex工具,找到要分离的部分,点击复制即可。适用于windows下,利用winhex工具对程序进行手动分离。

步骤如下:选择要分离的部分,选中,右键选择>保存选择,保存成指定格式即可。这样就能将文件中的flag提取出来。

3、文件合并操作

使用md5码检测文件合并的准确性。

(1) Linux下的文件合并:

使用场景:Linux下,通常对文件名相似的文件进行批量合并。格式如下:

cat 文件1 文件2>输出文件

完整性检测:Linux下计算文件md5:

md5sum 文件名

 (2) Windows下的文件合并:

使用场景:windows下,通常要对文件名相似的文件进行批量合并,格式为:

copy /B 合并的文件(文件1+文件2+...+文件n) 输出的文件命令

完整性检测:windows下计算md5,格式为:

certutil -hashfile 文件名 md5

4、文件内容隐写

文件内容隐写,就是直接将Key以十六进制形式写入文件,一般是放在文件的开头或结尾,分析时,重点观察文件的开头和结尾部分。如果在文件中间部分,通常搜索关键字KEY或flag来查找隐藏内容。用于Windows下,搜索隐写的文件内容。

(1) Winhex程序/010Editor

将要识别的文件使用Winhex工具进行打开,查找具有关键字或与内容不和谐的部分。

 (2) Notepad++工具

使用Notepad++打开文件查看是否具有关键字,安装HEX-Editor后,Notepad++可以实现Winhex

的功能。

5、图片隐写

常见的图片隐写:细微的颜色差别、GIF图多帧隐藏(图片通道隐藏、不同帧图信息隐藏、不同帧对比隐写)、Exif信息隐藏、图片修复(图片头修复、图片尾修复、CRC校验修复、长宽高修复)、最低有效位LSB隐写、图片加密(Stegdetect、Outguess、Jphide、F5)

(1) firework

使用Winhex打开文件时,会看到文件头部包含firework 的标识,通过firework可以找到隐藏图片。适用于查看隐写的图片文件。

(2) Exif

Exif按照jpeg的规格在jpeg中插入一些图像/数字相机的信息数据以及缩略图像,可以通过与jpeg兼容的互联网浏览器/图片浏览器/图像处理等一些软件查看Exif格式的图像文件,右键属性,查看文件的详细信息,查看flag信息。

CTF学习笔记(杂项)相关推荐

  1. 合天每周CTF学习笔记 — 神奇的磁带

    这是真小白的第一次学习,做个笔记记录一下思路和辅助知识. 思路 整体思路是借助提供的提示和寻找隐藏的提示. 1.查看页面源码 根据实验指导书说明,首先访问攻击的网页,并查看源码. 2.查看源码中的提示 ...

  2. 学习笔记-TP5框架学习笔记(杂项)

    3. 数据库 相信跟完那几个SQLi漏洞的代码分析,就已经对TP种数据库操作有些了解了,故略. 4. 模板 4.1 变量输出 // index.php 控制器 use think\Controller ...

  3. 【算法学习笔记/杂项】提交答案型题目

    title : 提交答案型题目 date : 2022-4-28 tags : ACM,杂项 author : LINNO 提交答案型题目 提交答案型题目相较于传统题目来的特点是,每个测试点的分都可以 ...

  4. 我的ctf学习笔记 misc(二)

    1.easypdf 给了一个pdf文件,图片将flag隐藏了 2.损坏的图片 给了一个不能打开的png,首先尝试修复,用winhex打开,发现首尾格式是错误的,整个顺序需要颠倒过来,在储存会发现图片变 ...

  5. CTF学习笔记一——RSA加密

    RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,"由已知加密密钥推导出解密密钥在计算上是不可行的"密码体制. 在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息, ...

  6. CTF学习笔记——SQL注入

    SQL注入 sql注入的分类 1)可回显的注入 可以联合查询的注入 报错注入 通过注入进行DNS请求,从而达到可回显的目的 2)不可回显的注入 bool盲注 时间盲注 3)二次注入 通常作为一种业务逻 ...

  7. CTF学习笔记——IncludePing Ping Ping

    一.[ACTF2020 新生赛]Include 1.题目 2.解题步骤 点进去看了一下 根据题目猜测,应该是和php的文件包含漏洞有关-尝试了一下显示phpinfo,意料之中的失败了,看wp才了解到, ...

  8. Python学习笔记——杂项

    属性 def __init__(self, name_value, money=0, *skills):self.name = name_value # 用处相当于调用self.name(name_v ...

  9. matlab学习笔记杂项一

    1.你有三种方法可以得到MATLAB的帮助.最好的方法是使用帮助空间窗口(helpbrowser).你可以单击MATLAB桌面工具栏上的图标,也可以在命令窗口(TheCommand Windows)中 ...

  10. CTF学习笔记——Easy Calc

    一.[RoarCTF 2019]Easy Calc 1.题目 2.解题步骤 发现框框-应该是注入题-源码中提示有个waf,继续看源码,发现有个calc.php,进去看看 初步理解应该是用num传参,然 ...

最新文章

  1. 【FFmpeg】自定义回调函数处理AVIOContext中的数据
  2. POJ3080方法很多(暴力,KMP,后缀数组,DP)
  3. Apache+Tomcat配置方法
  4. Managed Metadata Service介绍系列 之三
  5. 对C++中new的认识
  6. 二叉树,建树,前序,中序,后序,递归 非递归
  7. Linux上搭建伪集群 Hadoop3.1
  8. 【渝粤教育】国家开放大学2018年秋季 0688-22T老年精神障碍护理 参考试题
  9. esrgan_ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks【阅读笔记】
  10. 查看so库中是否有某个定义_论Linux ELF中动态库符号重定义利用 属性/Linker 做隐藏的手法...
  11. frame中src怎么设置成一个变量_在 Figma 中如何选择 group(组)或 frame(画框)?...
  12. 可以伸缩的查询面板 (searchBar)
  13. 电商设计提升水平,需要优秀的模板素材进行临摹练习!
  14. SQL 语句 - Select(2): 指定表中的字段
  15. 《规划力:如何清晰预见成功轨迹》PDF文字版电子书下载
  16. SURF特征提取(使用matlab自带函数)
  17. 用matlab算特征值,用Matlab用计算特征值和特征向量
  18. 语句摘抄——第28周
  19. HTML荧光文字动态效果,利用HTML5实现文字放射发光动画特效
  20. java response返回json_Response返回JSON数据到前台页面

热门文章

  1. Web常见前端面试题及答案
  2. 虚拟局域网(VLAN)中端口tagged和untagged在多种情况下的作用
  3. 搭配上一个blog文件名保的TXT实现文件名批量改名
  4. mysql创建视图语句_查询视图的sql语句(mysql创建视图sql语句)
  5. mysql服务启动失败
  6. 网站运营活动策划方案模板
  7. 换IP软件用户如何选择?
  8. KL散度、JS散度以及交叉熵对比
  9. SDL游戏开发之七-虚拟摇杆
  10. Cocos Creator 详解虚拟摇杆