Decode Yahoo "Y" cookie

By evil-critter on Feb 09, 2012

Paste the snippets into the remotes section
Copy snippet from hawkee,
open mirc press Alt+R,
click "File" top left corner remotes section,
paste snippet into blank remotes section,
click File again and "Save As", Name it something like Ycookie.mrc to remember it easily.)
once it's saved, click the OK button in remotes, then right click on the status screen on mIRC
click "Decode Yahoo Y Cookie" to open the dialog.
In the top left box of the YahooStuff Dialog, type in a yahoo name,
underneath that type in a password for the nickname you used, then click on the
HTTP Login Get Cookies.
the Yahoo Y & T cookies are for logging into most yahoo services (if not all), expecially chat, with just your user cookies you can log into yahoo without any other authorization.
i know, yahoo sucks, spam bots and idiots and what not, but I am the only person i know running mirc bots in yahoo rooms that do trivia weather horoscopes and tells jokes an such, perhaps if more ppl could get the hang of mirc over in yahoo land it could benefit irc rooms seeing a real population once again.
or maybe i just need to get out more, i dunno.
Enjoy the cookie decoder. (I plan to try an decode the T cookie next.)

;- Edited this to include the status menu popup
menu status {
  Decode Yahoo Y Cookie:/dialog -m y_cookie y_cookie
}
alias -l yli_srvs return login.cn.yahoo.com|ovi.mail.yahoo.com|mail.login.yahoo.com|msg.edit.yahoo.com|sbc.login.yahoo.com 
alias -l getYTcookie { return $+(GET /config/login?login=,$did(y_cookie,1),&passwd=,$did(y_cookie,2),$chr(32),HTTP/1.0,$crlf,Host: login.yahoo.com,$crlf,Accept: text/html,$crlf,$crlf) }
alias -l ypract {
  var %yah_server = $did(y_cookie,3) , %yah_port = $did(y_cookie,6) 
  if (!$did(y_cookie,1)) { echo -a "Enter Yahoo Nickname" | halt }
  if (!$did(y_cookie,2)) { echo -a "Enter Yahoo Password" | halt }
  if ($sock(ypract)) { sockclose ypract }
  if (!$did(Y_cookie,3)) { %yah_server = login.yahoo.com }
  if (!$did(Y_cookie,6)) { %yah_port = 80 }
  sockopen ypract %yah_server %yah_port 
}
on *:sockopen:ypract: { /sockwrite ypract $getYTcookie | did -r y_cookie 4 }
on *:sockread:ypract: {
  if ($sockerr > 0) return | sockread -f &ysl 
  if (HTTP/1.1 200 OK isin $bvar(&ysl,1-).text) { echo 4Error: $ifmatch | sockclose $sockname | halt }
  if (HTTP/1.1 302 Found isin $bvar(&ysl,1-).text) {
    did -a y_cookie 4 $gettok($matchtok($bvar(&ysl,1-).text,Y=,1,13),2,32)
    did -a y_cookie 4 $gettok($matchtok($bvar(&ysl,1-).text,T=,1,13),2,32)
  }
}
on *:sockclose:ypract: { ya_yck }
;======Decodes/Encodes Yahoo __"UserName"__"l="__Field of Y cookie.================================================================================
alias -l encode_L { return $replacex($1-,a,0,b,1,c,2,d,3,e,4,f,5,g,6,h,7,i,8,j,9,k,a,l,b,m,c,n,d,o,e,p,f,q,g,r,h,s,i,t,j,u,k,v,l,w,m,x,n,y,o,z,p,0,q,1,r,2,s,3,t,4,u,5,v,6,w,7,x,8,y,9,z) }
;----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
alias -l decode_L { return $replacex($1-,0,a,1,b,2,c,3,d,4,e,5,f,6,g,7,h,8,i,9,j,a,k,b,l,c,m,d,n,e,o,f,p,g,q,h,r,i,s,j,t,k,u,l,v,m,w,n,x,o,y,p,z,q,0,r,1,s,2,t,3,u,4,v,5,w,6,x,7,y,8,z,9) }
;===============================================================================================
alias -l ya_yck {
  ; v=
  did -a Y_cookie 4 $matchtok(%ya_yck,v=,1,38) "v" represents Version: $remove($matchtok(%ya_yck,v=,1,38),Y=)
  ; n=
  did -a Y_cookie 4 $matchtok(%ya_yck,n=,1,38) (Decoded)TimeStampUserNameCreation?: $base($remove($matchtok(%ya_yck,n=,1,38),n=),32,10)
  ; l=
  did -a Y_cookie 4 $matchtok(%ya_yck,l=,1,38) (Decoded)UserName: $decode_l($remove($matchtok(%ya_yck,l=,1,38),/o,l=))
  ; p=  
  var %age = 19 $+ $base($mid($remove($gettok(%ya_yck,4,38),p=),2,2),32,10) 
  did -a Y_cookie 4 $matchtok(%ya_yck,p=,1,38) Gender Birth year and location are contained in the "p"section.  
  did -a Y_cookie 4 "p=" continued--- (Decoded)- Age: $calc(2012 - %age) Sex: $left($remove($gettok(%ya_yck,4,38),p=),1) Last2DigitsBirthYear: $base($mid($remove($gettok(%ya_yck,4,38),p=),2,2),32,10)  Area(Zip): $base($mid($remove($gettok(%ya_yck,4,38),p=),4,4),32,10)
  ; r=  
  did -a Y_cookie 4 $matchtok(%ya_yck,r=,1,38) (Decoded) "r=" is the registration week of the user name when it was created.  $remove($matchtok(%ya_yck,r=,1,38),r=) $asctime($calc($base( $remove($matchtok(%ya_yck,r=,1,38),r=) ,32,10) *7*24*60*60 + $ytime))
  ; lg=  
  did -a Y_cookie 4 $matchtok(%ya_yck,lg=,1,38) Chosen language at name creation. Language Spoken : $iif(en- isin $matchtok(%ya_yck,lg=,1,38), English $gettok($matchtok(%ya_yck,lg=,1,38),2,45), Non English)
  ; intl=
  did -a Y_cookie 4 $matchtok(%ya_yck,intl=,1,38) Country From : $upper($gettok($matchtok(%ya_yck,intl=,1,38),2,61))
  ; np=  
  did -a Y_cookie 4 $matchtok(%ya_yck,np=,1,38) NP?? it's always 1 for me *shrug* I don't know what the np field represents.
}
dialog Y_cookie {
  title "YahooStuff"
  size -1 -1 483 232
  option pixels notheme
  box "Yahoo Name and Pass", 12, 6 7 230 68
  edit "", 1, 18 25 209 20, autohs 
  edit "", 2, 18 52 209 20, pass autohs 
  combo 3, 258 18 100 70, edit drop
  list 4, 7 78 463 121, hsbar 
  combo 6, 373 18 97 70, edit drop
  button "HTTP Login Get Cookies", 7, 259 48 210 25
  button "Close", 9, 403 202 65 25, ok cancel
}
on *:dialog:y_cookie:init:0: {
  if (%tmp_nk) { did -a y_cookie 1 %tmp_nk }
  if (%tmp_ps) { did -a y_cookie 2 %tmp_ps }
  didtok y_cookie 3 124 $yli_srvs | did -i y_cookie 3 0 login.yahoo.com
  var %blah = 80|443 | didtok y_cookie 6 124 %blah | did -i y_cookie 6 0 80
}
on *:dialog:y_cookie:sclick:7: { ypract }

Comments

Sign in to comment.
mookspookz   -  Apr 02, 2012

yeah...
and so, how do we decode the cookie?
how do we find the password?

 Respond  
evil-critter   -  Feb 12, 2012

i left out the
menu status {
Decode Yahoo Y Cookie:/dialog -m y_cookie y_cookie
}
my bad

 Respond  
IllogicTC   -  Feb 11, 2012

The -l just localizes the alias to the script file it's saved to.

Try using:

/dialog -m y_cookie y_cookie

 Respond  
-prpl   -  Feb 11, 2012

hrmm.... there doesn't seem to be script in there for the popups to open the initial dialog? idk.. i tried to manually run all aliases at first i tried the ya_yck but i got an invalid $did error... any help? did you forget a line or two for the popups? or am i just that dumb and can't figure out which alias runs them.. i tried removing the -l cmnd so it wouldn't run hidden though..

 Respond  
IllogicTC   -  Feb 09, 2012

Although I probably wouldn't use this, this is a very unique snippet indeed.

Good work on this.

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.