WEB基础
一、web前置技能树(http协议)
1、请求方式
本关卡的要求是改变请求的方式,将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,此时可以在网站上访问,
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泄露
常用命令
git init
:在当前文件夹创建一个新的Git仓库。git clone <url>
:从远程仓库克隆一个副本到本地。git add <file>
:将文件添加到暂存区,准备进行提交。git commit -m "message"
:提交暂存区中的更改到版本历史,附带一条提交消息。git status
:显示工作目录中文件的状态,包括已修改、已添加和未跟踪等。git log
:显示项目的提交历史,包括作者、日期和提交消息。git branch
:显示当前仓库中的所有分支。git checkout <branch>
:切换到指定的分支。git merge <branch>
:将指定分支的更改合并到当前分支。git pull
:从远程仓库拉取最新的更改到本地。git push
:将本地的更改推送到远程仓库。git remote add <name> <url>
:添加一个远程仓库到本地仓库的配置。git diff
:显示工作目录中未暂存的更改。git reset <file>
:从暂存区移除文件,但保留本地更改。git reset --hard HEAD
:将工作目录中的文件恢复到最近的提交状态。git stash
:将未完成的更改保存到一个临时的储藏区,以便切换分支或进行其他操作。git tag <name>
:创建一个标签来标记特定的提交,通常用于版本号标识。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
相关命令包括:
git stash list
:显示所有保存的工作状态(stash)的列表。git stash apply
:将最新的 stash 恢复到工作目录,但不删除 stash。git stash pop
:将最新的 stash 恢复到工作目录,并从 stash 列表中删除该 stash。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