网站代码安全审计之GO语言的漏洞检测

Go語言关键作为服务端编程语言,合适于许多程序猿一起开发设计大型软件,而且开发进度长,适用云计算技术的互联网服务。Go語言可以让程序猿迅速开发设计,而且在手机软件持续的提高全过程中,它能让程序猿更非常容易地开展维护保养和改动。Go語言是强种类語言,它结合了传统式编译型語言的精确性和开发语言的便捷性和富有表述性。

因为Go語言编码财务审计材料偏少,这儿就把近期学习培训的对Vulnerability-goapp新项目的财务审计全过程共享一下。全部财务审计全过程融合编码安全性漏洞扫描工具和人工服务财务审计,期内也发觉编码安全审计专用工具的少报乱报难题,下列将会细述。

财务审计目标

历经在github上搜索,发觉https://github.com/Snow-HardWolf/Vulnerability-goapp这一新项目合适新手入门,包含了普遍的goweb网络安全问题。Gitclone以后在golandIDE里开启见到以下新项目构造:

Asserts文件目录是静态数据資源文档,绕过。

Pkg文件目录是应用go保持的业务逻辑编码,重中之重关心。

Runenv是数据库查询环境变量和转化成数据库查询的脚本制作,简易看看就行。

Trap文件目录是一个CSRF系统漏洞的演试,重中之重关心。

Views文件目录是前端开发主视图网页页面,简易看看就行。

编码安全扫描

最先人们应用编码安全性漏洞扫描工具扫描仪,发觉4类高风险,2类中危系统漏洞,人们各自开展认证。

指令引入-数据流分析

在pkg/admin/admin.go的52行发觉指令引入,形象化能够看得出取下cookie的內容拼凑指令句子实行。

人们看一下污渍追踪全过程:

人们根据污渍追踪解析全过程能够确定它是一个高风险系统漏洞。

接下去在具体自然环境中演试一下,根据nc接收数据确定可实行shell指令。

不安全性的传送—文本挖掘

在main.go的156行,应用了http协议书开展通讯,存有密文传送数据的难题

秘钥硬编号-编码钢结构设计

在asserts/js/bootstrap.bundle.js文档的360行发觉秘钥硬编号,但是人工服务确定这儿并不是秘钥,是专用工具的乱报

个人信息安全泄漏-数据流分析

在pkg/admin/admin.go的86行检验到个人信息安全泄漏,这儿见到立即把客户键入的登陆密码复印到控制面板了,是一种不安全性的处理过程。

cookie未开启httponly-编码钢结构设计

在pkg/admin/admin.go的110行检验到cookie未开启httponly,低危系统漏洞。

分享: