ctfhub web

WEB前置技能

http协议

发现其要更改请求方式但网页上无法显示完整,猜测是ctfhub但为了验证还是检查网页源代码

结果还是一样。。。所以不在纠结使用bp抓包

更改请求方式

然后发送得到flag

302跳转

http状态码

101 websocket协议
websocket长连接协议,通常用来即时通讯。如视频会议、直播、弹幕等
200 请求被成功处理
成功请求
301 永久性重定向
比如建设一个网站后,将网站的url变换了,重新申请一个域名,但是希望之前的用户访问之前url仍然可以访问到,就可以做一个重定向新的url下面。比如京东最早域名www.360buy.com名重定向到现在www.jd.com
302 临时性重定向
比如用户在未登录时访问个人中心页面,这时可以临时重定向到登录的url。
304 Not Modified
当客户端拥有可能过期的缓存时,会携带缓存的标识 etag、时间等信息询问服务器缓存是否仍可复用,而304是告诉客户端可以 复用缓存。
400 请求出错
由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。
401 未授权
(未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 没有访问权限
系统中某些页面只有在某些权限下才能访问,当用户去访问了一个本身没有访问权限的url,回报403错误。
404 没有对应资源
一般是自己输入了一个url,这个url并不合法。
404 找不到,Web 服务器找不到您所请求的文件或脚本。
请检查URL 以确保路径正确。
405 不允许此方法
405 不允许此方法,对于请求所标识的资源,不允许使用请求行中所指定的方法。(get/post/put/delete/请求用混淆了,更正即可)
请确保为所请求的资源设置了正确的 MIME 类型
406 不可接受
根据此请求中所发送的“接受”标题,
此请求所标识的资源只能生成内容特征为“不可接受”的响应实体
407 需要代理身份验证
407 需要代理身份验证,在可为此请求提供服务之前,
您必须验证此代理服务器。请登录到代理服务器,然后重试
412 前提条件失败
在服务器上测试前提条件时,部分请求标题字段中所给定的前提条件估计为FALSE。
客户机将前提条件放置在当前资源 metainformation(标题字段数据)中,以防止所请求的方法被误用到其他资源
414 Request-URI 太长
414 Request-URI 太长,Request-URL太长,服务器拒绝服务此请求。仅在下列条件下才有可能发生此条件:
    客户机错误地将 POST 请求转换为具有较长的查询信息的 GET 请求
    客户机遇到了重定向问题(例如,指向自身的后缀的重定向前缀)
    服务器正遭受试图利用某些服务器(将固定长度的缓冲区用于读取或执行 Request-URI)中的安全性漏洞的客户干扰
500 服务器错误
比如服务器某一个函数代码出错了,有没有捕获异常,这时候会报500错误。
500 服务器的内部错误,Web 服务器不能执行此请求。请稍后重试此请求。
501 未实现
501 未实现,Web 服务器不支持实现此请求所需的功能。请检查URL 中的错误
502 网关出错
Bad Gateway
网关出错,当用作网关或代理时,服务器将从试图实现此请求时所访问的upstream 服务器中接收无效的响应
503 服务器停机或正在维护
系统正在维护或者服务器暂停的时候,回报500错误。
504 Gateway Timeout
代理服务器无法及时的从上游获得响应
 

通过学习得知,302跳转表示本来要访问的页面被跳转到了其他页面

进入环境后,点击蓝色字体,但是发现跳转回了原页面,但url变了

打开网页工具进入网络看看发生什么跳转(虽然题目告诉了我是302)

发现发生302跳转,而后使用bp抓包劫持302,重新发送后得到flag

解释原因为何重新发送就可以:这是http协议的规范,当发生302跳转时候,客户端应该再次发送location中指定的url并使用get请求,在这题里就是在点击蓝色字体是发生302跳转,即我们需要对其请求进行抓包然后用get请求再次发送。

Cookie

Cookie是服务器存储在客户端的一段文本信息,当客户端发送访问请求时服务器会发送给客户端一个cookie并存储,第二次客户端再次发送访问请求时cookie会被包含在Http头文件发送给服务器,浏览器检查到有cookie信息就会默认这是已经验证过的用户,不会进行第二次验证。

打开环境

发现其cookie为admin,使用bp抓包

第一次做直接把那个=0删除,然后发现啥也没有

而后查找资料得知=0是没有权限而=1是有权限而后修改为=1

发送得到flag

基础认证

首先打开环境并且下载附件,先去看看附件,解压之后打开为一大堆数据,感觉用户名和密码都在里面,但不会

而后打开环境看看

点击click发现弹出填密码用户名的位置

然后一头雾水,选择去看wp

发现需要通过bp抓包后进行暴力破解,那么好,去抓包

注意要抓的是填写过用户名和密码然后点击登录的请求

解释:我们要通过这种方式去查找到其进行base64编码(在http中用base64来对用户名和密码进行编码)发现在Authorization(忘记截屏了,手打一下)后面有basic单词存在,跟在后面的就是刚刚发送的用户名和密码,但保险起见,用编码工具解码一下

就是刚刚发送的东西(下次注意不要将用户名和密码搞成一样,不然不好分清)

:前面是用户名,后面是密码

然后将抓包来的再次发送

得到用户名为admin

而后准备开始暴力破解,将抓来的包

开始配置payload

添加刚刚的密码本

加入前缀为admin:(注意要用英文输入法的:不然你会崩溃,别问为什么,问就是亲生经历)

注意要关闭

原因问就是不知道(可能是因为不关闭会导致狙击手模式下发生信息识别报错,具体还是不清楚)

而后添加$,这个就是被标记的位置而狙击手模式下就是攻击被标记位置

开始攻击

找到这个然后重发一下就找到flag

bp各种攻击模式

狙击手模式(Sniper)——它使用一组Payload集合,依次替换Payload位置上(一次攻击只能使用一个Payload位置)被§标志的文本(而没有被§标志的文本将不受影响),对服务器端进行请求,通常用于测试请求参数是否存在漏洞。

攻城锤模式(Battering ram)——它使用单一的Payload集合,依次替换Payload位置上被§标志的文本(而没有被§标志的文本将不受影响),对服务器端进行请求,与狙击手模式的区别在于,如果有多个参数且都为Payload位置标志时,使用的Payload值是相同的,而狙击手模式只能使用一个Payload位置标志。

草叉模式(Pitchfork )——它可以使用多组Payload集合,在每一个不同的Payload标志位置上(最多20个),遍历所有的Payload。举例来说,如果有两个Payload标志位置,第一个Payload值为A和B,第二个Payload值为C和D,则发起攻击时,将共发起两次攻击,第一次使用的Payload分别为A和C,第二次使用的Payload分别为B和D。

集束炸弹模式(Cluster bomb) ——它可以使用多组Payload集合,在每一个不同的Payload标志位置上(最多20个),依次遍历所有的Payload。它与草叉模式的主要区别在于,执行的Payload数据Payload组的乘积。举例来说,如果有两个Payload标志位置,第一个Payload值为A和B,第二个Payload值为C和D,则发起攻击时,将共发起四次攻击,第一次使用的Payload分别为A和C,第二次使用的Payload分别为A和D,第三次使用的Payload分别为B和C,第四次使用的Payload分别为B和D。

响应源包代码

打开环境

这里有个开始键,点一下

发现是个贪吃蛇

查看一下元素,然后就看到flag

信息泄露

目录遍历

打开环境

点击之后进入到这个界面

然后开始漫无目的的点进去看

点进去发现还有四个文件夹

再慢慢的一个一个试

然后

找到了flag......

在这个里面

以为自己做的太麻烦,翻看别人wp发现,好吧就这样。

PHPINFO

打开环境

点击那个绿色的

然后进入到一大篇文章表格

开始直接猜flag再末尾,结果没有,然后在这个页面上直接查找ctfhub

本来应该把{}加上更准确

侧边出现的这些应该就是含有ctfhub的位置

然后翻找,发现flag

备份文件下载

网站源码

先把这几个粘贴,以免以后找不到

常见的网站源码备份文件后缀

  • tar
  • tar.gz
  • zip
  • rar
常见的网站源码备份文件名

  • web
  • website
  • backup
  • back
  • www
  • wwwroot
  • temp

发现一头雾水

一开始还想用蚁剑进行解题,bp抓包后发送一句话木马

但是好像是不允许(忘记截图了),之后也连接不上

去看wp

方法一

准备使用bp的cluster bomb进行爆破

首先抓包,抓包后发送给intuder

使用cluster bomb 进行多个爆破

添加标记载荷给文件明和扩展名在上述的/后面

先配置payload(载荷)

这里还要添加一个后缀“.”

老样子,payload encoding还是关闭

然后我就开始爆破

发现不让爆破,然后一直弄才发现负载集2没有配置(就这一步耗费我甚多金币,心疼)

然后再去配置唯一区别就是

这里不做任何添加

然后开始爆破

找到了那个网站源码www.zip点击进去,发现啥也没有

看下响应

更是一坨

再次查看其它wp发现可以直接在地址后面加上/www.zip

点击回车后,发现下载下来一个文件进去查看看见flag

打开一看

好,被耍了

感觉有点眼熟但想不起来(后面看了下在命令注入那里遇到过),然后看wp发现能直接访问

得到flag

方法二

使用dirsearch

在kali虚拟机中使用dirsearch直接扫描这个网址

而后扫面完成直接找

而后后面步骤和上面一样。

bak文件

bak文件是SQL Sever数据库的数据库备份文件的后缀名,不能直接打开,但是可以复制和发送,也就是在发送数据库库的时候其实是发送的bak文件,接收后先还原然后就可以看到其中的内容了。

打开环境

发现flag在index.php里面而后想到dirsearch扫描

在kali虚拟机里用dirsearch扫描

扫描完后直接找绿色的

找到后在网址后面加上这个找到的inde.php.bak

而后直接回车

下载下来一个东西

尝试用记事本打开它然后就找到了flag

vim缓存

打开环境,发现flag在index.php源码中

使用dirsearch扫描

发现什么都没有,只有几个无权限访问的

 尝试直接在扫描出来的里面直接搜索index.php

发现有好多,这只是其中之一

去搜索下vim这个东西,它是一个编码器

看见那个交换文件名

直接在网址那里搜索

下载了一个东西

然后用记事本打开

看见了flag

这里后面又去扫描出来的里面搜索下了那个交换文件

果然有但是http状态码显示503服务器维修或暂停,应该就是因为异常退出导致其报错,无法访问。

vim缓存

第一次异常退出.swp

第二次异常退出.swo

第三次异常退出.swn

.DS_Store

mac os(苹果系统)下的一种隐藏文件相当于备份文件

打开环境,然后发现

让我们试着找flag

打开环境的时候发现有提示

.DS_Store是一个文件夹,不知道会不会有什么特定的格式,以防万一用dirsearch扫描一下

找到它,发现和原来一样,然后就直接在网址中打开

下载一个文件

然后用记事本打开

好,一脸懵,感觉是什么编码,尝试解码也是啥都没有,挣扎半天,去看眼wp

发现把空格全部替换为空(就是不要空格)

$后面就是那个网址,但noteustr是注释的意思,所以只要找到noteuster之前就行

然后直接在网址中搜索,找到flag

Git泄露

需要使用到githack,kali中安装比较简便

githack安装

方法一

在kali虚拟机中打开终端git clone https://github.com/BugScanTeam/GitHack将这段代码复制粘贴,但需要魔法。

方法二

打开项目首页 - GitHack:.git 泄漏利用工具,可还原历史版本 - GitCode网址

直接下载

解压后直接拖到kali里面就行

打开环境,由题目知道是git泄漏,但不会,看wp

先检查一下kali目前使用的python环境是哪个版本

直接在终端输入python

发现是python3,但githack要在python2中使用

python版本更改

方法一

在使用的python后面加2即python2再使用githack

方法二

输入代码update-alternatives --install /usr/bin/python python /usr/bin/python2 100改为python2

输入代码update-alternatives --install /usr/bin/python python /usr/bin/python3 150改为python3

log

在kali中在GitHack文件夹打开终端

输入python2 GitHack.py 网址/.git/进行扫描

回车之后会生成一个储存文件夹

根据目录找到文件夹,打开终端

然后输入git log查看历史记录

 remove flag 表示当前版本

 add flag 表示这次提交的版本

 init 表示初始的版本

发现在提交的版本中有flag

使用git reset --hard需要的commit后的东西回退到提交的版本中

然后打开文件夹

打开中间的文本文档就是flag

stash

(图片转载自CTFHub Git泄露-CSDN博客

打开环境

继续使用githack扫描与上一题没多大差别但到git log上一步发生改变

方法一

使用git log查看记录

回退到提交版本

我们发现文本文档受损无法打开

这时候需要stash出场,在这个文本文档打开终端

输入git stash pop指令

再次打开就可以看见flag

方法二 

在得到文件后打开终端输入git stash list查看保存进度列表

再输入git stash pop就可以再文件夹找到文本文档

打开就是flag

index

打开环境

题目提示git泄露

打开虚拟机,用githack扫描

然后打开在文件夹打开终端

查看历史记录git log

去到提交的版本,打开看眼文件夹

打开文本文档,直接有flag

SVN泄露

Subversion (SVN) 泄露是指在使用 Subversion 版本控制系统的过程中,由于不当的配置、疏忽或错误,导致敏感信息或整个项目的源代码被未经授权的访问者获取。

需要针对svn的工具,这里查找资料大多推荐dvcs-ripper

dvcs-ripper

带.pl的是可以提取信息的格式,README是使用介绍

方法一

任然是在kali中安装git clone https://github.com/kost/dvcs-ripper.git复制到终端,记得开魔法,在githack处有

方法二

在gitcode中下载后直接拖到kali中

网址:GitCode - 全球开发者的开源社区,开源代码托管平台

方法三

ctfhub上直接有这个工具可以去下载,具体自己尝试,是去github上下载链接,与方法一差别不大

配置perl环境

经过实验,有些代码好像有问题,会出现无法下载部分工具包的情况,这个代码使用后倒是没有

sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl

使用后出现这样的界面才算可以

打开环境,题目提示为svn泄露

使用dvcs-ripper将泄露的文件克隆到本地目录中

.rip-svn.pl -u 网址/.svn

这里用ls -al查看所有文件,包括隐藏文件.svn

使用cd代码进入.svn文件 cd .svn

接下来有两种方式

方法一

使用ls查看目录

wc.db是svn数据库的文件

然后使用cat指令查看文件cat wc.db

发现文件里面太复杂了

使用cat 文件 | grep -a 名称 来搜索flag,找到两个

尝试使用curl指令访问,可以文件检查网页源代码是否存在flag,但两个访问都404

(这张图是借来的404那里忘记截屏了)

根据提示

则去找到pristine文件,就是源代码文件副本

cd pristine

而后ls查看文件目录,存在两个文件

一个一个的去尝试

使用cd ..可以退出当前文件夹到上一级文件夹

在ff中找到flag

方法二

在.svn文件这里直接使用tree指令查列出文件目录内容

显示蓝色字体的就是存在文件的

发现只有pristine里面有东西

直接cat下那两个东西就能找flag

HG泄露

当开发人员使用 Mercurial 进行版本控制,对站点自动部署。如果配置不当,可能会将.hg 文件夹直接部署到线上环境。这就引起了 hg 泄露漏洞。

打开环境,根据题目提示是hg泄露,模仿svn泄露写代码将其目录克隆到本地目录上

但显示404,查找资料显示是下载不完整,但不影响查看其文件目录

ls -al

发现了.hg文件,打开

打开后通过tree指令查看(感觉这个更快)

发现一个txt文档,按以前的题,flag就在里面,直接cat

直接找到flag痕迹

通过grep指令用正则表达式检索(下面有笔记)

发现flag的文件

使用curl指令访问,得到flag

代码笔记

./rip-信息格式.pl -u 网址/信息格式    克隆信息到本地文件

cd    进入某文件

 cd ..    退回到上级文件

ls   查看目录

ls -al   查看所有包括隐藏文件的目录

cat    查看文件

tree   查看文件目录及其内容

curl   访问网址

grep

grep 命令是一项非常有用的工具。grep(全称:Global Regular Expression Print)命令用于根据给定的正则表达式搜索文本,并将匹配的行打印出来。

-a:将二进制文件视为文本文件来处理

-r:递归地搜索指定目录及其子目录中所有文件

个人认为-a是因为flag是文本文件所以才用-a

密码口令

弱口令

打开环境进去之后发现这种题目有点眼熟

想起做过的基础认证

使用bp抓包,抓包这个登录后的东西

发现这样的模式

并没有进行任何的编码且知道密码和用户名在哪个位置出现

想尝试像基础认证一样获取用户名,重发后并没有出现用户名

尝试失败

后去找密码本,直接搜索弱口令密码,发现有弱口令密码本直接下载下来进行爆破

将截下来的包发给intruder

使用cluster bomb模式爆破

把多余的载荷标记删除

变成这样

添加密码本

老样子,两个载荷都关闭编码

而后开始攻击

这数量有点害怕,先等一等看看

状态码都是200说明,但都没有flag

实在等不了了,看眼wp说是用户名是admin,emm试一下

感觉又是漫长的等待结果没过多久,就出来了

一眼就看见

然后直接查看resbonse,找到flag

一般默认管理员为admin/root

弱口令字典(部分)下载网址:项目首页 - 弱口令字典-PasswordTop10000:本仓库提供了一个名为“弱口令字典 password top10000”的资源文件,该文件包含了常用的10000个弱口令密码。这些密码通常被认为是安全性较低的,容易被破解,因此不建议在任何正式或重要的账户中使用 - GitCode

默认口令

打开环境

是一个登录界面 ,理解一下默认口令应该就是它自己默认,不需要爆破来解决

去网上搜索一下

尝试了下,发现第二个可以登录然后就找到flag

网址奉上:常见网络安全设备默认口令 - Scivous - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值