ctfhub_WEB基础关

发布时间 2023-08-30 17:57:40作者: 凉城厌心

WEB基础

一、web前置技能树(http协议)

1、请求方式

本关卡的要求是改变请求的方式,将get请求修改为CTFHUB请求

get请求方式

修改成CTFHUB的请求

2、302跳转

利用burpsuite抓包,查看状态码为302的跳转页面

3、Cookie

该关卡是修改Cookie的属性值

将请求包中的cookie的值,admin=0改为admin=1,重发请求就可以得到flag

4、基础认证

该关卡附带一个密码字典,下载密码字典。

  • 登录时随便输一个账号和密码,然后用burpsuite抓包查看,查看Basic后面的,发现是用base64编码后的账号和密码。

  • 利用burpsuite的爆破模式,将46后面的设置为变量进行爆破,假设账号就是admin,然后载入下载的字典,将字典中的密码转换为base64的编码

    • 选择变量

    • 设置payload

    • 进行攻击,然后查看结果

5、响应包源码

利用burp直接查看响应包的源码或者直接查看页面源代码,发现源码中有flag

二、信息泄露

1、目录遍历

目录遍历的话,发现每个文件点开都有4个文件,然后用burpsuite跑一遍

  • 遍历后的结果

  • 查看flag

2、PHPINFO

直接在页面按照ctrl+F进行搜索就可以拿到

3、备份文件下载

3.1、网站源码

利用目录扫描工具可以发现,有个压缩包www.zip,解压后查看,但是txt文本中就没有flag,此时可以在网站上访问,

网站源码

查看flag
3.2、bak文件

.bak 文件通常是备份文件的扩展名,它们用于存储原始文件或数据的副本,以防止数据丢失、损坏或其他不良情况发生。许多软件和系统都会使用 .bak 扩展名来标识备份文件。

3.3、vim缓存

用户在使用vim进行编辑的时候,以为意外退出时,会在当前目录生成一个备份文件,文件名格式为: .名字.swp
第一次意外退出生成 *.swp
第二次意外退出生成 *.swo
第三次意外退出生成 *.swn

在该关卡url后面输入/.index.php.swp,下载缓存文件,里面就有flag

3.4、.DS_Store

.DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。

直接输入.DS_Store,下载隐藏文件,和3.1一样,访问文件中的txt文件

4、Git泄露

常用命令

  1. git init:在当前文件夹创建一个新的Git仓库。
  2. git clone <url>:从远程仓库克隆一个副本到本地。
  3. git add <file>:将文件添加到暂存区,准备进行提交。
  4. git commit -m "message":提交暂存区中的更改到版本历史,附带一条提交消息。
  5. git status:显示工作目录中文件的状态,包括已修改、已添加和未跟踪等。
  6. git log:显示项目的提交历史,包括作者、日期和提交消息。
  7. git branch:显示当前仓库中的所有分支。
  8. git checkout <branch>:切换到指定的分支。
  9. git merge <branch>:将指定分支的更改合并到当前分支。
  10. git pull:从远程仓库拉取最新的更改到本地。
  11. git push:将本地的更改推送到远程仓库。
  12. git remote add <name> <url>:添加一个远程仓库到本地仓库的配置。
  13. git diff:显示工作目录中未暂存的更改。
  14. git reset <file>:从暂存区移除文件,但保留本地更改。
  15. git reset --hard HEAD:将工作目录中的文件恢复到最近的提交状态。
  16. git stash:将未完成的更改保存到一个临时的储藏区,以便切换分支或进行其他操作。
  17. git tag <name>:创建一个标签来标记特定的提交,通常用于版本号标识。
  18. git show:查看某个特定提交的详细信息,包括作者、提交日期、提交消息以及具体的更改内容。
4.1 log

利用工具BugScanTeam的GitHack,使用的python脚本,python环境是2.x,利用kali里面的python环境来解题

  • 下载工具git clone https://github.com/BugScanTeam/GitHack.git

  • 利用工具获得.git文件夹

    python2 GitHack.py http://challenge-4daa2936d94fcf55.sandbox.ctfhub.com:10800/.git
    
  • 进入文件夹目录下

  • 使用git log命令

  • 使用git show命令

4.2 Stash

常用的 git stash 相关命令包括:

  1. git stash list:显示所有保存的工作状态(stash)的列表。
  2. git stash apply:将最新的 stash 恢复到工作目录,但不删除 stash。
  3. git stash pop:将最新的 stash 恢复到工作目录,并从 stash 列表中删除该 stash。
  4. git stash drop <stash_id>:删除指定的 stash。

开始解题

  • 先利用工具将.git问下克隆下来,然后进入克隆下来的文件中

  • 使用git stash apply命令

  • 使用git add 173453028431016.txt 将这个文件添加进来

  • 查看该txt文件

4.3、Index

在 Git 中,"Index" 也被称为 "暂存区"(Staging Area),它是 Git 版本控制系统中的一个重要概念。暂存区是在提交(commit)之前的一个中间状态,用于准备要包含在下一次提交中的更改。

当你在工作目录中对文件进行更改后,这些更改并不会立即被提交到版本历史中,而是需要通过暂存区进行中间存储。换句话说,工作目录中的文件更改需要经过两个步骤才能成为版本历史的一部分:首先将更改添加到暂存区,然后将暂存区的内容提交为一个新的版本。

  • 先利用工具将.git问下克隆下来,然后进入克隆下来的文件中
  • 利用命令git show查看flag