别想偷我源码:通用的针对源码泄露利用程序的反制(常见工具集体沦陷)
0x00 关于本文 是的没错 我又去蹂躏安全工具了,和以前我单个单个地欺负不同,这次发现的攻击手段是通用的,可以通杀大部分源码泄露漏洞利用程序。 本文会包含常见泄露漏洞的原理介绍(Git/Svn),利用工具自身的安全风险分析,简单易懂的POC制作方式,针对常见工具的攻击测试,以及提升反制威力的方法及展望。 0x01Git泄露:漏洞原理介绍 Git是什么大家应该都很清楚(不知道Git是啥的人多半是不肯来光临这个博客的) 有些开发人员直接把代码clone到服务器的web目录来部署,但是开发人员或许不知道的是,clone下来的不只是代码,还有一个.git目录,这个目录被叫做版本库。攻击者可以通过访问这个目录,解析其中的文件,dump整站源码。 想要更深入地理解Git泄露漏洞,了解攻击流程,就需要了解.git目录的结构 tree一下这个目录,发现内容如下 index文件中包含了这个项目中的各个文件的信息,包括文件路径和Git对象的对应的40位哈希值。在这里我们不需要对Git对象理解的很深入,只需要知道里面包含了文件内容,是让攻击者垂涎欲滴的东西就可以了。 想要拿到Git对象,就需要转去objects目录。objects目录存放了所有的git对象,对于一个git对象,40位哈希的前两位会作为目录名,而后面的38位会作为文件名,存在objects下面。举个例子,一个Git对象那个的hash是cb75d8439f004f41d5f85ffa5f8d017df395651a,那么它就会被存在cb/75d8439f004f41d5f85ffa5f8d017df395651a。 知道了这些信息之后,就可以知道Git泄露攻击是如何进行的了,首先攻击者访问index文件,解析后得到文件名和对象哈希。接着按着对象哈希一个一个去objects目录获取到Git对象,解析后得到文件。 0x02 Git泄露利用工具的安全风险 显而易见的,手动解析inde...
评论
发表评论