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.mzph.cn/news/877734.shtml

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

相关文章

ES6笔记总结(Xmind格式):第三天

Xmind鸟瞰图&#xff1a; 简单文字总结&#xff1a; ES6知识总结&#xff1a; Promise的使用: 1.使用 new Promise() 构造函数来创建一个 promise 对象 2.接受两个函数作为参数&#xff1a;resolve 和 reject ①resolve 函数在异步操作成功完成时调用&#xf…

python构建一个web程序

from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return 欢迎来到我的Python Web程序!if __name__ __main__:app.run(debugTrue)1、安装flask D:\Users\USER\PycharmProjects\pythonProject1\p01>pip install flask WARNING: Ignoring invalid…

服务器五大关键组件拆解分析

拆解服务器五大关键组件 "AI服务器五大硬件揭秘&#xff1a;深入剖析PCB构造&#xff0c;揭示内部真实面貌。本文通过一步步拆解PCB,为读者呈现了一台服务器的内部世界&#xff0c;力求让您对服务器升级的潜在价值有更深的理解和把握。" 1、五大硬件部分可归纳为——…

自定义开屏启动广告页

自定义开屏启动广告页 文章目录 自定义开屏启动广告页效果图简单版轮播方式css 效果图 简单版 图片 倒计时 <template><view class"guide fcc" :style"{ background: url(${ imgUrl }) no-repeat}"><view class"skip_btn" cli…

黑神话悟空,高清壁纸、原画,游戏截图

黑神话悟空&#xff0c;高清壁纸、原画&#xff0c;游戏截图&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/cd17c05c4f33

c++每日练习记录4-(递归思想)

题解1迭代&#xff1a; 利用利用两个新的指针&#xff0c;一个用于保存输出的初始节点&#xff0c;另外一个用于地址的迭代指向。 ListNode *mergeTwoLists(ListNode *list1, ListNode *list2){ListNode *list_node new ListNode(0);ListNode *list_node1 list_node;while (l…

springboot中后缀匹配模式useSuffixPatternMatch、useTrailingSlashMatch的源码匹配分析

背景&#xff1a; 上篇文章&#xff0c;已经说了&#xff0c;如果我们直接debug调试没法找到源码中具体的代码&#xff0c;那么就可以通过jd-gui反编译的方式通过搜关键词的方式来找到源码中具体的位置&#xff0c;这次简单说下spring中的两种后缀匹配模式useSuffixPatternMat…

进外包,对简历是否有影响?

hello 大家好 今天来跟大家聊聊外包&#xff0c;主要是最近很多朋友私信问我&#xff0c;去外包公司会不会去自己的简历产生影响。 外包类型 我们先来聊聊外包类型&#xff1b;第一种类型&#xff0c;人头外包&#xff0c;也就是你入职的公司是没有开发岗位&#xff0c;只是把你…

机器人学——逆向运动学(机械臂)

正/逆运动学对比 求解 求解目标 Reachable workspace 与 Dexterous workspace Subspace 解的数目 多重解 解的选择 求解方法 栗子一 x,y,fai已知&#xff0c;求解theta(1,2,3)的具体数值 几何法 余弦定理定义&#xff1a;对于任意三角形ABC&#xff0c;设其三个内角分别为…

设计模式---简单工厂模式

简单工厂模式&#xff08;Simple Factory Pattern&#xff09; 是一种创建型设计模式&#xff0c;它定义了一个工厂类&#xff0c;通过这个工厂类可以创建不同类型的对象。简单工厂模式的主要目的是将对象的创建逻辑集中在一个地方&#xff0c;简化客户端的代码&#xff0c;使得…

黑神话 悟空 配置 Mac玩游戏

兄弟们&#xff0c;这次《黑神话&#xff1a;悟空》真的是全网吹爆了&#xff01;我提前开香槟拿个年度游戏好吧&#xff01;Mac玩家也不用担心&#xff0c;系统兼容工具CrossOver也在第一时间支持了《黑神话&#xff1a;悟空》&#xff0c;现在你可以直接在Mac上玩《黑神话&am…

