hackthebox-admirer (adminer渗透 & python-library-hijacking)

本文详述了一次针对Admirer靶机的渗透过程,包括通过扫描发现的admin-dir目录,利用FTP获取信息,通过Adminer数据库管理工具进行渗透,并尝试提权。在提权阶段,由于无法直接修改Python库,作者使用了Python-library-hijacking技术,创建假冒的shutil库以实现目标。
摘要由CSDN通过智能技术生成

1、扫描

端口很常规,21进去看看有无价值文件,22可能有登录,80信息搜集

C:\root> nmap -A 10.10.10.187
Starting Nmap 7.80 ( https://nmap.org ) at 2021-01-23 13:28 CST
Nmap scan report for 10.10.10.187 (10.10.10.187)
Host is up (0.41s latency).
Not shown: 997 closed ports
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     OpenSSH 7.4p1 Debian 10+deb9u7 (protocol 2.0)
| ssh-hostkey: 
|   2048 4a:71:e9:21:63:69:9d:cb:dd:84:02:1a:23:97:e1:b9 (RSA)
|   256 c5:95:b6:21:4d:46:a4:25:55:7a:87:3e:19:a8:e7:02 (ECDSA)
|_  256 d0:2d:dd:d0
判别一棵二叉树是否为二叉排序树的算法如下: 1. 对于一棵二叉树来说,如果它为空,则它是一棵二叉排序树,否则进行第2步。 2. 检查左子树是否为二叉排序树,如果是,则进行第3步,否则返回false。 3. 检查右子树是否为二叉排序树,如果是,则进行第4步,否则返回false。 4. 检查根节点的值是否大于左子树中最大的值,并且小于右子树中最小的值,如果是,则返回true,否则返回false。 下面是该算法的 C++ 代码实现: ```c++ bool isBST(TreeNode* root, int minValue, int maxValue) { if (root == nullptr) { return true; } if (root->val <= minValue || root->val >= maxValue) { return false; } return isBST(root->left, minValue, root->val) && isBST(root->right, root->val, maxValue); } bool isBST(TreeNode* root) { return isBST(root, INT_MIN, INT_MAX); } ``` 其中,isBST 函数是递归实现的,用于判断给定二叉树是否为二叉排序树。isBST 函数的第一个参数是当前待判断的二叉树的根节点,第二个参数是当前节点所能取到的最小值,第三个参数是当前节点所能取到的最大值。函数的返回值为true表示当前二叉树是二叉排序树,返回false表示当前二叉树不是二叉排序树。 isBST 函数的实现过程如下: 1. 如果当前节点为空,则返回true。 2. 如果当前节点的值不在[minValue, maxValue]范围内,则返回false。 3. 递归检查左子树是否为二叉排序树,传入的最大值为当前节点的值。 4. 递归检查右子树是否为二叉排序树,传入的最小值为当前节点的值。 最终,isBST 函数的返回值即为当前二叉树是否为二叉排序树的判断结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值