我是靠谱客的博主 繁荣太阳,最近开发中收集的这篇文章主要介绍CTFHub 技能树web<1> HTTP协议<2> 信息泄露(4) Git泄露<3> 密码口令<4> xss,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

<1> HTTP协议

(1) 请求方式

这道题是想让我们对http的请求方式有一个了解。

由这些可知:需要用CTFHUB 的请求方式 请求index.php 才能拿到flag

这就需要用到我们windows自带的curl命令了。

 curl用法: curl 用法

参数:

-v       显示整个通信的过程
-X     指定HTTP请求方法

这里就需要用到我们的 -X参数了。

curl -v -X CTFHUB http://******/index.php

得到flag。

也可以用burp抓包 更改左上角的请求方式。

(2) 302跳转 

关于重定向,可以具体看一下这位师傅的解释:302重定向
我们到burp里拦截发包即可。

可以看到返回包的Location就是服务器指定浏览器重定向的页面,所以每次请求后返回的是 index.html
知识点:
重定向的返回码:3xx

301重定向和302重定向的区别:
302重定向只是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址;
 

301重定向是永久的重定向,搜索引擎在抓取新的内容的同时也将旧的网址替换为了重定向之后的网址。

(3) cookie

cookie:
在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用cookie只能存储一些小量的数据

具体可以看一下这篇文章写的:Cookie和Session的区别
进去之后发现,only admin can get flag。

我们burp抓包之后,发现了 admin=0

0(False)  1(True)

因此我们把其改为1 然后发包

得到flag。

(4) 基础认证

客户端识别与cookie机制可以看这个:客户端识别与 Cookie 机制

我们点击页面的click之后,发现了一个登录框:

可能存在弱口令。我们试着输入admin  123456 登录一下抓包

 发现Authorization: 这里有一串base64加密的文字,解码后是我们输入的 用户名:密码        admin:123456

用户名为admin 爆破密码。

不同于前面的弱口令爆破,我们爆破密码的时候,需要对payload 进行一些改动

 

 分别对应是这样的,嫌麻烦,我没搞汉化版。可以一一对应看一下。

添加前缀 admin:

 添加完前缀还不够,还需要base64对其进行编码。

再add :

 然后导入常用密码:

Start attack  发现爆不出来

看别人题解说:还需要去掉 下面的有效载荷编码才可以

 还爆不出来。。想了好久之后环境过期了,又开启时,发现了题目附件呜呜呜,原来是要用他给的字典。下载他的字典导入之后再 start attack。

得到flag。

 (5) 响应包源代码

贪吃蛇我还以为是上面呢,结果 ctrl + u 发现flag就在源码里 。。。

<2> 信息泄露

(1) 目录遍历

在给出的目录里打开找一下,就找到了flag.txt

(2) PHPINFO

phpinfo()界面会暴露一些配置信息。

这道题我们在界面里的Environment里可以看见flag

(3) 备份文件下载

1. 网站源码

在他给出的这些里面。写个脚本试一下,最终成功后会下载一个备份文件,打开后没看见flag。

回到网页,访问我们的flag文件名,得到flag。

2. bak文件

ctf中常考查的备份文件有.bak .git .svn 等,这题是.bak类型的备份文件泄露。很多软件在生成了某种类型的文件后,就会自动生成它的备份文件.bak。

在网站后面加上 index.php.bak

下载好之后打开,得到flag。

3. vim缓存

vim缓存以前没听说过,查看资料可知:

我们在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容。

vim在编辑文档的过程中如果异常退出,会产生缓存文件

以 index.php 为例:第一次产生的交换文件名为 .index.php.swp

再次意外退出后,将会产生名为 .index.php.swo 的交换文件

第三次产生的交换文件则为 .index.php.swn

vim 的交换文件 .filename.swp

默认交换文件在打开文件的时候就会产生交换文件,正常退出的时候才会删除交换文件(断电,Ctrl+Z强制退出就不会删除),内容大致是这个样子。

所以我们在题目环境url后加上/index.php.swp 下载好之后放到kali里面

发现找不到该文件

因为swp文件为隐藏文件,而隐藏文件在文件名前会加 ’ . ’ 所以正确的文件名应为 .index.php.swp 

