摘要: 0x00 弱口令扫描器插件的实现 弱口令扫描器的代码结构 ● cmd包为命令行入口的实现。 ● logger包为log模块的实现。 ● models包为扫描器数据结构的实现。 ● plugins包为扫描插件包。 ● util包为工具函数的实现,如读取文件、扫描任务调度等。 ● vars包定义了项目中 阅读全文
posted @ 2023-04-13 11:17 MeetA 阅读(212) 评论(0) 推荐(0)
摘要: 0x00 全连接与半连接的合并 前面已经开发了TCP全连接与TCP半连接端口扫描器,为了方便使 用,接下来将两种扫描器合并,命令行参数如下: go run main.go -iplist ip_list -port port_list -mode syn -timeout 2 - concurren 阅读全文
posted @ 2023-04-13 11:17 MeetA 阅读(78) 评论(0) 推荐(0)
摘要: 0x00 半连接 TCP半连接端口扫描器可以复用前面开发好的TCP全连接端口扫描 器的代码,只需要将执行全连接扫描的Connect(ip string, port int)函数修改为半连接扫描的函数即可,代码片断如下所示 func SynScan(dstIp string, dstPort int) 阅读全文
posted @ 2023-04-13 11:17 MeetA 阅读(163) 评论(0) 推荐(0)
摘要: 0x00 扫描器并发的实现 使用sync.WaitGroup与channel配 合实现的并发方式,代码片断如下所示 func RunTask(tasks []map[string]int) { wg := &sync.WaitGroup{} // 创建一个buffer为vars.threadNum 阅读全文
posted @ 2023-04-13 11:17 MeetA 阅读(50) 评论(0) 推荐(0)
摘要: 0x00 TCP全连接端口扫描器基本 TCP全连接端口扫描器是最基础的扫描器,它的原理是调用 Socket的connect函数连接到目标IP的特定端口上,如果连接成功说明 端口是开放的,如果连接失败,说明端口没有开放。 Go语言的net包提供的Dial与DialTimeout函数,对传统的socke 阅读全文
posted @ 2023-04-13 11:17 MeetA 阅读(341) 评论(0) 推荐(0)
摘要: gin框架使用的是定制版本的httprouter,其路由的原理是大量使用公共前缀的树结构,它基本上是一个紧凑的Trie tree(或者只是Radix Tree)。具有公共前缀的节点也共享一个公共父节点。 0x00 Radix Tree 基数树(Radix Tree)又称为PAT位树(Patricia 阅读全文
posted @ 2023-04-13 11:14 MeetA 阅读(134) 评论(0) 推荐(0)
摘要: 0x00 切片 切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。切片是一个引用类型,它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合。 0x00 切片的定义 切片的声明: var name []T //name:表 阅读全文
posted @ 2023-04-13 11:14 MeetA 阅读(39) 评论(0) 推荐(0)
摘要: 0x00 map map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。 0x00 map的定义 go语言当中map的定义 map[KeyType]ValueType //KeyType:表示键的类型 //ValueType:表示键对应的值的类型。 m 阅读全文
posted @ 2023-04-13 11:14 MeetA 阅读(34) 评论(0) 推荐(0)
摘要: 0x00 数组 go语言中的数组声明的基本语法: // 定义一个长度为3元素类型为int的数组a var a [3]int var 数组名称 [元素数量]元素类型 比如:var a [5]int, 数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。 [5]int和[10]int 阅读全文
posted @ 2023-04-13 11:14 MeetA 阅读(19) 评论(0) 推荐(0)
摘要: 0x00 标识符与关键字 0x01 标识符 go语言中的标识符是由数字,字母和_(下划线)组成的,并且只能由字母和_开头。eg:abc,_,_abc,abc1 0x02 关键字 关键字是指编程语言中定义好的具有特殊意义的标识符。(关键字和保留字都不建议作为变量名) go语言中常用的25个关键字 br 阅读全文
posted @ 2023-04-13 11:14 MeetA 阅读(43) 评论(0) 推荐(0)
摘要: 0x00 基本数据结构 go语言中,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。 0x00 整型(int) 整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、ui 阅读全文
posted @ 2023-04-13 11:14 MeetA 阅读(55) 评论(0) 推荐(0)