IT学习网 - 爱学习 - 最具影响力综合资讯网站 -- 中国IT界的领航者!
热门关键字:      88888  as  xxx
站外
广告
站外
广告

Github企业版远程代码执行漏洞分析

发布时间:2017-03-18 16:58文章来源:互联网文章作者: 佚名点击次数:
Github企业版远程代码执行漏洞分析。眼下,几乎人人都在使用GitHub。如果您有大量的绿皮书或者对自己的代码非常偏执,那么不妨运行自己的GitHub。支付$ 2500美元,就可以得到一个GitHub企业版,可供10个用户使用一年。实际上,Github企业版就是一个虚拟机,

Github企业版远程代码执行漏洞分析。眼下,几乎人人都在使用GitHub。如果您有大量的绿皮书或者对自己的代码非常偏执,那么不妨运行自己的GitHub。支付$ 2500美元,就可以得到一个GitHub企业版,可供10个用户使用一年。实际上,Github企业版就是一个虚拟机,只不过提供了一个功能齐全的GitHub实例而已。尽管有一些边缘的情况下偶尔用到了GitHub.enterprise?调用,但是它运行的是与原始代码库一样的代码库。
所以,让我们干掉它。
代码的反混淆处理
当您下载Github企业版时,将会得到一个VirtualBox镜像,你可以将其部署到自己的机器上面。我通过启动随机恢复镜像考察机器的内部情况时,在/data目录里找到了GitHub的代码:
data
├── alambic
├── babeld
├── codeload
├── db
├── enterprise
├── enterprise-manage
├── failbotd
├── git-hooks
├── github
├── git-import
├── gitmon
├── gpgverify
├── hookshot
├── lariat
├── longpoll
├── mail-replies
├── pages
├── pages-lua
├── render
├── slumlord
└── user
不幸的是,这些代码是经过混淆处理的,大部分看起来像这样:
require "ruby_concealer"
__ruby_concealer__ "\xFF\xB3/\xDFH\x8A\xA7\xBF=U\xED\x91y\xDA\xDB\xA2qV "
原来,有一个名为ruby_concealer.so的ruby模块,会对二进制字符串执行Zlib :: Inflate :: inflate,然后利用密钥“This obfuscation is intended to discourage GitHub Enterprise customers from making modifications to the VM. We know this 'encryption' is easily broken”进行XOR运算。就像密钥文字所提示的那样,这的确非常用以破解。现在,我们就通过以下工具对代码进行反混淆处理:
#!/usr/bin/ruby
#
# This tool is only used to "decrypt" the github enterprise source code.
#
# Run in the /data directory of the instance.
require "zlib"
require "byebug"
KEY = "This obfuscation is intended to discourage GitHub Enterprise customers "+
"from making modifications to the VM. We know this 'encryption' is easily broken. "
class String
def unescape
buffer = []
mode = 0
tmp = ""
# https://github.com/ruby/ruby/blob/trunk/doc/syntax/literals.rdoc#strings
sequences = {
"a" => 7,
"b" => 8,
"t" => 9,
"n" => 10,
"v" => 11,
"f" => 12,
"r" => 13,
"e" => 27,
"s" => 32,
"\"" => 34,
"#" => 35,
"\\" => 92,
"{" => 123,
"}" => 125,
}
self.chars.each do |c|
if mode == 0
if c == "\\"
mode = 1
tmp = ""
else
buffer
end
else
tmp
if tmp[0] == "x"
if tmp.length == 3
buffer
mode = 0
tmp = ""
next
else
next
Github企业版远程代码执行漏洞分析
本文由 IT学习网 整理,转载请注明“转自IT学习网”,并附上链接。
原文链接:http://www.ourlove520.com/Article/diannao/wangluo/803014.html

标签分类:

上一篇:上一篇:手把手教你网络安全防范策略:常见劫持方式,如何防御各种劫持?
下一篇: 下一篇:双尾蝎组织(APT-C-23):伸向巴以两国的毒针
无觅关联推荐,快速提升流量