拖到kali里,搜索命令后可知:

vim -r                                   查看当前界面所有swp文件

vim -r index.php.swp           恢复swp文件并打卡

 4. .DS_Store

.DS_Store(英文全称 Desktop Services Store)是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮目录的自定义属性,例如文件的图标位置或者是背景色的选择。相当于 Windows 下的 desktop.ini

dirsearch 扫一下目录

python dirsearch.py -u http://  -e* -w /db/dicc.txt

在url里加入 /.DS_Store

下载好了之后,拖到kali linux环境里

cat DS_Store

 然后在环境url后面加入 文件里的 af121639af8b9aac82b96496a9541be1.txt

得到flag。

(4) Git泄露

 1. Log

Git泄露原因:

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

做这道题需要知道这个 git 相关的命令

Git命令知识点:

git log  显示从最近到最远的提交日志

git diff 简单的来说就是查看不同,具体用法如下:

1. git diff:是查看working tree与index的差别的。

2. git diff --cached:是查看index与repository的差别的。

3. git diff HEAD:是查看working tree和repository的差别的。其中:HEAD代表的是最近的一次commit的信息

git reset 可用于回退版本库

需要用到GitHack工具

git clone安装GitHack工具,在kali下输入命令:

git clone https://github.com/BugScanTeam/GitHack即可

在输入

python2 GitHack.py http://challenge-4c3e7defa5a11a51.sandbox.ctfhub.com:10800/.git/

 然后当前目录下多了一个dist,dist里有ctfhub题目url的目录。我们进入其中

git log 查看历史记录

 通过观察上面的日志信息,我们可以发现在第二次修改时add flag,可知flag就在第二次修改时加入文件中,使用git reset这一个版本回退命令来查看flag

命令:git reset --hard +对应版本的commit

然后我们得到了一个文本文件,cat得到flag

 2. Stash

git stash 的作用
git stash用于想要保存当前的修改,但是想回到之前最后一次提交的干净的工作仓库时进行的操作.git stash将本地的修改保存起来,并且将当前代码切换到HEAD提交上.

最新的存储保存在refs/stash中.老的存储可以通过相关的参数获得,例如stash@{0}获取最新的存储,stash@{1}获取次新.stash@{2.hour.ago}获取两小时之前的.存储可以直接通过索引的位置来获得stash@{n}.

python2 GitHack.py http://challenge-9d44ad44f72524b9.sandbox.ctfhub.com:10800/.git/

git stash list

git stash pop 之后 会生成一个.txt文档,里面即flag

恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash应用并删除第二个:git stash pop stash@{1})

 也可以

cat .git/refs/stash

git diff + 上面输出的id 即可得到flag

 (3) HG泄露

 dirsearch.py 扫目录扫到 .hg目录 存在HG泄露

利用

perl rip-hg.pl -v -u http://challenge-18fb2108d17bf184.sandbox.ctfhub.com:10800/.hg

得到了 .hg目录

下载不全,没有下载下来flagtxt文件 提示也是下载不全需要自己手工

所以我们直接在url后加上/flag的txt文件名称 得到flag

<3> 密码口令

(1) 弱口令

直接抓包send to intruder 导入密码字典

爆破出来登录,得到flag。

(2) 默认口令

发现有验证码,估计爆破行不通了。

通过搜索我们得到:

 找到了亿邮邮件网关的默认口令。我们挨个试一下。

eyougw        admin@(you)这个可行,得到flag。

<4> xss

(1) 反射型

 这里的 send 相当于我们诱使别人点击了我们留下的链接

在xss.pt接受返回的信息。

 我们复制构造好的恶意xss链接,send to bot 让bot访问 从而在项目信息获得到bot的信息

 即可在cookie中得到flag

最后

以上就是繁荣太阳为你收集整理的CTFHub 技能树web<1> HTTP协议<2> 信息泄露(4) Git泄露<3> 密码口令<4> xss的全部内容,希望文章能够帮你解决CTFHub 技能树web<1> HTTP协议<2> 信息泄露(4) Git泄露<3> 密码口令<4> xss所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部