Jump to content
Thiên Chi Kiều Nữ

[PHP] Hướng dẫn đăng nhập shopee (login shopee) bằng Curl

Recommended Posts


On 1/4/2020 at 07:49, Thiên Chi Kiều Nữ said:

:v host bạn mua hay free hosting vậy ? mỵ chạy trên host teamcodedao oke mà :167788093418477:.bạn @Tư Nguyễn cũng bị, mà đổi host loại khác lại được...free hosting nhé..

HxyFcPH.png

bạn chú ý khi paste vào file txt có 1 chỗ nó bị sai do lỗi font copy từ trên web về mà post vào notepad thì bị như thế..bạn nhìn cái là ra..

v7VPjqs.png

Mình chạy thử thì bị lỗi ạ ! không biết có thay đổi gì không ?

Share this post


Link to post
Share on other sites
34 phút trước, songhanpoo said:

Mình chạy thử thì bị lỗi ạ ! không biết có thay đổi gì không ?

Không có gì thay đổi cả.. do bị lỗi font của diễn đàn.. 1 là bạn tự code lại , 2 là bạn copy vào editor nào đó thấy được ký tự không nhìn thấy thì mới sửa lỗi được nhé .. ảnh ví dụ lỗi font khi copy về :

9HS7bs0.png

Share this post


Link to post
Share on other sites

Hi Admin !

Mình củng gà code nên mong được chỉ giáo ạ.
Mình dev lại python theo như đọc code của bạn hông biết có nhầm lẫn ở đâu không ạ ?
 

import requests
import random
import hashlib


def csrftoken(length=32):
    # put your letters in the following string
    character='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
    return ''.join((random.choice(character) for i in range(length)))


def encrypt_SHA256(password):
  sha_signature = \
      hashlib.sha256(password.encode()).hexdigest()
  return sha_signature



def main():
      url = 'https://shopee.vn/api/v0/buyer/login/'
      r = requests.get(url)
      #print (r.cookies['SPC_EC'])
      arr = ["SPC_EC","SPC_F","SPC_R_T_ID","SPC_R_T_IV","SPC_SI","SPC_U","REC_T_ID","SPC_IA","SPC_T_ID","SPC_T_IV"]
      cookie_string = ""
      for x in arr:
        cookie_string += x + r.cookies[x] + " "

      headers = {
            'x-csrftoken'     : csrftoken(),
            'x-requested-with': 'XMLHttpRequest',
            'referer'         : 'https://shopee.vn/api/v0/buyer/login/',
            'cookie'          : cookie_string
      }      
      #print(headers)
      data = {
            "login_key"    : "849999xxx",
            "login_type"   : "username",
            "password_hash": encrypt_SHA256(password="password"),
            "captcha"      : "",
            "remember_me"  : True
      }
      #print(data)
      url="https://shopee.vn/api/v0/buyer/login/login_post/"
      response = requests.post(url,headers =headers, data=data)
      print(response.text.encode('utf8'))
if __name__ == '__main__':
    main()

Khi chạy thi response 403 :( !

Mình chạy thử code php của team mình như này :

#!/usr/bin/php
<?php
$response = LoginShopee('+84933312394','STAK3gird.brut');
echo $response;

function LoginShopee($SP_Username,$SP_Pass) {
	//Khởi tạo chung cho toàn bộ request bên dưới
	$ch=curl_init();
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 	curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36");
	$cookie_jar = 'cookie_shopee.txt';
 	curl_file_create($cookie_jar);	
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);


	// Request lấy cookie ban đầu
	curl_setopt($ch, CURLOPT_URL, "https://shopee.vn/api/v0/buyer/login/");
	curl_exec($ch);
	// echo file_get_contents($cookie_jar) .'<br><br>';


	//Khởi tạo các dữ liệu đầu vào cho request Login
	$csrf_token = csrftoken();

 	$header = array(
		'x-csrftoken: '. $csrf_token,
		'x-requested-with: XMLHttpRequest',
		'referer: https://shopee.vn/api/v0/buyer/login/',
   	 );

	 $data = array(
		"login_key" => $SP_Username,
		"login_type" => "username",
		"password_hash" => CryptPass($SP_Pass),
		"captcha" => "",
		"remember_me" => "true"
	);
	$data = http_build_query($data);	

	//Request login
	curl_setopt($ch, CURLOPT_URL, "https://shopee.vn/api/v0/buyer/login/login_post/"); 
	curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
	curl_setopt($ch, CURLOPT_COOKIE, "csrftoken=" . $csrf_token);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
	curl_setopt($ch, CURLOPT_POSTFIELDSIZE, strlen($data));
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_HEADER, 1);
	$response = curl_exec($ch);
	echo $response;
	
	// Request lấy thông tin tài khoản sau khi đã đăng nhập thành công
	curl_setopt($ch, CURLOPT_URL, "https://banhang.shopee.vn/api/v1/login/");
	$response = curl_exec($ch);
	return $response;
	curl_close($ch);
}
function CryptPass($pass){
   return hash("sha256", md5($pass));
}
function csrftoken() {
    $karakter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    $PanjangKarakter = strlen($karakter);
    $acakString = '';
    for ($i = 0; $i < 32; $i++) {
        $acakString .= $karakter[rand(0, $PanjangKarakter - 1)];
    }
    return $acakString;
}
?>

