大学mtf一枚,希望找到小可爱一起打ctf,交流信息安全,自己是web方向的说,有交流的问题或者其他可以在下面回或者加QQ:1215437423
已经是大佬的猫咪比赛的时候可以带上猫的说,嗷~欢迎黑客少女
这个是猫在学校里面给学弟学妹训练营讲解时使用的关于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竞赛可分为以下几个方向:
- PWN:PWN是CTF比赛中最常见的方向之一,主要涉及漏洞利用和二进制安全方面的知识。参赛者需要针对给定的二进制程序进行漏洞挖掘和利用,从而获取Flag。
- Web:Web安全是CTF比赛中另一个重要的方向,主要涉及Web应用程序的安全问题。参赛者需要通过对Web应用程序的渗透测试和漏洞挖掘来获取Flag。
- Crypto:密码学是CTF比赛中的另一个重要方向,主要涉及加密和解密方面的知识。参赛者需要通过对加密算法的分析和破解来获取Flag。
- Reverse:逆向工程是CTF比赛中的另一个方向,主要涉及反汇编、反编译和代码分析等方面的知识。参赛者需要通过对给定程序的反汇编和代码分析来获取Flag。
- Forensics:数字取证是CTF比赛中的另一个方向,主要涉及文件恢复、数据分析和恢复删除的文件等方面的知识。参赛者需要通过对给定的数据或文件的分析来获取Flag。
- misc:杂项,一般就是图片隐写,音频隐写,编码等,但是这个方向范围会很广,新颖的甚至会出现机器学习污染类型的题
总之,CTF比赛覆盖了网络安全的各个方面,需要参赛者掌握广泛的网络安全技能和知识。
一般一只猫精通一个方向就够了,然后配合着会点misc。比赛的时候一般一个队里面会有各个方向的大佬,负责自个儿方向的题目
当然也有超级大佬不仅精通web也精通二进制(害怕
关于ctf的样子,举个web例子来说的话(不怎么找到到截图了~呜),比如下面这个条件竞争,通过包含文件上传的php代码,得到一串flag:
结果:
对面的服务器会执行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
学ctf容易走火入魔,见https://blog.maplesugar.top
有种拉人入坑的感觉,发了那么多
渗透学得好,牢饭吃到饱
好饿~快来学网安~
咱想想今天更什么好呢~,从信息收集开始更新好了
-
查看源码 ctrl+u
-
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 。
-
/index.php.swp vim编辑时会产生一个filename.swp的文件,记录动作,例如编辑index.php,会产生index.php.swp的文件
-
DNS检测 阿里云网站运维检测平台 (aliyun.com)
-
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) 某些网站设置了路径不存在时,会返回主页内容,需要对这些路径进行排除,不能单纯依赖404
(2) 当遇到延时访问失败时,需要重新发起访问
(3) 速度不能太快,以免触发waf
故猫自己写了一个扫描器,用的python,配合异步协程,代码差劲大佬别骂(小声
目录扫描器.zip (1.8 KB)
SCTF 2023 倒计时1天
明日09:00正式开赛
参赛网址: http://sctf2023.xctf.org.cn
(无需报名,注册攻防世界账号并加入或创建队伍,比赛开始后即可直接参赛)
来只猫和猫一起玩吧~嗷呜
碎碎念:明天考六级了,喵们救命~
参赛幻视成了弃赛。
碎碎念:拒了绿盟科技的实习,想想还是考研去了(小声)
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完全相同。
在文件包含中,存在很多伪协议值得我们去利用,最基础的伪协议是利用php中的php://filter
php://filter在双off的情况下也可以正常使用,即:
allow_url_fopen:off
allow_url_include:off
下面是一个实例:
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
效果:
原理大概是中间插入了很多不可见字符:
(2)加密函数类型
string.rot13
(3)去除php标签类型
string.strip_tags