<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. CTFHub技能树web(持续更新)--密码口令--弱口令

    弱口令 这道题很简单,因为提示了弱口令,经过尝试,明户名是admin,密码是123456,但是我们如过按照正常的结题思路的话,应该是先尝试几个常用的弱口令,都不对,进行爆破,那么我们讲一下爆破的过程, ...

  2. CTFHub技能树web(持续更新)--密码口令--默认密码

    默认密码 打开先抓包,发现验证码并不是前端验证,而是在后端,并且回包里面也没有,图片型验证码爆破还是有点麻烦的,感觉一下没了思路,参考了大佬的wirte up,发现居然去网上搜索这个系统的默认密码,好 ...

  3. CTFHub技能树web(持续更新)--web信息泄露--目录遍历

    目录遍历 打开网页,点击寻找flag,发现4个目录,我们先随便点击一个,看看有什么变化: 我们随便点击了一个1,发现url后面对了个1,并且又出现了四个文件目录,再试试: 我们有点击进去了一个,发现u ...

  4. CTFHub技能树web(持续更新)--web前置技能(HTTP协议)--302跳转

    302跳转 首先题目很明显的告诉我们存在页面重定向,所以我们现抓包: 在历史记录里面我们看到了这个302跳转,在他的回包里面,我们看到了这个Location是index.php,那么我们登陆到这里面看 ...

  5. CTFHUB技能树(全详细解析含进阶)

    CTFHUB技能树 HTTP协议 请求树 302跳转 Cookie 基础认证 响应包源代码 信息泄露 目录遍历 phpinfo 备份文件下载 网站源码 bak文件 vim缓存 .DS_Store Gi ...

  6. CTFHub技能树 Web-SSRF 302跳转 Bypass

    CTFHub技能树 Web-SSRF 302跳转 Bypass hint:SSRF中有个很重要的一点是请求可能会跟随302跳转,尝试利用这个来绕过对IP的检测访问到位于127.0.0.1的flag.p ...

  7. Ctfhub解题 web RCE

    Ctfhub解题 web RCE 1. eval执行 2.文件包含 3.php://input 4.读取源代码 5.远程包含 6.命令注入 7.过滤cat 8.过滤空格 9.过滤目录分隔符 10.过滤 ...

  8. CTFHub技能树之备份文件下载(胎教级解析)

    文章目录 前言 一,网站源码 二,bak文件 三,vim缓存 四,.DS_Store 总结 前言 ctfhub技能树--web--信息泄露--备份文件下载 总共四个题目 一,网站源码 打开题目以后,出 ...

  9. CTFHUB技能树之Web

    web web前置技能 参考链接 -操作系统 -数据库 -HTML/CSS -程序语言 HTTP协议 0x01 请求方式 1)HTTP Method 是可以自定义的,并且区分大小写 可以通过抓包更改其 ...

  10. CTFHUB技能树题目解析(持续更新)

    CTFHUB题目解析(持续更新) Web 信息泄露 目录遍历 PHPINFO 备份文件下载 网站源码 bak文件 vim缓存 .Ds_Store Git泄露 Log Stash Index SVN泄露 ...

最新文章

  1. 你住的城市7.5亿年前长啥样?这张互动地图能让你看到
  2. 关于ospf区域认证以及虚链路之间的配置问题
  3. 猫猫学IOS(四十)UI之核心动画_抖动效果_CAKeyframeAnimation
  4. SecureCRT自动登录
  5. python的os模块批量获取目标路径下的文件名
  6. VTK:标签放置映射器用法实战
  7. ORACLE 异常错误处理
  8. 四轴PID控制算法详解(单环PID、串级PID)
  9. 在Eclipse上创建JSF / CDI Maven项目
  10. 游戏入口点GameEntryPoint
  11. 基于android的课程画图设计,基于Android的智能终端通信勘察设计系统绘图模块的设计与实现...
  12. 华为P30真机屏幕盖板曝光:超窄边框水滴屏
  13. 黄聪:WordPress动作钩子函数add_action()、do_action()源码解析
  14. SDL2源代码分析4:纹理(SDL_Texture)
  15. 最全的Discuz! x2去除forum.php尾巴的方法
  16. VC++ IE缓存管理研究
  17. android 去广告浏览器,Adblock Browser(去广告浏览器) V1.3.1 安卓版
  18. Mac使用手册:如何检查 Mac 或 iOS 设备仍在保修范围内
  19. MRP系统对生产型企业的作用
  20. Jquery实现右下角弹窗警告并且实现提示声

热门文章

  1. 操作系统同步互斥问题
  2. Spring 全家桶,永远滴神
  3. Error: Authentication fai1ed.解决办法
  4. 大陆打电话到香港要怎么打?那发信息呢?
  5. 【7gyy】笔者支招:巧设安全模式防攻击
  6. python实现画樱花树
  7. 高效c语言拧魔方算法,3阶魔方阵的算法
  8. 正则表达式中问号(?)的用法详解
  9. 读书,什么时候能改变命运
  10. 年薪45万阿里程序员想跳槽vivo,当他晒出期望工资,以为我看错了