• vulnhub Potato: 1


    渗透思路:

    nmap扫描端口 ---- ftp匿名登录下载网站代码 ---- gobuster扫描网站目录 ---- 利用php type juggling漏洞登录网站 ---- 利用LFI获取/etc/passwd ---- john爆破webadmin用户的密码 ---- sudo配合目录遍历提权

    环境信息:

    靶机:192.168.101.98

    攻击机:192.168.101.34

    具体步骤:

    1、nmap扫描端口

    sudo nmap -sV -sC -p- 192.168.101.98

    2、ftp匿名登录下载网站代码

    由于上一步中nmap扫描到ftp端口2112可以匿名登录,所以用anonymous登录靶机2112端口,并下载文件index.php.bak

    1. ftp 192.168.101.98 2112
    2. ftp> get index.php.bak

    3、gobuster扫描网站目录

    gobuster dir -u http://192.168.101.98 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

    扫描到/admin和/potato

    依次访问发现http://192.168.101.98/admin/是一个登录页面

    提交登录信息的表单和index.php.bak中的表单一样一样的

    4、利用php type juggling漏洞登录网站

    查看index.php.bak文件的php代码部分

    我一开始以为是一个密码硬编码问题,但是用用户名admin,密码potato并不能成功登录

    后来发现判断用户名是否为admin,密码是否为$pass时用的是==(仅判断值是否相等,不判断类型是否相等),而不是===(类型相等且值相等)

    if (strcmp($_POST['username'], "admin") == 0  && strcmp($_POST['password'], $pass) == 0)

    在网上找到一种利用方法,最终利用的是PHP中NULL == 0的特性

    https://owasp.org/www-pdf-archive/PHPMagicTricks-TypeJuggling.pdf

    简单来说就是原本password参数应该提交一个字符串,但这里提交一个空数组,这样strcmp()的结果就是NULL,而根据下表,php中松散比较(==)时NULL等于0,因此满足条件,可以成功登录

    具体操作如下:

    1、将burp的intercept打开

    2、在http://192.168.101.98/admin/登录

    3、抓到上图报文之后,将请求体改为

    username=admin&password[]=

    4、关掉burp的intercept,即可登录成功

    5、利用LFI获取/etc/passwd

    点击上图中的dashboard,来到http://192.168.101.98/admin/dashboard.php

    点Logs来到http://192.168.101.98/admin/dashboard.php?page=log,选择一个log文件,再点击Get the log按钮

    burp中抓到的POST请求体中有个file参数,其值为log文件名

    尝试LFI,将log文件名替换为../../../../../../etc/passwd,得到/etc/passwd文件的内容

    6、john爆破webadmin用户的密码

    上图中发现/etc/passwd中包含webadmin用户md5加密的密码,可以尝试用john破解。

    先将上图中靶机/etc/passwd的内容保存为文件passwd,然后用john爆破

    john passwd

    得到webadmin的密码dragon

    以用户名webadmin,密码dragon进行ssh登录

    ssh webadmin@192.168.101.98

    获得第一个flag

    7、sudo配合目录遍历提权

    sudo -l发现webadmin可以以任何用户的身份执行/bin/nice /notes/*

    查看/bin/nice和 /notes/,以及/notes/下文件的权限,都无法修改或新建文件

    尝试能否在执行/bin/nice时跳出/notes/目录

    sudo /bin/nice /notes/../bin/bash

    成功提权

  • 相关阅读:
    Mybatis-plus 自动生成代码
    (续)SSM整合之spring笔记(AOP 动态代理)(P094—P098)
    【JVM笔记】导出内存映像(dump)文件
    【AIFEM案例操作】水轮机转轮强度和模态分析
    浅谈双指针技巧(一)---通过双指针判断链表成环问题
    程序员兼职那些事儿
    国风频频出圈!品牌如何借势发力?小红书数据查询3招玩转国风
    【每日一题】Day 41 选择题
    LeetCode025之K 个一组翻转链表(相关话题:链表逆序)
    盘点52个Python各行各业管理系统源码Python爱好者不容错过
  • 原文地址:https://blog.csdn.net/elephantxiang/article/details/126355733