组小可爱一起研究CTF,时不时更新CTF教程

大学mtf一枚,希望找到小可爱一起打ctf,交流信息安全,自己是web方向的说,有交流的问题或者其他可以在下面回或者加QQ:1215437423
已经是大佬的猫咪比赛的时候可以带上猫的说,嗷~欢迎黑客少女


5 Likes

这个是猫在学校里面给学弟学妹训练营讲解时使用的关于sql注入的ppt的说
链接:https://pan.baidu.com/s/1BcwpVIEfpD_NUIZDov2wNg
提取码:apcu
–来自百度网盘超级会员V3的分享

研究ctf的话需要配合题目进行练习,一般是边练边学,然后的话几个比较推荐的网站是:
攻防世界: adworld.xctf.org.cn
特点:免费,题目具有难度区别,web,misc,逆向,pwn,crypto各个方向都有

ctfshow: ctf.show
特点:适合web入门,针对web各个方向练习,比如sql、文件包含、代码执行都有专门的题目,缺点是该靶场部分题目收费

buuctf: BUUCTF在线评测 (buuoj.cn)
特点:收录各大比赛的赛题,适合综合练习,各个方向都有


CTF(Capture The Flag)是一种网络安全竞赛,旨在测试参赛者在网络安全方面的技能。该比赛通常涵盖各种安全领域,包括密码学、漏洞利用、Web安全、逆向工程、数字取证等。参赛者需要通过解决一系列的安全问题来获取旗帜(Flag),并提交Flag以获得分数。

CTF竞赛可分为以下几个方向:

  1. PWN:PWN是CTF比赛中最常见的方向之一,主要涉及漏洞利用和二进制安全方面的知识。参赛者需要针对给定的二进制程序进行漏洞挖掘和利用,从而获取Flag。
  2. Web:Web安全是CTF比赛中另一个重要的方向,主要涉及Web应用程序的安全问题。参赛者需要通过对Web应用程序的渗透测试和漏洞挖掘来获取Flag。
  3. Crypto:密码学是CTF比赛中的另一个重要方向,主要涉及加密和解密方面的知识。参赛者需要通过对加密算法的分析和破解来获取Flag。
  4. Reverse:逆向工程是CTF比赛中的另一个方向,主要涉及反汇编、反编译和代码分析等方面的知识。参赛者需要通过对给定程序的反汇编和代码分析来获取Flag。
  5. Forensics:数字取证是CTF比赛中的另一个方向,主要涉及文件恢复、数据分析和恢复删除的文件等方面的知识。参赛者需要通过对给定的数据或文件的分析来获取Flag。
  6. misc:杂项,一般就是图片隐写,音频隐写,编码等,但是这个方向范围会很广,新颖的甚至会出现机器学习污染类型的题

