Go小记 Gorm模型
官方中文文档 0、安装12go get -u gorm.io/gormgo get -u gorm.io/driver/sqlite 1.连接到数据库GORM 官方支持的数据库类型有:MySQL, PostgreSQL, SQLite, SQL Server 和 TiDB 连接到mysql数据库12345dsn := "root:root@tcp(127.0.0.1:3306)/gormtest?charset=utf8mb4&parseTime=True&loc=Local"db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})if err != nil { panic("failed to connect database")} 2. GORM模型gorm.ModelGORM 提供了一个预定义的结构体gorm.Model。其中包含常用的字段 123456type Model struct { ID ...
Go小记 使用Go实现SSH客户端
一、前言SSH(Secure Shell)是一种用于在不安全网络上安全访问远程计算机的网络协议。它通过加密的方式提供远程登录会话和其他网络服务,保证通信的安全性和数据的完整性。 本文使用golang.org/x/crypto/ssh包来实现SSH客户端 可以通过go get -u golang.org/x/crypto/ssh 来引包。其中参数-u指定从远程仓库下载最新版本 二、开发(1) 创建ssh客户端配置使用ssh.ClientConfig来创建一个结构体. 指定用户名User 和认证方法 Auth。忽略主机密钥验证,允许连接到任意服务器。 1234567config := &ssh.ClientConfig{ User: "Yliken", //用户名 Auth: []ssh.AuthMethod{ ssh.Password("Yliken"), //密码、 }, ...
SOCKS5协议
SOCKS5协议连接过程SOCKS5服务器默认监听的端口是1080端口 连接到服务器:SOCKS5客户端会通过TCP三次握手与SOCKS5服务器建立连接 协商过程:首先SOCKS5客户端会发送一个请求到服务器。告诉服务器自己支持什么方法。并带有一个方法列表(例如:A,B,C)。然后SOCKS5服务端会返回一个请求,告诉客户端要使用的方法(例如:B) 然后客户端就会用过服务器选定的方法来验证。验证通过之后就会开始请求代理访问了 请求访问:客户端首先会向SOCKS5服务器发送一个请求。 告诉SOCKS5服务器自己想要发送的请求(例如: 想要通过TCP连接baidu.com的 443端口)。然后SOCKS5服务器会向baidu.com的443端口发送一个请求连接。将SOCKS5请求的内容原封不动的发送给目标。 然后再将目标的返回包原封不动的发送给SOCKS客户端 断开连接:...
ImaginaryCTF 2024
Webjournal题目给出了index.php的源码 123456789101112131415161718192021222324<?phpecho "<p>Welcome to my journal app!</p>";echo "<p><a href=/?file=file1.txt>file1.txt</a></p>";echo "<p><a href=/?file=file2.txt>file2.txt</a></p>";echo "<p><a href=/?file=file3.txt>file3.txt</a></p>";echo "<p><a href=/?file=file4.txt>file4.txt</a></p>";echo...
Golang net/http包客户端的使用
Go发起HTTP请求基本方法请求1. GET请求使用http.Get快速发起一个GET请求 123456789func get() { resp, err := http.Get("http://httpbin.org/get") if err != nil { panic(err) } defer func() { _ = resp.Body.Close() }() content, err := io.ReadAll(resp.Body) fmt.Println(string(content))} content返回的是一个字节数组 2.POST请求使用http.Post可以快速发起一个POST请求 123456789func post() { resp, err := http.Post("http://httpbin.org/post", "", nil) if err != nil...
Hacker_Kid-v1.0.1
靶机下载链接:Hacker kid: 1.0.1 一、信息收集1、主机发现使用arp-scan扫描内网主机 2.端口扫描使用nmap -T4 -sV -p 0-65535 192.168.22.137进行端口扫描 二、打靶靶机在 80 9999端口开放了web服务。。在53端口开放了DNS服务 访问web页面 9999端口开放一个登录页面 80端口这边前端源码中说让用GET传参传一个page_no参数 传入page_no = 1页面多了一个红字 传入page_no = 21时给了一个域名 用dig工具查询DNS信息 并指定DNS服务器为192.168.22.137得到了一个新的域名 修改一下本地host文件 进入这个地址,是一个注册账号的页面。如果Email不正确会进行回显 数据包是以XXE文档进行传输的,试一下XXE注入 可以进行文件读取 有一个saket用户,用PHP伪协议去读取.bashrc文件 为什么要读取.zshrc文件呢? 1.bashrc 文件是一个用于配置 Bash shell...
DownUnderCTF赛题复现
题目连接 WEBco2挺简单的原型链污染 route.py文件中设置flag的值 在/get_flag路由汇总如果flag == "true"则返回flag 在/save_feedback路由汇总调用了merge函数 123456789101112def merge(src, dst): for k, v in src.items(): if hasattr(dst, '__getitem__'): if dst.get(k) and type(v) == dict: merge(v, dst.get(k)) else: dst[k] = v elif hasattr(dst, k) and type(v) == dict: merge(v, getattr(dst, k)) else: setattr(dst, k,...
lazySysAdmin
一、信息收集1、主机发现使用arp-scan来寻找存活的主机 192.168.22.135是目标地址 2、端口扫描使用nmap对目标端口进行扫描nmap -p 0-65535 -sV -T4 192.168.22.135 进入web页面,发现web根目录下只是一个静态页面 3.目录扫描 发现存在wordpress站点 提示myname is togie 收集WordPress上面的用户名 二、打靶利用收集到的用户名进行密码进行暴力破解,但是进行了很长时间也没爆破出来。 靶机开启了samba服务 就直接连接samba 没有得到任何信息 使用enum4linux来枚举到samba服务器上面的信息 开启了匿名共享 share$列出共享的内容 deets.txt文件泄露服务器密码 登录上 togie可以sudo提权 做法2目录扫描时候扫到了一个phpmyadmin 任何samba也泄露了wp的配置文件。里面记录着数据库用户Admin的账号和密码 登录进去phpmyadmin 发现一个表也查看不了 可以用show columns from...
driftingblues2
一、靶机安装VMware打开靶机 定义好虚拟机的路径,进行安装 安装后网卡改为nat 然后还需要按照看完这篇 教你玩转渗透测试靶机Vulnhub——DriftingBlues-2进行网卡配置 二、信息收集1.主机发现 其他的ip地址都是我其他虚拟机的ip除了192.168.22.132 2.端口扫描 80端口开启了web服务 访问 就一个图片背景的网页。没什么东西 3.目录扫描 三、打靶流程根据目录扫描结果推测是用wordpress搭建的博客,博客根目录在/blog 点击网页中的链接会调转到driftingblues.box域名下 配置一下本地hosts文件 都是些文章,没找到什么重要信息 使用wpscan来收集wordpress用户名 wpscan --url "http://driftingblues.box/blog" --enumerate u 此时也要配置一下kali中的/etc/hosts文件 找到用户名albert 进行弱口令爆破wpscan --url http://driftingblues.box/blog/ -P...
DC-4
一、靶机安装靶机下载地址DC: 4 下载后将解压zip包得到ova文件,然后用VMware打开ova文件 然后给靶机分配好名字和存储位置后导入 二、主机发现使用arp-scan进行主机发现 三、端口扫描使用nmap -p 0-65535 -T4 -sV...