World of Warcraft [CLASSIC] the Eye of Eternity [EOE] P1-P2

World of Warcraft [CLASSIC] the Eye of Eternity [EOE] 永恒之眼&#xff08;蓝龙&#xff09; 第一阶段 第二阶段 第三阶段 载具1-6技能介绍 World of Warcraft [CLASSIC] the Eye of Eternity [EOE]_永恒之眼 eoe-CSDN博客 永恒之眼怎么出副本呢&#xff0c;战斗结束&am…

嵌入式学习----网络通信之TCP协议通信

TCP&#xff08;即传输控制协议&#xff09;&#xff1a;是一种面向连接的传输层协议&#xff0c;它能提供高可靠性通信(即数 据无误、数据无丢失、数据无失序、数据无重复到达的通信) 适用情况&#xff1a; 1. 适合于对传输质量要求较高&#xff0c;以及传输大量数据 的通信。…

【Kubernetes】k8s集群图形化管理工具之rancher

目录 一.Rancher概述 1.Rancher简介 2.Rancher与k8s的关系及区别 3.Rancher具有的优势 二.Rancher的安装部署 1.实验准备 2.安装 rancher 3.rancher的浏览器使用 一.Rancher概述 1.Rancher简介 Rancher 是一个开源的企业级多集群 Kubernetes 管理平台&#xff0c;实…

ES+FileBeat+Kibana日志采集搭建体验

1.环境准备 需要linux操作系统&#xff0c;并安装了docker环境 此处使用虚拟机演示。&#xff08;虚拟机和docker看参考我之前写的文章&#xff09; VirtualBox安装Oracle Linux 7.9全流程-CSDN博客 VirtualBox上的Oracle Linux虚拟机安装Docker全流程-CSDN博客 简单演示搭建ES…

SpringBoot教程(二十二) | SpringBoot实现分布式定时任务之elastic-job

SpringBoot教程&#xff08;二十二&#xff09; | SpringBoot实现分布式定时任务之elastic-job 简介前置条件&#xff1a;需要ZooKeeper配合1、引入相关依赖2、application.yml中配置注册中心和作业调度巨坑&#xff08;配置修改无效&#xff09;3、job实例4、ElasticJob-UI监控…

git-20240822

目录 初始化仓库 Git init Git init project --bare 查看提交的记录 git log --prettyoneline 查看当前git远程库地址 git remote -v 查看详细提交记录 git log 撤出暂存区的文件 git reset HEAD file(.代表全部文件&#xff09; 提交数据到远程仓库 git config --global push.…

TCP+UDP通信

一、UDP协议 1.1、recvfrom() 参数说明 int sockfd, //socket 的fd void *buf, // 保存数据的一块空间的地址 size_t len, //这块空间的大小 int flags,// 0 默认的接收方式 -----阻塞方式 默认行为是阻塞 MSG_DONTWAIT 不阻塞方式&#xff0c;用他的话代表读的时候是非…

使用dockerDesktop下载x86,amd64,arm64镜像

开启梯子 注意dockerDesktop不需要登录账号密码&#xff0c;不然拉取镜像会提醒账号或者密码错误 修改dockerDesktop配置&#xff0c;将experimental的值设置成 true&#xff0c;意思是&#xff1a;开启manifest实验特性 重启docker后下载镜像 –platform后面就是架构版本&a…

华为账号“一键登录”能力让美团用户尽享安全便捷的登录体验

背景 随着全场景智能生态的日益完善&#xff0c;用户面临着众多应用与服务的登录需求&#xff0c; 而繁琐的注册登录流程通常是用户转化的隐形障碍&#xff0c;用户可能因为步骤繁琐、记忆密码困难而中途放弃&#xff0c;导致应用错失潜在用户。其次&#xff0c;高门槛的登录方…