thì kết quả như sau ạ 
 

{"fields":["phone"],"errcode":1}%                                                                                                              

Theo mình khi request completed thì mình cần nhận được uid của tài khoản chứ nhỉ ?

Thanks mod và mọi người giúp đỡ

Share this post


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

Hi Admin !

Mình củng gà code nên mong được chỉ giáo ạ.
Mình dev lại python theo như đọc code của bạn hông biết có nhầm lẫn ở đâu không ạ ?
 


import requests
import random
import hashlib


def csrftoken(length=32):
    # put your letters in the following string
    character='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
    return ''.join((random.choice(character) for i in range(length)))


def encrypt_SHA256(password):
  sha_signature = \
      hashlib.sha256(password.encode()).hexdigest()
  return sha_signature



def main():
      url = 'https://shopee.vn/api/v0/buyer/login/'
      r = requests.get(url)
      #print (r.cookies['SPC_EC'])
      arr = ["SPC_EC","SPC_F","SPC_R_T_ID","SPC_R_T_IV","SPC_SI","SPC_U","REC_T_ID","SPC_IA","SPC_T_ID","SPC_T_IV"]
      cookie_string = ""
      for x in arr:
        cookie_string += x + r.cookies[x] + " "

      headers = {
            'x-csrftoken'     : csrftoken(),
            'x-requested-with': 'XMLHttpRequest',
            'referer'         : 'https://shopee.vn/api/v0/buyer/login/',
            'cookie'          : cookie_string
      }      
      #print(headers)
      data = {
            "login_key"    : "849999xxx",
            "login_type"   : "username",
            "password_hash": encrypt_SHA256(password="password"),
            "captcha"      : "",
            "remember_me"  : True
      }
      #print(data)
      url="https://shopee.vn/api/v0/buyer/login/login_post/"
      response = requests.post(url,headers =headers, data=data)
      print(response.text.encode('utf8'))
if __name__ == '__main__':
    main()

Khi chạy thi response 403 :( !

Mình chạy thử code php của team mình như này :


#!/usr/bin/php
<?php
$response = LoginShopee('+84933312394','STAK3gird.brut');
echo $response;

function LoginShopee($SP_Username,$SP_Pass) {
	//Khởi tạo chung cho toàn bộ request bên dưới
	$ch=curl_init();
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 	curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36");
	$cookie_jar = 'cookie_shopee.txt';
 	curl_file_create($cookie_jar);	
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);


	// Request lấy cookie ban đầu
	curl_setopt($ch, CURLOPT_URL, "https://shopee.vn/api/v0/buyer/login/");
	curl_exec($ch);
	// echo file_get_contents($cookie_jar) .'<br><br>';


	//Khởi tạo các dữ liệu đầu vào cho request Login
	$csrf_token = csrftoken();

 	$header = array(
		'x-csrftoken: '. $csrf_token,
		'x-requested-with: XMLHttpRequest',
		'referer: https://shopee.vn/api/v0/buyer/login/',
   	 );

	 $data = array(
		"login_key" => $SP_Username,
		"login_type" => "username",
		"password_hash" => CryptPass($SP_Pass),
		"captcha" => "",
		"remember_me" => "true"
	);
	$data = http_build_query($data);	

	//Request login
	curl_setopt($ch, CURLOPT_URL, "https://shopee.vn/api/v0/buyer/login/login_post/"); 
	curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
	curl_setopt($ch, CURLOPT_COOKIE, "csrftoken=" . $csrf_token);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
	curl_setopt($ch, CURLOPT_POSTFIELDSIZE, strlen($data));
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_HEADER, 1);
	$response = curl_exec($ch);
	echo $response;
	
	// Request lấy thông tin tài khoản sau khi đã đăng nhập thành công
	curl_setopt($ch, CURLOPT_URL, "https://banhang.shopee.vn/api/v1/login/");
	$response = curl_exec($ch);
	return $response;
	curl_close($ch);
}
function CryptPass($pass){
   return hash("sha256", md5($pass));
}
function csrftoken() {
    $karakter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    $PanjangKarakter = strlen($karakter);
    $acakString = '';
    for ($i = 0; $i < 32; $i++) {
        $acakString .= $karakter[rand(0, $PanjangKarakter - 1)];
    }
    return $acakString;
}
?>

