CVE-2019-11229详细分析 --git config可控-RCE

作者:LoRexxar’@知道创宇404实验室

2019年4月15号,gitea曾爆出过一个漏洞,恰逢当时对这个漏洞比较好奇就着手去研究了一下,漏洞的描述是这样的:

models/repo_mirror.go in Gitea before 1.7.6 and 1.8.x before 1.8-RC3 mishandles mirror repo URL settings, leading to remote code execution.

在和朋友@hammer的一同研究下,成功控制了git config的内容,但是在从git config到RCE的过程遇到了困难,就暂时搁置了,在过了几个月之后,偶然得到@Lz1y和@x1nGuang两位大佬的启发,成功复现了这个漏洞,下面我们就来仔细研究下这个问题。

分析补丁

首先根据cve的信息,确定漏洞1.7.6和1.8.0-rc3上修复

. https://github.com/go-gitea/gitea/releases/tag/v1.7.6
. https://github.com/go-gitea/gitea/releases/tag/v1.8.0-rc3
根据漏洞文件为repo_mirror.go这个信息锁定更新的commit,commit主要为 #6593和#6595

. https://github.com/go-gitea/gitea/pull/6595/commits/52af826a7aa1df6ab538d881db236698cb367cd7
根据patch可以大致锁定问题的关键点

/models/repo_mirror.go

在这里插入图片描述
当仓库为mirror仓库时,settings页面会显示关于mirror的配置

if !repo.IsMirror {
        ctx.NotFound("", nil)
        return
    }

patch中将原来的修改配置文件中的url选项修改为NewCommand。很容易理解࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值