【WechatBot】基于内存注入下的微信机器人

本文仅作技术分享,提醒各位注意网络应用安全性,请勿用于其他用途,否则后果自负。
前几天写过一篇这样的文章,但是耐不住WgpSecBot总是崩溃,于是打算自己写一个
【脚本】基于WgpSecBot的比赛推送
但是问题又来了,自从腾讯封了Web和UOS协议后,就再也弄不到机器人了。
但是苍天不负有心人,我找到了这个Github-wechat-bot
这个版本是基于对Windows下的微信进行内存注入实现的

继续阅读【WechatBot】基于内存注入下的微信机器人

【WSL】WSL2-Ubuntu安装CUDA

某一天,在摸鱼的时候被人拍了一下,叫我用Kali跑一下hashcat,因为hashcat可以调用CUDA(显卡)模块,加速爆破
虽然实际上,我的CPU跑起来也很快
file
但是,既然来了就研究一下。但是我又不想装多系统,那么就该想想怎么在WSL里面调用CUDA了。

继续阅读【WSL】WSL2-Ubuntu安装CUDA

【WEB】POP链的构造

序列化与反序列化

序列化是为了方便于数据的传输,将对象转换为字节流,载入网络/磁盘IO流中,可以通过对应方法将其还原出来。

序列化与编码的区别

对象===【序列化】==>消息===【编码】==>字节流

总结来说就是,先把对象拆开变成一串可以还原成原对象的字符串,再通过特定编码,变为网络传输的字节流

PHP中的魔术方法

__sleep() //使用serialize时触发
__wakeup() //执行unserialize()时,先会调用这个函数
__construct() //对象创建时触发
__destruct() //对象被销毁时触发
__call() //在对象上下文中调用不可访问的方法时触发
__callStatic() //在静态上下文中调用不可访问的方法时触发
__get() //用于从不可访问的属性读取数据
__set() //用于将数据写入不可访问的属性
__isset() //在不可访问的属性上调用isset()或empty()触发
__unset() //在不可访问的属性上使用unset()时触发
__toString() //把类当作字符串使用时触发
__invoke() //当脚本尝试将对象调用为函数时触发
__set_state()//调用var_export()导出类时,此静态方法会被调用。
__clone()//当对象复制完成时调用
__autoload()//尝试加载未定义的类
__debugInfo()//打印所需调试信息

继续阅读【WEB】POP链的构造

【脚本】Push镜像到Dockerhub

首先你要自己制作一个Docker镜像,这个就不再赘述了,相信各位都会了

  1. COMMIT你的镜像,-p可选,为commit时暂停容器
    docker commit <容器ID> <镜像名:版本号>

    file

  2. 登录你的Dockerhub
    按提示输入账号密码

    docker login
  3. 修改规范你的镜像名
    规范为<注册用户名/镜像名>
    可以通过tag指令修改镜像名

    docker tag <旧镜像名> <新镜像名>
  4. 推送至仓库,版本号可填latest,意思是最新的容器
    docker push <镜像名:版本号>

    file
    登录Dockerhub就确认已经推送上了
    file
    如果你在windows下,且有Docker on desktop,你可以通过这样操作登录,直接push
    file

梅开二度:记得给Docker换源,不然慢死,参考脚本如下
【脚本】Linux换源汇总

【CTFd】靶场安装与配置(Docker一键配置版)

【CTFd】靶场安装与配置这由于上一次的配置有点小问题,主要是Whale插件不再支持CTFd3.x版本,于是找了个新的插件使用
并且找到了更好的解决方式,不用那么麻烦配环境了
CTFd-Whale最新维护仓库
这次我采用Docker一键部署,并且稍加改动添加了中文包
成果图
file

继续阅读【CTFd】靶场安装与配置(Docker一键配置版)