ctfshow WEB刷题

web1

直接右键打开,在源代码里

web2

ctrl+u查看源码

web3

打开bp抓包发送直接就得到了

web4

用dirsearch扫描发现txt文件

访问

接着访问得到flag

web5

用dirbuster扫描看看有没有phps源码泄露,发现存在

访问下载文件打开就是flag

web6

用dirsearch扫描发现zip文件

 下载

打开查看得到flag

web7

用dirsearch扫描,发现git泄露

访问

web8

直接dirsearch扫描,发现svn泄露

访问

web9

根据题目提示可以知道是vim缓存漏洞

临时文件是在vim编辑文本时就会创建的文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容。

以 index.php 为例

第一次产生的缓存文件名为 .index.php.swp
第二次意外退出后,文件名为.index.php.swo
第三次产生的缓存文件则为 .index.php.swn
注意:index前有 " . "

访问index.php.swp下载文件

打开得到flag

web10

打开bp抓包请求直接得到flag

web12

用dirsearch扫描发现,robots.txt文件

查看发现admin路径

访问发现登入框

 用户名为admin,密码在页面下方372619038

登入得到flag

web13

在页面下方发现个链接document

点开发现是技术文档,有登入信息

将https改为http在域名后加上system1103/login.php成功进入登入界面

 输入用户名密码成功登入

web14

用dirsearch扫描发现有个editor目录

访问发现一个编辑器界面

点击插入文件(插入图片)发现有个文件空间

进入/etc/passwd发现没东西,进入/var/www/html发现有个nothinghere目录进入查看发现flag文件

访问/nothinghere/fl000g.txt得到flag

web15

用dirsearch扫描发现有个admin路径

访问得到一个后台登入系统

先尝试用户名:admin,密码:123456,发现登入失败

点忘记密码发现有个密保问题

 滑倒页面最下面有个qq邮箱

查询到号主是陕西西安的

输入西安得到密码

输入密码得到flag

web16

根据题目提示,直接访问/tz.php

点击php信息处的phpinfo

搜索得到flag

web17

用dirsearch扫描发现有个sql文件

下载

查看发现flag

web18

点开源代码发现有个js文件

点开发现胜利条件

搜索后发现是unicode编码

解码

 根据谐音110.php

访问得到flag

web19

查看源代码发现php代码

根据代码post传参得到flag

web20

mdb文件是早期asp+access构架的数据库文件

所以直接访问/db/db.mdb

用010打开得到flag

web21

先随便输入用bp抓包

发现一串base64编码

解码发现是输入的用户名和密码

单独加密123456为MTIzNDU2

将题目的字典加入

并用base64加密

开始爆破得到flag

web23

根据代码发现需要满足token的长度条件

#第一种import hashlibdic = '0123456789qazwsxedcrfvtgbyhnujmikolp'
for a in dic:for b in dic:t = str(a)+str(b)md5 = hashlib.md5(t.encode('utf-8')).hexdigest()if md5[1] != md5[14] or md5[14]!= md5[17]:continueif(ord(md5[1]))>=48 and ord(md5[1])<=57 and (ord(md5[31]))>=48 and ord(md5[31])<=57:if((int(md5[1])+int(md5[14])+int(md5[17]))/int(md5[1])==int(md5[31])):print(t)#第二种
import hashlibfor i in range(1,10000):md5 = hashlib.md5(str(i).encode('utf-8')).hexdigest()if md5[1] != md5[14] or md5[14]!= md5[17]:continueif(ord(md5[1]))>=48 and ord(md5[1])<=57 and (ord(md5[31]))>=48 and ord(md5[31])<=57:if((int(md5[1])+int(md5[14])+int(md5[17]))/int(md5[1])==int(md5[31])):print(i)

输入token=3j或token=422或token=1202

web24

mt_srand():播种 Mersenne Twister 随机数生成器。

用法:

mt_srand(seed);