总之,CTF比赛覆盖了网络安全的各个方面,需要参赛者掌握广泛的网络安全技能和知识。
一般一只猫精通一个方向就够了,然后配合着会点misc。比赛的时候一般一个队里面会有各个方向的大佬,负责自个儿方向的题目
当然也有超级大佬不仅精通web也精通二进制(害怕

关于ctf的样子,举个web例子来说的话(不怎么找到到截图了~呜),比如下面这个条件竞争,通过包含文件上传的php代码,得到一串flag:
image
结果:


对面的服务器会执行cat fl0g.php这个shell命令,然后打开flag文件获取到flag,这串字符串就是游戏目标,我们需要提交它获得本题全部分数

常见的查看比赛信息的网址:
ctftime: CTFtime.org / All about CTF (Capture The Flag)
特点:国外赛很多很多

ctfhub: CTFHub
特点:方便查看国内比赛,也有国外赛

SanhaCTF:N1CTF2022-近期赛事-SanhaCTF (su-sanha.cn)
特点:是某个大佬建的博客,可以查看比赛信息,是ctfhub的补充

最近马上要开始的比赛是:



该竞 赛 网 址:

(无需报名,注册攻防世界账号并加入或创建队伍,比赛开始后即可直接参赛)(可以来和猫组队一起玩~嗷)

喵耶,们都 Make The Flag

2 Likes

学ctf容易走火入魔,见https://blog.maplesugar.top

1 Like

有种拉人入坑的感觉,发了那么多 :joy:

1 Like

渗透学得好,牢饭吃到饱

好饿~快来学网安~

咱想想今天更什么好呢~,从信息收集开始更新好了

  1. 查看源码 ctrl+u

  2. curl + v + 网址 查看报文

3./robot.txt 看这个

4./index.phps 源码泄漏(或者:/index.php)

5.网站后台备份文件 如:/www.zip

6.版本控制泄露源码 如/.git (最好输入/.git/ )

是由于运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候, .git 这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。

访问 url/.git/ ,得到 flag 。

类似的还有 .hg 源码泄露,由于 hg init 的时候生成 .hg 文件。

7.版本控制泄露源码 如/.svn(最好输入/.svn/ )

这里是 SVN 导致文件泄露。Subversion ,简称 SVN ,是一个开放源代码的版本控制系统,它的设计目标是取代 CVS 。

访问 url/.svn/ 得到 flag 。

  1. /index.php.swp vim编辑时会产生一个filename.swp的文件,记录动作,例如编辑index.php,会产生index.php.swp的文件

  2. DNS检测 阿里云网站运维检测平台 (aliyun.com)

  3. editor 编辑器,上传文件的位置,可以查看所有的目录路径

11.域名的txt记录:nslookup -qt=txt ctfshow.com

12.php文件源码备份可以使用index.php.bak,若不行可以index.php~来查看(加个波浪线)

13.tz.php 版本是雅黑PHP探针,php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡 流量、系统负载、服务器时间等信息

14.backup.sql,数据库的相关文件

15.db/db.mdb,mdb文件是早期asp+access构架的数据库文件 直接查看url路径添加/db/db.mdb

不过一般比赛的时候,都是直接上字典扫描一下。
猫自己总结的字典,踩过很多次题得到的,应该是比较全面了:
信息泄漏.zip (608 字节)

1 Like

然后的话需要一个扫描器
扫描器需要完成的内容:
(1) 某些网站设置了路径不存在时,会返回主页内容,需要对这些路径进行排除,不能单纯依赖404
(2) 当遇到延时访问失败时,需要重新发起访问
(3) 速度不能太快,以免触发waf
故猫自己写了一个扫描器,用的python,配合异步协程,代码差劲大佬别骂(小声
目录扫描器.zip (1.8 KB)

SCTF 2023 倒计时1天

明日09:00正式开赛

参赛网址: http://sctf2023.xctf.org.cn

(无需报名,注册攻防世界账号并加入或创建队伍,比赛开始后即可直接参赛)

来只猫和猫一起玩吧~嗷呜

1 Like

碎碎念:明天考六级了,喵们救命~

参赛幻视成了弃赛。

1 Like

碎碎念:拒了绿盟科技的实习,想想还是考研去了(小声)

3 Likes

php中include、require介绍:
include

特点:

(1)在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行

(2)可以不用括号

(3)有返回值

(4)有条件包含函数:

例如下面例子,如果变量$somg为真,则将包含文件somefile.php:

if ( $some ){

include ‘somefile.php’ ;

}

include函数有这么一个神奇的功能:以字符‘/’分隔(而且不计个数),若是在前面的字符串所代表的文件无法被PHP找到,则PHP会自动包含‘/’后面的文件——注意是最后一个‘/’。


例如include “hint.phpasdsad/…/…/…/…/flag”

实际上寻找的是往上四层目录的flag文件,前面的hint.phpasdsad没有任何效果

值得注意的是:绝对路径一定要以/或者开头

require

特点:

(1)在包含的过程中如果出现错误,会直接报错并退出程序的执行

(2)没有返回值

(3)无条件包含函数:

无论$some取何值,下面的代码将把文件somefile.php包含进文件里:

if ( $some ){

require ‘somefile.php’ ;

}

(4)可以不用括号

include_once

和include函数相同,但只包含一次。即:它会首先验证是否已经包含了该文件。如果已经包含,则不再执行include_once。否则,则必须包含该文件。除了这一点与include完全相同。

require_once

和require函数相同,但只包含一次。即:它会首先验证是否已经包含了该文件。如果已经包含,则不再执行require_once。否则,则必须包含该文件。除了这一点与require完全相同。

1 Like

在文件包含中,存在很多伪协议值得我们去利用,最基础的伪协议是利用php中的php://filter
php://filter在双off的情况下也可以正常使用,即:
allow_url_fopen:off
allow_url_include:off
下面是一个实例:

<?php
if(isset($_GET['file'])){
   $file = $_GET['file'];
   include($file);
}else{
   highlight_file(__FILE__);
}
?>

以上是最简单的一个文件包含漏洞的例子,利用这个漏洞我们可以把php文件的源码读取出来!

先简单介绍一下文件包含漏洞:
在include的加持下,我们就可以利用这个include把源码扔出来!
核心:file=php://filter/read=convert.base64-encode/resource
解释:php://filter是一个元封装器,专门用来筛选你想过滤的数据,是php中独有的一个协议,可以作为一个中间流来处理其他流,可以进行任意文件的读取
根据名字,filter,可以很容易想到这个协议可以用来过滤一些东西:
名称 描述 备注
resource=<要过滤的数据流> 指定了你要筛选过滤的数据流。 必选
read=<读链的筛选列表> 可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
write=<写链的筛选列表> 可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
<;两个链的筛选列表> 任何没有以 read= 或 write= 作前缀 的筛选器列表会视情况应用于读或写链。

resource 是资源名称!
关于为什么要使用base64的方式读取出来:
因为你不用base64的话,她就会读取出来完完整整的php的代码,这个代码会自动运行,你就看不到源代码,无了!ᶘ ᵒᴥᵒᶅ,而转成base64的话,因为无法运行这个代码,就会原原本本的把base64的内容显示出来४*ପ꒰⑅︎•ᴗ•。꒱໊੭ ​​​
所以最终的payload:?php://filter/read=convert.base64-encode/resource=flag.php
也可以这样指定路径:?php://filter/read=convert.base64-encode/resource=./images/placeholder.jpg
也接受绝对地址:php://filter/read=convert.base64-encode/resource=D:/Shares/AcetyleneSMBServer/整活全集/IMGP4932.JPG
甚至可以:php://filter/read=convert.base64-encode/resource=/./…/…/…/var/www/html/…/html/index/…/…/…/…/flag
但是不能像include一样可以在前面引入无用数据:
include “hint.phpasdsad/…/…/…/…/flag”

类似于base64的效果(避免不显示代码)的过滤器:
(1)编码集转换类型
convert.iconv.CSISOLATIN6.UCS-4
convert.iconv.L2.UTF-16
效果:

原理大概是中间插入了很多不可见字符:
image
(2)加密函数类型

string.rot13

(3)去除php标签类型

string.strip_tags