thì kết quả như sau ạ 
 


{"fields":["phone"],"errcode":1}%                                                                                                              

Theo mình khi request completed thì mình cần nhận được uid của tài khoản chứ nhỉ ?

Thanks mod và mọi người giúp đỡ

Vỡi chưởng :v code python bạn nên đặt câu hỏi bên box python nhé.. :167788256751794:Đây code PHP chạy bình thường nha bạn ..có lẽ bạn sai username hay pass rồi..

3aRv1UG.png

 

Mỵ thấy hình như bạn chưa add csrf vào cookie thì phải..

  • Love 1

Share this post


Link to post
Share on other sites

Híc ! 
Mình tự viết lại nhưng vẫn không được nhỉ !? 
mình đã thử login bằng mail và số phone ! :( 
cho mình hỏi srv có cần cài thêm extension gì cho php hông ?

Mình cho chạy trên 2 môi trường docker và vps của mình !

Cám ơn team giúp đỡ ạ

Share this post


Link to post
Share on other sites
On 23/4/2020 at 11:27, songhanpoo said:

Híc ! 
Mình tự viết lại nhưng vẫn không được nhỉ !? 
mình đã thử login bằng mail và số phone ! :( 
cho mình hỏi srv có cần cài thêm extension gì cho php hông ?

Mình cho chạy trên 2 môi trường docker và vps của mình !

Cám ơn team giúp đỡ ạ

tk shopee tắt otp chưa bạn? có otp là k login dc đâu

Share this post


Link to post
Share on other sites
2 giờ trước, võ văn thuận said:

Quá tuyệt!
Chờ cao thủ nào đó mở thêm topic:


 Thao tác sau khi đăng nhập với Curl :D

các bước giống nhau, chỉ khác nhau về ngôn ngữ thôi bạn.......... bạn qua xem topic request c# rồi chuyển sang curl cũng được  :167788060085147:

  • Love 1

Share this post


Link to post
Share on other sites
Posted (edited)

login shopee hình như thay đổi rồi hay sao á, mình login không được nữa rồi @Thiên Chi Kiều Nữ

//Edit: 

Mình có F12 và kiểm tra do là shopee đã đổi url login 

từ "https://shopee.vn/api/v0/buyer/login/" >>> sang "https://shopee.vn/api/v2/login/

hiện tại mình test thì code cũ sẽ bị 404 redirect, update lại link api v2 thì ok, login bình thường

Edited by toighengangqua
  • Love 1

Share this post


Link to post
Share on other sites
1 hour ago, toighengangqua said:

login shopee hình như thay đổi rồi hay sao á, mình login không được nữa rồi @Thiên Chi Kiều Nữ

//Edit: 

Mình có F12 và kiểm tra do là shopee đã đổi url login 

từ "https://shopee.vn/api/v0/buyer/login/" >>> sang "https://shopee.vn/api/v2/login/

hiện tại mình test thì code cũ sẽ bị 404 redirect, update lại link api v2 thì ok, login bình thường

hihi yêu yêu.. chắc api v1 shopee khoá mất tiểu ồi ...:167788053418481:

  • Like 1

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...