intval():获取变量的整数值

根据代码编写脚本

<?php
mt_srand(372619038);
echo intval(mt_rand());
?>

运行得到r

get传参?r=1155388967得到flag

web25

先尝试r=0和r=1

发现返回值逐渐增加1

根据$rand = intval($r)-intval(mt_rand());可知mt_rand()的值为1593817657

用php_mt_seed工具反推随机数得到种子

用wappalyzer查看一下php版本为7.3.11

选择合适版本的种子放入脚本求token

<?php
mt_srand(2856563738);
$rand = mt_rand();
$rand1 = mt_rand();
$rand2 = mt_rand();
echo $rand,"\n",$rand1,"\n",$rand2,"\n",$rand1+$rand2,"\n\n";

 这边rand1和rand2是第二次和第三次生成的mt_rand()的值,由于试过了两个第一次mt_rand的值相加发现不行。

最终输入?r=1593817657,cookie值等于token=2616771822有时候直接2616771822就行

感觉环境有问题没出flag,就不放展示

web26

先随便输入发现没反应,刷新弹窗unfinded

再尝试提示给的,发现弹窗数据库连接失败,说明就是要爆这个数据库需要爆破用户名和密码

尝试改不同地方最后发现只有密码是不对的(只有单独改密码有弹窗)

故爆破密码,密码为775821(爆破的时候可以尝试多个字典)

web27

进去发现可以下载个名单

有个查询平台

进行身份证的爆破由于身份证中间的部分刚好是生日年月日,所以直接用日期爆破

生日为19900201

爆破出信息再在登入平台登入即可得到一串unicode编码

\u606d\u559c\u60a8\uff0c\u60a8\u5df2\u88ab\u6211\u6821\u5f55\u53d6\uff0c\u4f60\u7684\u5b66\u53f7\u4e3a02015237 \u521d\u59cb\u5bc6\u7801\u4e3a\u8eab\u4efd\u8bc1\u53f7\u7801

解码

输入后得到flag

感觉环境问题抓包抓不到名字和身份证所以直接看了别人的wp,但是思路是没错的

web28

这边看见路径有个0/1/2.txt感觉应该是要爆破这个

先尝试一下改变1.txt发现返回到2.txt且会产生很长的路径

 说明要爆破的应该就是这个由于爆2.txt会比较麻烦所以先爆破前面两个(如果不行就再爆破2,最后再选择爆破txt,爆破要由简入杂)

用cluster bomb模式爆破0和1,先试0到100

发现调到1000都没有,将2.txt去掉试试(/先保留),得到flag

web29

方法一:

根据代码直接传参?c=system("ls");查看当前页面下的目录发现flag.php

 

由于flag被禁用,所以用?c=system(cat f*);发现没有回显cat可能也被禁用了,所以用                       ?c=system(tac f*);成功得到flag

 方法二:?c=echo `tac f*`;

方法三:?c=eval($_GET[a]);&a=system("tac f*");

方法四:?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

方法五:?c=system("cp fl*g.php a.txt"); 再访问a.txt即可

方法六:?c=tac f* | tee 1.txt; 再访问1.txt即可

web30

多了个system和php禁用web29的选一种合适的方法用

web31

web32

 web33

web34

web35

web36

web37

<?php system('cat flag.php');?> 

查看源代码

web38

查看源代码

web39

查看源代码

web40

法一:

?c=eval(array_pop(next(get_defined_vars())));

POST传参a=system('tac fl*');

get_defined_vars() :返回一个包含所有已定义变量的多维数组。这些变量包括环境变量、服务器变量和用户定义的变量,例如GET、POST、FILE等等。

next():将内部指针指向数组中的下一个元素,并输出。

array_pop(): 删除数组中的最后一个元素并返回其值。

法二:

 ?c=show_source(next(array_reverse(scandir(pos(localeconv())))));

localeconv():返回包含本地化数字和货币格式信息的关联数组。这里主要是返回值为数组且第一项为".";

