关于艺龙js逆向user-dun的思考

js逆向艺龙的接口,发现头部有一个user-dun的参数。逆向接口如下
https://www.elong.com/tapi/v2/list?city=0101&inDate=2024-11-05&outDate=2024-11-06&filterList=8888_1&keywords=汉庭&placename=&pageIndex=0&pageSize=20

跟踪代码,发现user-dun是通过r = await o.sign生成的(js文件为entry.0-0-3-6aba9276.js)。而o是window.h5sign函数
在这里插入图片描述

window.h5sign 函数是加载了dun.min.1.1.4.0.js后挂载到window的。我直接加载了整个dun.min.1.1.4.0.js文件,在文件前面声明一个var window = global; 并且在最后导出window,export default window;

然后新建一个elong.js文件,引用dun.min.1.1.4.0.js文件的window,代码如下:(因为一些参数是固定的,先写成固定参数测试)

import window from "./dun.min.js";

async function tr(e, t, n) {
  const o = null == window ? void 0 : window.h5sign;
  const r = await o.sign({
    fullUrl: "https://www.elong.com/tapi/v2/list?city=0101&inDate=2024-11-05&outDate=2024-11-06&filterList=8888_1&keywords=汉庭&placename=&pageIndex=0&pageSize=20",
    type: 2
  }, void 0, {
    ampParams: Object.fromEntries(Object.entries(n).filter(( ([e,t]) => {
      var n;
      return null == (n = null == t ? void 0 : t.includes) ? void 0 : n.call(t, "&")
    }
    )))
  })
  return r
}

const n = await tr("get", "tapi/v2/list", {
  "city": "0101",
  "inDate": "2024-11-05",
  "outDate": "2024-11-06",
  "filterList": "8888_1",
  "keywords": "汉庭",
  "placename": "",
  "pageIndex": 0,
  "pageSize": 20
})
console.log(n)

执行后输出{ status: false }。
我怀疑是环境的问题,在dun.min.1.1.4.0.js头部又补了一些环境,

var window = global;
var navigator = {
    "appCodeName": "Mozilla",
    "appName": "Netscape",
    "appVersion": "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
};
var document = {}

结果还是一样,打印了浏览器的window对象对比下,发现浏览器的window对象有很多参数我没有,如:
在这里插入图片描述

但是不断的补还是没用。

目前还没有思路继续逆向下去,有高手愿意解答下吗?

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值