Jump to content
Huân Hoàng

_HttpRequest: Tương tác với trang shopee.vn sau khi đã đăng nhập

Recommended Posts

5 hours ago, QuangBlue said:

Lấy từ https://banhang.shopee.vn/webchat/api/v1.2/login?_uid={uid}&csrf_token={csrf_token}'

 

Mỵ xem giúp với,  hix bí cả tuần ko làm được gì T_T

à mỵ quên mất ko xem lại, còn một dãy số bí ẩn thêm vào header nữa mà bạn không cho vào :

'x-s': '17a85bb5c5969b2039af0854a1e9396e',
'x-v': '2',

Cái này mỵ copy từ request chát nên chưa tìm được nó ở đâu...khi thay đổi nó thì ko gửi đi được. Bạn thử tìm cùng mỵ xem

Share this post


Link to post
Share on other sites

5 hours ago, Thiên Chi Kiều Nữ said:

à mỵ quên mất ko xem lại, còn một dãy số bí ẩn thêm vào header nữa mà bạn không cho vào :


'x-s': '17a85bb5c5969b2039af0854a1e9396e',
'x-v': '2',

Cái này mỵ copy từ request chát nên chưa tìm được nó ở đâu...khi thay đổi nó thì ko gửi đi được. Bạn thử tìm cùng mỵ xem

T_T thua luôn. có tìm rồi mà tìm không ra, Mỹ có code ko share mình được ko T_T

Share this post


Link to post
Share on other sites
54 minutes ago, QuangBlue said:

T_T thua luôn. có tìm rồi mà tìm không ra, Mỹ có code ko share mình được ko T_T

hình như dãy số này ko đổi :v bạn cho cho mỵ cái đoạn F12 header khi bạn chát xem..... mỵ có tìm ra đâu mà có code :D

Share this post


Link to post
Share on other sites
2 giờ trước, QuangBlue said:

T_T thua luôn. có tìm rồi mà tìm không ra, Mỹ có code ko share mình được ko T_T

cái này tìm trong file js của shopee nha bạn 

Share this post


Link to post
Share on other sites

 

18 hours ago, Công Dũng said:

cái này tìm trong file js của shopee nha bạn 

 

20 hours ago, Thiên Chi Kiều Nữ said:

hình như dãy số này ko đổi :v bạn cho cho mỵ cái đoạn F12 header khi bạn chát xem..... mỵ có tìm ra đâu mà có code :D

Mình tìm thấy đoạn này trong JS của shopee :

 

return new Promise((function(e, a) {
                        if (void 0 !== x && parseInt(x) <= 0 || void 0 !== C && parseInt(C) <= 0) {
                            var d = [b, C, y, x, _].filter((function(e) {
                                return e
                            }
                            )).join("/");
                            return f.reportException(d + " parameter exception: " + C + "/" + x),
                            void a(new Error)
                        }
                        var A = z.includes("/webchat/api") ? {
                            "x-v": w || "",
                            "x-s": (0,
                            p.getSecurityHash)(w, {
                                url: F,
                                method: S,
                                token: k.Authorization,
                                ctoken: n || ""
                            })
                        } : {}
                          , h = {
                            method: S,
                            headers: r({}, k, A),
                            body: R
                        };
                        M && (h.credentials = M),
                        (0,
                        o.default)(z, h).then((function(e) {
                            switch (200 === (B = e.status) && (T = parseInt(e.headers.get("total")),
                            P = parseInt(e.headers.get("per-page"))),
                            B) {
                            case 204:
                                return null;
                            case 404:
                                return {
                                    message: "Resource not found"
                                };
                            case 500:
                                return {
                                    message: "Internal server error."
                                };
                            case 502:
                                return {
                                    message: "Bad Gateway"
                                };
                            default:
                                return e.json()
                            }
                        }
                        )).then((function(n) {
                            var r, o, d, p = Date.now() - D;
                            if ("read" === y && (0,
                            u.collectAsyncTask)(u.ReportPoint.READ_API, p),
                            void 0 === x && void 0 !== y && ("messages" === y && U.indexOf("shop_id") < 0 ? (L = JSON.parse(R).request_id,
                            (0,
                            l.setItem)(L, D),
                            (0,
                            u.collectAsyncTask)(u.ReportPoint.MESSAGE_API, p)) : u.ReportPoint[y.toUpperCase()] && (0,
                            u.collectAsyncTask)(u.ReportPoint[y.toUpperCase()], p)),
                            200 === B ? e(n instanceof Array ? (r = {
                                total: T,
                                perPage: P
                            },
                            o = y,
                            d = n.map(N),
                            o in r ? Object.defineProperty(r, o, {
                                value: d,
                                enumerable: !0,
                                configurable: !0,
                                writable: !0
                            }) : r[o] = d,
                            r) : N(n)) : 204 === B && e(),
                            (0,
                            i.isError)(B)) {
                                var A = t || [b, C, y, x, _].filter((function(e) {
                                    return e
                                }
                                )).join("/");
                                if (400 !== B && 404 !== B || (f.setTag("API Request Error", A),
                                f.reportException(new ((0,
                                i.HTTPError)(B))(JSON.stringify({
                                    body: n,
                                    status: B
                                })))),
                                [429, 491, 493].includes(B)) {
                                    var h = new ((0,
                                    i.HTTPError)(B))(n);
                                    a(h)
                                } else if (401 === B)
                                    if (y.includes("login")) {
                                        var g = new ((0,
                                        i.HTTPError)(B))(n.message,n.errors || n.error_code || n.errcode,n.data);
                                        a(g)
                                    } else
                                        s.store.dispatch((0,
                                        c.handle401ErrorRequested)({
                                            resource: y
                                        }));
                                else {
                                    var m = new ((0,
                                    i.HTTPError)(B))(n.message,n.errors || n.error_code || n.errcode,n.data);
                                    a(m)
                                }
                            }
                        }

mà thề là đang học python thôi. cái JS này  .... :( mọi người giúp mình với. 

 

 

Còn đây là link download cái file JS đó. https://drive.google.com/file/d/1tJYCquippPHJIROUdOZWBa5CAItullS7/view?usp=sharing

 

Edited by QuangBlue

Share this post


Link to post
Share on other sites
34 minutes ago, Công Dũng said:

getSecurityHash bạn tìm hàm này thử xem

@Thiên Chi Kiều Nữ @Công Dũng

 

function(e, t, n) {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }),
            t.getSecurityHash = function(e, t) {
                var n = t.url
                  , r = t.method
                  , c = t.token
                  , u = t.ctoken
                  , l = function(e) {
                    return "live" === (0,
                    o.getRuntimeServer)() ? i[e] : s[e]
                }(e);
                switch (e) {
                case 1:
                    return function(e, t) {
                        return (0,
                        a.default)(e + t).toString()
                    }(n, l);
                case 2:
                    return function(e, t, n) {
                        return (0,
                        a.default)(e + t + n).toString()
                    }(n, l, r);
                case 3:
                    return function(e, t, n) {
                        return (0,
                        a.default)(e + t + n).toString()
                    }(n, l, c);
                case 4:
                    return function(e, t, n) {
                        return (0,
                        a.default)(e + t + n).toString()
                    }(n, l, u);
                default:
                    return ""
                }
            }
            ;
            var r, a = (r = n(54)) && r.__esModule ? r : {
                default: r
            }, o = n(4), s = {
                1: "70c74f4e-dcda-483e-826b-19dd2c42e799",
                2: "29ffec18-c614-4645-8f1c-686e22d2e26a",
                3: "04229e76-1ba3-4ac9-8a4e-68d46a3881a2",
                4: "a3769a87-35cf-45e9-a5a7-2b4016c52e92"
            }, i = {
                1: "396c15ad-6d3e-4018-98be-cef58cb45cd0",
                2: "607c871d-b766-4c6f-ba89-b6c6ca32b156",
                3: "42990074-9a73-4459-b749-f3110d222a72",
                4: "5702b6f3-62a3-44d2-abe8-fece100a8bf4"
            }
        }

cái getSecurityHash mình thấy có chỗ này. Mọi người igúp mình với,  không học JS nên ngu quá T_T

Share this post


Link to post
Share on other sites
5 hours ago, QuangBlue said:

@Thiên Chi Kiều Nữ @Công Dũng

 


function(e, t, n) {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }),
            t.getSecurityHash = function(e, t) {
                var n = t.url
                  , r = t.method
                  , c = t.token
                  , u = t.ctoken
                  , l = function(e) {
                    return "live" === (0,
                    o.getRuntimeServer)() ? i[e] : s[e]
                }(e);
                switch (e) {
                case 1:
                    return function(e, t) {
                        return (0,
                        a.default)(e + t).toString()
                    }(n, l);
                case 2:
                    return function(e, t, n) {
                        return (0,
                        a.default)(e + t + n).toString()
                    }(n, l, r);
                case 3:
                    return function(e, t, n) {
                        return (0,
                        a.default)(e + t + n).toString()
                    }(n, l, c);
                case 4:
                    return function(e, t, n) {
                        return (0,
                        a.default)(e + t + n).toString()
                    }(n, l, u);
                default:
                    return ""
                }
            }
            ;
            var r, a = (r = n(54)) && r.__esModule ? r : {
                default: r
            }, o = n(4), s = {
                1: "70c74f4e-dcda-483e-826b-19dd2c42e799",
                2: "29ffec18-c614-4645-8f1c-686e22d2e26a",
                3: "04229e76-1ba3-4ac9-8a4e-68d46a3881a2",
                4: "a3769a87-35cf-45e9-a5a7-2b4016c52e92"
            }, i = {
                1: "396c15ad-6d3e-4018-98be-cef58cb45cd0",
                2: "607c871d-b766-4c6f-ba89-b6c6ca32b156",
                3: "42990074-9a73-4459-b749-f3110d222a72",
                4: "5702b6f3-62a3-44d2-abe8-fece100a8bf4"
            }
        }

cái getSecurityHash mình thấy có chỗ này. Mọi người igúp mình với,  không học JS nên ngu quá T_T

Bạn phải tìm xem giá trị e, t, n kia được truyền vào là gì, sau đó execute cái js này ra thì nó ra kết quả dãy số đó cho bạn :167788066751813:

Share this post


Link to post
Share on other sites
14 giờ trước, QuangBlue said:

@Thiên Chi Kiều Nữ @Công Dũng

 


function(e, t, n) {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }),
            t.getSecurityHash = function(e, t) {
                var n = t.url
                  , r = t.method
                  , c = t.token
                  , u = t.ctoken
                  , l = function(e) {
                    return "live" === (0,
                    o.getRuntimeServer)() ? i[e] : s[e]
                }(e);
                switch (e) {
                case 1:
                    return function(e, t) {
                        return (0,
                        a.default)(e + t).toString()
                    }(n, l);
                case 2:
                    return function(e, t, n) {
                        return (0,
                        a.default)(e + t + n).toString()
                    }(n, l, r);
                case 3:
                    return function(e, t, n) {
                        return (0,
                        a.default)(e + t + n).toString()
                    }(n, l, c);
                case 4:
                    return function(e, t, n) {
                        return (0,
                        a.default)(e + t + n).toString()
                    }(n, l, u);
                default:
                    return ""
                }
            }
            ;
            var r, a = (r = n(54)) && r.__esModule ? r : {
                default: r
            }, o = n(4), s = {
                1: "70c74f4e-dcda-483e-826b-19dd2c42e799",
                2: "29ffec18-c614-4645-8f1c-686e22d2e26a",
                3: "04229e76-1ba3-4ac9-8a4e-68d46a3881a2",
                4: "a3769a87-35cf-45e9-a5a7-2b4016c52e92"
            }, i = {
                1: "396c15ad-6d3e-4018-98be-cef58cb45cd0",
                2: "607c871d-b766-4c6f-ba89-b6c6ca32b156",
                3: "42990074-9a73-4459-b749-f3110d222a72",
                4: "5702b6f3-62a3-44d2-abe8-fece100a8bf4"
            }
        }

cái getSecurityHash mình thấy có chỗ này. Mọi người igúp mình với,  không học JS nên ngu quá T_T

var n = t.url
                  , r = t.method
                  , c = t.token
                  , u = t.ctoken
                  , l = function(e) {
                    return "live" === (0,
                    o.getRuntimeServer)() ? i[e] : s[e]
                }(e);
mấy biến n r c u l i bạn thay vào công thức case là ra đó
  • Love 1

Share this post


Link to post
Share on other sites
24 minutes ago, Công Dũng said:

var n = t.url
                  , r = t.method
                  , c = t.token
                  , u = t.ctoken
                  , l = function(e) {
                    return "live" === (0,
                    o.getRuntimeServer)() ? i[e] : s[e]
                }(e);
mấy biến n r c u l i bạn thay vào công thức case là ra đó

n = ctoken rồi nhóe :v khỏi tìm mất công 

zY1WkOR.png

mỵ đơ lắm rồi :v ace tìm tiếp nhóe :167788276751792:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...