pos():输出数组第一个元素,不改变指针;

current() :返回数组中的当前元素(单元),默认取第一个值,可以代替pos();

scandir():返回指定目录中的文件和目录的数组。这里因为参数为"."所以遍历当前目录;

array_reverse():数组逆置;

next():将数组指针指向下一个,这里其实可以省略倒置和改变数组指针,直接利用[2]取出数组也可以;

show_source():查看源码;

getcwd() :返回当前工作目录。可以代替pos(localeconv())。

web41

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/406543.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

火爆国内外的《黑神话:悟空》,需要什么显卡才能玩?

一路西行&#xff0c;大圣归来&#xff01; 8月20日&#xff0c;国产游戏《黑神话&#xff1a;悟空》上午10时正式上线。这款游戏在Steam平台的同时在线玩家突破了114万&#xff0c;超越《CS2》登顶Steam热玩榜。 仅单日实际在线人数就超过了210万 &#xff0c;超过《幻兽帕鲁…

第2章 C语言基础知识

第2章 C语言基础知识 1.printf()函数 在控制台输出数据&#xff0c;需要使用输出函数&#xff0c;C语言常用的输出函数为printf()。 printf()函数为格式化输出函数&#xff0c;其功能是按照用户指定的格式将数据输出到屏幕上。 printf(“格式控制字符串”,[输出列表]); 格式控…

全球化2.0战略 | ZStack Cloud 支持9种语言

云轴科技ZStack近日宣布&#xff0c;其最新版本的ZStack Cloud已正式发布&#xff0c;可支持9种语言功能&#xff0c;包括中文&#xff08;简体/繁体&#xff09;、英文、俄语、法语、德语、日语、韩语、印尼语和泰语。这一重大更新是ZStack全球化战略2.0的重要一步&#xff0c…

36. 有效的数独【 力扣(LeetCode) 】

一、题目描述 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图…

如何在VMware ESXI中创建Linux虚拟机并实现异地SSH远程访问

目录 ⛳️推荐 前言 1. 在VMware ESXI中创建Ubuntu虚拟机 2. Ubuntu开启SSH远程服务 3. 安装Cpolar工具 4. 使用SSH客户端远程访问Ubuntu 5. 固定TCP公网地址 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不…

21.1 基于Netty实现聊天

21.1 基于Netty实现聊天 一. 章节概述二. `Netty`介绍三. 阻塞与非阻塞1. 阻塞与非阻塞简介2. BIO同步阻塞3. NIO同步非阻塞4. AIO异步非阻塞IO5. 异步阻塞IO(用的极少)6. 总结四. Netty三种线程模型1. 单线程模型2. 多线程模型3. 主从线程模型五. 构建Netty服务器************…

MySQL索引失效的场景

创建一个名为test_db的数据库&#xff0c;并在其中创建一个名为test_table的表。该表包含多个字段&#xff0c;并在某些字段上创建索引。 CREATE DATABASE IF NOT EXISTS test_db;USE test_db;CREATE TABLE IF NOT EXISTS test_table (id INT PRIMARY KEY AUTO_INCREMENT,name…

Microsoft Visual C++ Redistributable的作用主要体现以及可以删除吗?

这些是Microsoft Visual C的不同版本的Redistributable&#xff08;可再发行组件包&#xff09;安装包&#xff0c;用于在用户的计算机上安装或更新必要的运行时库&#xff0c;以便运行使用这些版本的Visual C开发的应用程序。具体来说&#xff1a; Microsoft Visual C 2012 R…

在uniapp中使用swicth组件传递额外的参数方法

switch 开关选择器。 传多个参数时可以这样传参 <switch :checked"scope.row.status" change"event>switchChangeStatus(event, scope.row)" />

Linux之数字证书

