首页 > 其他分享 >学习笔记-GO安全

学习笔记-GO安全

时间:2022-11-01 12:46:27浏览次数:68  
标签:GOPATH 笔记 学习 go https GO Go gokart com

GO安全


免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.


代码混淆


特征清除

相关文章

相关工具

  • boy-hack/go-strip - 清除 Go 编译时自带的信息
    # 打印出读取的信息
    go-strip -f binary.exe
    # 消除Go的编译信息
    go-strip -f binary.exe -a -output new.exe
    

禁用符号表和调试信息

虽然 Go 是编译成二进制后运行的,但其默认编译机制(Release With Debug Info)会泄漏一些信息。
默认情况下, Go 程序在运行出错时,会输出如上报错信息(在哪个线程,哪个文件,哪个函数,哪行出的错)。

这两个信息可以在编译时进行禁用:

go build -ldflags "-s -w” <package>

隐藏环境变量

报错信息中目录信息的来源是编译器运行时所处环境的环境变量。

编译时,Go 会从 $GOPATH 寻找我们的代码,从 $GOROOT 提取标准库。在打包时将 $GOPATH 改写为 $GOROOT_FINAL 并作为调试信息的一部分写入目标文件。

要隐藏真实的 $GOPATH ,需要在另外一个目录里对真实的 $GOPATH 创建一个软链接,编译器在寻找时就会把软链接的目录名写到最终文件里,从而达到隐藏目的。

ACTUAL_GOPATH = "~/Project"
export GOPATH = '/tmp'
export GOROOT_FINAL = $GOPATH
[ ! -d $GOPATH ] && ln -s "$ACTUAL_GOPATH" "$GOPATH"
[[ ! $PATH =~ $GOPATH ]] && export PATH=$PATH:$GOPATH/bin

Go代码审计

Go代码审计


免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.


环境搭建

推荐 goland 配置远程 debug 调试,参考笔记 goland 远程调试

相关工具

  • praetorian-inc/gokart - A static analysis tool for securing Go code
    go install github.com/praetorian-inc/gokart@latest
    gokart scan <directory>
    
    # 扫描远程项目
    gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -v
    # 指定分支
    gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -b actions_fix
    
  • madneal/sec-dog - goland sca 插件

相关文章

相关靶场


硬编码

通用关键词


命令执行

审计函数

exec.Command

点击关注,共同学习!
安全狗的自我修养

github haidragon

https://github.com/haidragon

标签:GOPATH,笔记,学习,go,https,GO,Go,gokart,com
From: https://www.cnblogs.com/haidragon/p/16847287.html

相关文章

  • 学习笔记-JAVA安全
    JAVA安全免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.CTFwritupBUU-Java逆向解密代码混淆h......
  • 学习笔记-JAVA代码审计
    JAVA代码审计免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.相关文章一次从内网到外网,黑盒到白盒的......
  • 学习笔记-JAVA反序列化
    JAVA反序列化免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.简介序列化是让Java对象脱离Java运......
  • Oracle 19C学习 - 16. 视图
    视图是什么视图几乎在所有的数据库软件中都存在。视图是在逻辑上代表一个或者多个表的数据子集,和同义词一样,都是映射关系,视图的功能和地位高于同义词。为什么使用视图......
  • python安全学习笔记-沙箱逃逸
    沙箱逃逸免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.相关文章初探Python沙箱逃逸IS-pwn-escape......
  • 学习笔记-pyc反编译
    pyc反编译相关文章py可执行文件反编译教程--exe转换pyPython代码保护|pyc混淆从入门到工具实现相关工具python反编译rocky/python-uncompyle6#例如有一......
  • 学习笔记-Python安全
    Python安全免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.代码混淆Hnfull/Intensio-Obfuscator:Ob......
  • 学习笔记-dotnet安全
    dotnet安全免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.教程aleenzz/.NET_study案例越权漏洞......
  • Python matplotlib 学习——建立画布和坐标系
    #导入包importmatplotlib.pyplotasplt#让图表在jupyter展示出来%matplotlibinline#解决中文乱码问题plt.rcParams["font.sans-serif"]='SimHei'#解决负号无法显示plt.......
  • Git相关学习
    Git是一个版本控制工具集中版本控制历史版本数据都在服务器上,如果服务器损坏,这样就会丢失所有数据,代表产品:SVN,CVS,VSS分布式版本控制历史版本信息都在用户本地,不担心服......