025-85513261   13611587156(微信)

安全建设-攻防思路及实践(二)

分享到:
点击次数:497 更新时间:2022年03月13日17:51:14 打印此页 关闭

注明:全文转自 leveryd的原创

背景

有一个挖src的老套路:".git目录"信息泄漏 + 代码审计。

当网站可以访问".git/index"时,可以用GitHack — 一个git泄露利用脚本[1]工具还原整个项目工程。然后对源码做代码审计,尝试挖掘漏洞。

实际的案例可以见 百姓某处信息泄露可GET SHELL[2]

个人体会:对于企业内部业务的源码做代码审计来挖掘漏洞,难度比挖"成熟的框架、组件"容易太多了,都不需要攻击者掌握多少代码审计中的偏门技巧等。比如源码中非常可能就有api认证用的token,拿着token就能像也业务方一样调用api。

详细过程

  • 为啥会出现".git目录信息泄漏"?

    根据个人有限的经验来看,很多公司都会建设devops平台,开发只需要在平台上提交上线单,就可以自动地拉取代码、编译构建、保存版本、发布部署。

    在"拉取代码"这一环节,devops平台从内部git平台上获取源码,其中就包括".git目录"。

    在php、python等非编译语言的项目构建过程中,非常有可能就是简单地将整个项目全部拷贝到"产出目录"中,此时".git目录"也会跟着被拷贝过去。

    等到了"发布部署"环节,".git目录"自然就会出现在线上了。

  • 利用".git目录信息泄漏"还原"项目工程"时遇到的问题

    偶尔会遇到的一个问题是:不一定能访问".git/index"就一定能用工具还原出整个项目。

    这个原因之前没有深究过,有可能是".git/objects"目录下的文件无法访问。

    遇到这种情况时,还可以:

    * .git/index中包含了所有的文件名,可以直接访问文件名对应的url。比如暴露出的js文件,可以直接下载后找api信息。
    * .git/config中包含了配置信息
    * 尝试手动下载 .git/objects 目录下的 "项目工程"文件

    另外更常见的问题是会遇到防火墙。这个时候可以试试 .git/./index 、 .git///index 、/?/../.git/index 等

成果

漏洞(包括类似"git目录"等信息泄漏)均已提交并修复,包括并不限于:

  • [评级严重-360游戏]
  • 两个 [评级低危-腾讯]
  • 两个 [评级中危-腾讯]

2021年了,感觉 ".git目录"这种信息泄漏少见了很多。

安全建设

对于".git等文件信息泄漏"和"代码安全",这两类风险,在企业安全建设中是怎么防范的呢?

  • 怎么减少".git等文件信息泄漏"安全风险?

    其实不仅仅是 ".git/index",还包括".svn/entries"、"网站源码.tar.gz" 等文件都有可能暴露在公网给人下载,继而泄漏项目源码。

    根据个人有限的经验来总结,有以下方式减少风险:

    * 在devops平台做检查,比如"发布部署"前,检查当前产出目录下是否有敏感文件
    * 在waf中添加规则,来防护"敏感文件泄漏"
    * 周期性扫描
    * 依赖开发的安全意识,在"编译构建"时将".git目录"等敏感文件删除

    感觉资产覆盖到位,确实能消灭这种风险。

  • 怎么减少"代码安全"安全风险?

    根据个人有限的经验来总结,有以下方式减少风险:

    * 建设白盒扫描,嵌入到devpops流程中
    * 安全部门提供安全sdk、安全编码规范
    * 其他不限于"代码安全"的应用安全产品,包括 rasp、黑盒扫描
    * 依赖开发的安全意识和安全编码水平
    * fuzz平台,类似[oss-fuzz](https://github.com/google/oss-fuzz "oss-fuzz")

    个人感觉,由于 技术难度、有些场景安全技术无法解决、运营上要求非常低的误报 等原因,即使手段这么多,但是风险太难完全消除了。

总结

".git"目录信息泄漏 + 人工代码审计 这个套路 现在感觉行不通。

另外有一个小问题:有师傅知道企业安全建设中怎么用威胁情报来拉黑ip的话,请公众号留言告诉我。

上一条:一款好用的财务软件——U+通用财务 下一条:安全建设-攻防思路与实践(一)