2013-06-03 40 views
7

Tôi đang cố gắng mô phỏng nút google +.Ở mã lệnh tại LINK, Chuyển đổi id phiên thành một số băm kinda. Tôi tìm thấy tên id phiên là SAPISID và tên băm được chuyển đổi là SAPISIDHASH , Bất cứ ai có thể cho tôi biết một phần của mã không phần băm. Bất kỳ trợ giúp sẽ được appreciated.i đã dành 6 giờ liên tục, vẫn không có đầu mối :(Kỹ thuật ngược Javascript phía sau nút Google+

Ví dụ VUOyLIU22fNPz2ko/AbGsxW03_WHoGjaJq is SAPISIDf17aa630b9b9a105dad437b0fedcafe429f6fca2 is SAPISIDHASH. Trong php tôi đã cố gắng tất cả các loại trận đấu hash..nothing.

+0

Hàm băm là 40 ký tự chữ số hex, vì vậy đây có thể là [băm SHA-1] (http://en.wikipedia.org/wiki/SHA-1) của một số dữ liệu. Chính xác * những gì * dữ liệu là của ai đoán ... – maerics

+0

Không chỉ có ai đoán ... nhưng nó có nghĩa là họ đã đi ra khỏi con đường của họ để đảm bảo rằng không ai có thể đoán được. – djechlin

+0

ripemd160 cũng 40 ký tự .. tôi đã thử tất cả các băm .. mã nào một số biểu tượng thay thế tôi đoán .. vì vậy cần phải tìm những gì nó – user2449384

Trả lời

6

VICTORY! Vâng cho tôi ít nhất = p SAPISIDHASH mà tôi đang tìm kiếm là một trong giao diện điều khiển api.Động cơ cho công việc khá lớn, hoàn toàn hợp pháp.

Anyways -> cái tôi tìm thấy là SHA1 trên dấu thời gian javascript mili giây hiện tại cộng với hiện tại của bạn SAPISID từ cookie của bạn cộng với miền gốc

Trong hoặc der cho yêu cầu của tôi để làm việc tôi đã phải bao gồm các tiêu đề sau trong yêu cầu Authorization:SAPISIDHASH 1439879298823_<hidden sha1 hash value>X-Origin:https://console.developers.google.com

Tiêu đề đầu tiên tôi giả định nói với server timestamp của bạn và giá trị so sha1 của bạn. Thứ hai (ngắt nếu bạn không bao gồm nó) cho biết nguồn gốc để sử dụng trong thuật toán sha1.

tôi thấy các thuật toán bằng cách đào bới và gỡ lỗi các địa ngục ra khỏi tấn minified js LƯU Ý có không gian nối giữa các giá trị

Các mã giả là basiclly>

sha1(new Date().getTime() + " " + SAPISID + " " + origin)

Đó là ít nhất là làm thế nào tôi có giá trị SAPISIDHASH của tôi trong trường hợp sử dụng của tôi ở đây vào năm 2015 (vài năm sau tôi biết) ... khác với bạn nhưng có lẽ tôi sẽ giúp một số hacker trẻ giỏi khác ra khỏi đó một ngày

+0

Cảm ơn dude! Bạn là nhất. –

2

Tất cả các khoản tín dụng cho Dave Thomas.

Tôi chỉ muốn làm rõ rằng đối với X-Origin, hoặc xứ, bạn không bao gồm "X-Origin:" hoặc "Xuất xứ:"

Dưới đây là một ví dụ:

public class SAPISIDHASH { 

    public static void main(String [] args) { 

     String sapisid = "b4qUZKO4943exo9W/AmP2OAZLWGDwTsuh1"; 
     String origin = "https://hangouts.google.com"; 
     String sapisidhash = "1447033700279" + " " + sapisid + " " + origin; 
     System.out.println("SAPISID:\n"+ hashString(sapisidhash)); 
     System.out.println("Expecting:"); 
     System.out.println("38cb670a2eaa2aca37edf07293150865121275cd"); 

    } 

    private static String hashString(String password) 
    { 
     String sha1 = ""; 
     try 
     { 
      MessageDigest crypt = MessageDigest.getInstance("SHA-1"); 
      crypt.reset(); 
      crypt.update(password.getBytes("UTF-8")); 
      sha1 = byteToHex(crypt.digest()); 
     } 
     catch(NoSuchAlgorithmException e) 
     { 
      e.printStackTrace(); 
     } 
     catch(UnsupportedEncodingException e) 
     { 
      e.printStackTrace(); 
     } 
     return sha1; 
    } 

    private static String byteToHex(final byte[] hash) 
    { 
     Formatter formatter = new Formatter(); 
     for (byte b : hash) 
     { 
      formatter.format("%02x", b); 
     } 
     String result = formatter.toString(); 
     formatter.close(); 
     return result; 
    } 
} 

nguồn cho sha1 bằng Java: Java String to SHA1

Các vấn đề liên quan