新书速览|Ubuntu Linux运维从零开始学_ubuntu linux运维从零开始学 pdf 下载-CSDN博客 《Ubuntu Linux运维从零开始学&#xff08;Linux技术丛书&#xff09;》(肖志健)【摘要 书评 试读】- 京东图书 (jd.com) 随着网络环境的恶化&#xff0c;人们已经逐渐抛弃网络上面的明文…

【C++ 面试 - 面向对象】每日 3 题(六)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

【RabbitMQ】高级特性

本文将介绍一些RabbitMQ的重要特性。 官方文档&#xff1a;Protocol Extensions | RabbitMQ 本文是使用的Spring整合RabbitMQ环境。 生产者发送确认(publish confirm) 当消息发送给消息队列&#xff0c;如何确保消息队列一定收到消息呢&#xff0c;RabbitMQ通过 事务机制 和 …

Java巅峰之路---进阶篇---面向对象(二)

Java巅峰之路---进阶篇---面向对象&#xff08;二&#xff09; 多态介绍多态调用成员的特点多态的优势、弊端以及解决方案综合练习 包和final包的介绍使用其他类的规则&#xff08;导包&#xff09;final关键字final的用途常量 权限修饰符和代码块权限修饰符的介绍四个权限修饰…

为什么需要文献综述模板和创建文献综述技巧

为什么需要文献综述模板&#xff1f; 文献综述模板可以作为特定主题的指南。如果您的时间有限&#xff0c;无法进行更多研究&#xff0c;文献综述大纲示例可以为您提供帮助&#xff0c;因为它可以为您提供您打算研究的内容的概述。 甚至各个领域的专业人士也依赖文学评论来了解…

Openstack 与 Ceph集群搭建(上): 规划与准备

文章目录 一、写在前面1. 网络架构2. 节点规划3. 软件版本4. 避坑指南 二、基础配置1. host配置2. 修改hostname名称3. 确保root账号能登录系统4. 配置NTP5. 配置免密登录 一、写在前面 近期将进行三节点的Openstack、Ceph集群混合部署&#xff0c;本人将详细记录该过程。在此…

Linux系统编程(14)UDP全双工通信和TCP半双工通信

一、UDP全双工通信 UDP通信基础&#xff1a; recvfrom函数 recvfrom 是一个用于接收数据的函数&#xff0c;&#xff0c;但 recvfrom 不仅接收数据&#xff0c;还可以获取发送数据的地址信息。 ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sock…

融资管理系统项目

系列文章目录 第一章 基础知识、数据类型学习 第二章 万年历项目 第三章 代码逻辑训练习题 第四章 方法、数组学习 第五章 图书管理系统项目 第六章 面向对象编程&#xff1a;封装、继承、多态学习 第七章 封装继承多态习题 第八章 常用类、包装类、异常处理机制学习 第九章 集…

指针的学习和理解

初级 1、指针的概念 在64位操作系统中&#xff0c;不管什么类型的指针都占8个字节 int a1; int* p&a;//p就是一个整型的指针&#xff0c;保存了a的地址2、指针和变量 int* p&a;* p100; // 等价于a100p //p&a*有两种定义&#xff1a; 定义的时候&#xff08;前…

IP报文详解

IP的作用 上一篇文章提到TCP的可靠传输机制&#xff0c;那么TCP有把数据从主机A到主机B的能力吗&#xff1f;答案是没有。而IP有这个能力&#xff0c;IP能够将数据从主机A跨网络传输到主机B的能力。那么一定能传输成功吗&#xff1f;答案肯定是否定的&#xff0c;会因为各种原…

使用 Python构建 Windows 进程管理器应用程序

在这篇博客中&#xff0c;我们将探讨如何使用 wxPython 构建一个简单的 Windows 进程管理器应用程序。这个应用程序允许用户列出当前系统上的所有进程&#xff0c;选择和终止进程&#xff0c;并将特定进程保存到文件中以供将来加载。 C:\pythoncode\new\manageprocess.py 全部…