flacoin收益(www.flacoin.vip):发现Webpack中泄露的api

admin/2021-04-28/ 分类:宿州科技/阅读:

FlaCoin矿机

IPFS官网(www.FLaCoin.vip)是Filecoin致力服务于使用Filecoin存储和检索数据的官方权威平台。IPFS官网实时更新FlaCoin(FIL)行情、当前FlaCoin(FIL)矿池、FlaCoin(FIL)收益数据、各类FlaCoin(FIL)矿机出售信息。并开放FlaCoin(FIL)交易所、IPFS云矿机、IPFS矿机出售、租用、招商等业务。

1 - 安装 reverse-sourcemap

需要设置好npm环境 (runoob教程)

使用下令(需要署理) npm install --global reverse-sourcemap 举行安装

2 - 寻找xxx.js.map

若是有sourcemap的话,在js最后会有注释:

//, sourceMappingURL=xxxxxxx.js.map

好比这里我要下载MarketSearch.js.mapMarketSearch.js是与站点同名的js,应该是主要的js文件)

  • 在开发者工具中搜索.js.map (位置1)
  • 找到MarketSearch.js.map所在的js (位置2)
  • 找到对应的链URL(位置3)
    • 一样平常来说,静态文件会挂载在当前域名下,但不清扫其他站点挂载的情形,以是需要找到对应的URL,好比这里就差异站
    • 这里MarketSearch.jsURL记为xxx.xxx/mulu/MarketSearch.js

3 - 下载xxx.js.map并获取所有webpack打包文件

使用curl -O http://xxx.xxx/mulu/MarketSearch.js.map

或者直接接见http://xxx.xxx/mulu/MarketSearch.js.map 下载MarketSearch.js.map

使用下令reverse-sourcemap --output-dir ./MarketSearch MarketSearch.js.map即可获取所有webpack打包文件

4 - 使用IDE/其他编辑器寻找接口

我这里使用的是vs code

直接使用全局搜索 左边侧边栏的搜索图标,或者ctrl shift f

4-1 搜索接口

搜索接口有两个方式:

一个是借鉴先验请求的url,这种情形需要我们可以接见到某些接口,好比非SSO的登录

另一个是直接搜索,这种情形大多是我们没法接见到当前站点的接口

4-1-1 借鉴先验请求的url

好比我们接见的站点xxx.xxx存在登录接口,通过实验,发现会挪用/MarketSearch/api/login接口

那么我们可以通过不停删减来搜索接口/MarketSearch/api/login,/api/login,/login

可以看到,当我们删减到/api/login的时刻,就可以找到接口对应的代码

这个接口是可以挪用的,然则发现其界说的接口与现实接见的接口差异(第五部门注释,这里使用了动态界说的接口)

4-1-2 直接搜索

直接搜索有两种方式,凭证请求方式,或者预测命名规则举行搜索

4-1-2-1 凭证请求方式搜索接口

接口大多是通过get/post方式举行接见的,以是这是一个很好的要害词

通过请求方式,可以搜索到动态界说的接口(第五部门),阻止找不到接口的问题

而且,若是存在请求方式重写的代码,通过请求方式搜索可以发现这些代码的界说。

post

get

4-1-2-1 凭证预测命名规则搜索接口

一样平常来说,admin,superadmin,manage之类的要害词对照常见

,

FlaCoin矿机

IPFS官网(www.FLaCoin.vip)是Filecoin致力服务于使用Filecoin存储和检索数据的官方权威平台。IPFS官网实时更新FlaCoin(FIL)行情、当前FlaCoin(FIL)矿池、FlaCoin(FIL)收益数据、各类FlaCoin(FIL)矿机出售信息。并开放FlaCoin(FIL)交易所、IPFS云矿机、IPFS矿机出售、租用、招商等业务。

,

此外,还可以凭证站点名,可挪用api命名规则,js命名规则举行搜索。这个站点没有这样的接口,就不举例了。

5 - 寻找动态界说的接口

恰好这个站点存在动态界说的接口(直接明文写在js代码中的静态接口相反):MarketSearch/api/login ,上面我们通过搜索,只发现了/MarketSearch/api/user/login接口,这里先容一下若何寻找该接口。

首先搜索login,可以看到在index.ts中对登录举行了界说

查看index.ts,可以看到这里界说了用到的视图,继续跟踪Login视图,命名为Login_1,路径在./Login

打开Login.tsx,可以看到凭证vse_client_1.defaultMainView.Login视图,确立了对应的元素,vse_client_1界说为vse-client

打开vse-client目录,寻找defaultMainView视图的界说

跟踪Login视图,可以看到api_1路径在./api,且Login视图界说了游客登录用户登录两个登录方式,这里跟踪用户登录登录方式

用户登录使用了LoginModal模态框

跟踪LoginModal模态框,可以看到登录的行为通过yield api_1.api.login(input)来实现

api_1 = ./apiinput则是ItemKey天生的表单中用户填写的数据(username & password

跟踪api_1.api.login

大致说一下这里的逻辑:

  • key是键值,好比这里挪用的是api.login,则key === login

  • 对于每一个vse_share_1.Api界说的接口

  • 若是传入的key与其中一个接口相同,且不为constructor(通过prototype原型读取,以是需要清扫组织函数),则向下继续

  • login传入__awaiter_

  • 通过axios_1.default.post(`/${NAMESPACE}/${vse_share_1.ShareConfig.apiPrefix}/${key}`, args)提议请求

    • ${NAMESPACE} === MarketSearch

      • 查看命名空间的界说

      • 跟踪../share

    • ${vse_share_1.ShareConfig.apiPrefix} === api

      ![image-20210417002455674.png](https://xzfile.aliyuncs.com/media/upload/picture/20210417205419-062b1358-9f7c-1.png)
      • 跟踪vse-share,寻找ShareConfig

    • ${key} === login

    • args === input,即,由ItemKey天生的json{username:"xxx",password:"xxx"}

这种情形下,通过拼接预界说参数和传入的api名称,动态天生url路径,阻止了静态存储api路径,使得寻找api接口需要破费的精神大大提升。(web平安狗流泪)

阅读:
广告 330*360
广告 330*360
宿州新闻网
微信二维码扫一扫
关注微信公众号
新闻自媒体 Copyright © 2002-2019 宿州新闻网 版权所有
二维码
意见反馈 二维码