Click here to Skip to main content
15,892,059 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
So this is a script that I found some time ago. I's basically a python script where you insert someones Kik username and Kiks endpoint location (kik is a chatting app). I keep trying to find a way to gain access to the whole Email that shows as a result, not just "e***8@gmail.com" (the first and last letter/number is always correct, and it always looks the same. The guy who set this up wrote that there is a way to fix it in the code. And yes this is just for learning reasons, i don't even think people are using kik anymore. This is the code, thank you so much if you wanna try:

    import requests
    import argparse
    import requests
    from bs4 import BeautifulSoup

    parser = argparse.ArgumentParser(description='options for Kik Email Resolver')
    parser.add_argument('-u', '--username', help="Username to resolve from.")
    parser.add_argument('-e', '--endpoint', help="The WS2 endpoint Location.")
    args = parser.parse_args()

    class Resolver(object):
        def __init__(self, args=args):
            self.args = args
            if not self.args.username:
                print('Username is not set, Use the "-h" arg for more information')
                exit()
            if not self.args.endpoint:
                print("endpoint Location is not set, use the -h arg for more information")
                exit()
            print(self.Resolve())

        def Resolve(self):
            print(' [+] Making request...')
            postheaders = {
                'Accept-Language': 'en-US,en;q=0.8',
                'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,           like Gecko) Ubuntu Chromium/37.0.2062.120 Chrome/37.0.2062.120 Safari/537.36'
    }
    payload = {
        'emailOrUsername': self.args.username
    }
    Session = requests.Session()
    Response = Session.post('https://' + self.args.endpoint + '/p', data=payload, headers=postheaders)

    print(' [+] Request Success!')
    Soup = BeautifulSoup(Response.content, 'lxml')
    try:
        ErrorStats = Soup.find_all('p', class_='highlight_green')
        if "days before" in ErrorStats[0].string:
            return(" [X] You must wait 1-3 Days before making another request to this account.")
        if "is invalid" in ErrorStats[0].string:
            return(" [X] Too many requests from this IP, you are temporarily blocked.")
    except:
        print(" [!] No alert messages, Maybe it worked?")
        pass
    try:
        dataList = Soup.find_all('p')
        EmailFound = ''
        for index in range(len(dataList)):
            for word in dataList[index].string.split():
                if "@" in word:
                    return(" [+] Success: " + word)
        print(" [!] No success messages found either. Error01")
    except:
        print(" [!] No success messages found either. Error02")
        print(" [DEBUG] ")
        print(Response.content)
        pass
      return(" [X] Unable to resolve the Kik Account")
     if __name__ == "__main__":
    Resolver()


What I have tried:

I have tried to figure this script out lol
Posted
Updated 3-Feb-21 4:00am

You can't. That information isn't being provided - just a "hint" as to the original email address so the user can recognise what address they used for login. The information isn't being obfuscated by the script, it's being obfuscated at the source.

That's deliberate, because otherwise it breaches GDPR and also many local privacy laws which would forbid the release of private information without the users prior, written consent.
 
Share this answer
 
Comments
KELSAF - ALL KINDS OF CONTENT 3-Feb-21 10:16am    
But how can it be so accurate with the first and last letter or number then? My email is "isabellalindgren23", at the Kik account that I tried this on. And it managed to output "I***3@gmail.com"
All that script seems to be doing is scraping a web page. If that page doesn't contain the full email address, then there is no way to get the full email address from that page.

And why would it? Any service which exposed details which users could reasonably expect to be kept private would quickly be sued into the ground.

If you want the user's email address, you'll have to ask them for it.
 
Share this answer
 
Comments
KELSAF - ALL KINDS OF CONTENT 3-Feb-21 10:11am    
I thought it was searching trough databases that had related information to the username. I don't know how but it captures the right first and last letter in the email everytime. I don't want anybodys email, I tried it at my own kik account just to learn how it works. But something is weird with this script, because a similar one provides you with strange information such as when the username that you put in changed their profile photo, and other information such as first and last name (which is public info). However, i'm just trying to learn how this works.
KELSAF - ALL KINDS OF CONTENT 3-Feb-21 10:14am    
Nvm I think it's coming from a URL link or whatever it's called. You can see information about the user trough that way. Still doesn't answer about the email thing
Richard Deeming 3-Feb-21 10:19am    
Again, if the page you are loading doesn't contain the full email address, then you cannot load the full email address from that page.

The site knows the full email address, which is why the first and last letter are always correct. But the page is returning an obfuscated form of the email address to prevent people from doing precisely what you are trying to do.

If you can't find an API or another page which returns the full email address, then you cannot get the full email address.
KELSAF - ALL KINDS OF CONTENT 3-Feb-21 10:24am    
Thanks for your reply, as I mentioned, just trying to learn how it works. Not trying it out on anybody or something similar.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900