IPB

Welcome Guest ( Log In | Register )


> Alright .NET gurus, solve this one
Hartmann
post Feb 12 2008, 11:55 AM
Post #1





Group: Admin
Posts: 3,403
Joined: 23-February 06
From: PDX/TXL
Member No.: 35



I have been scraping data off of a site (300KB) and they recently changed their URI string so that the date parameter has a hash of a date instead of the date itself.

The piece of the string I am looking at looks like this:

CODE
FDate=ZVbeOGQGDBnVmWDrJ6901w==&RDiret=Status


And more exactly the FDate parameter. Any ideas on the hashing mechanism? I know it can't be one way encryption because there would be no way to interpret that as a date (and they have to interpret it as a date).


--------------------

"There is a level of cowardice lower than that of the conformist: that of the fashionable non-conformist."
Go to the top of the page
 
+Quote Post
 
Start new topic
Replies
impala454
post Feb 14 2008, 10:02 AM
Post #2





Group: Members
Posts: 10,620
Joined: 23-February 06
From: Houston, TX
Member No.: 48



I guess I'd have to know what the site is to undersand the meaning of those querystrings.

If the MD5 hash is just an encoded date and you have a reasonable idea of the format of the date, you can set up a quick program like this:

(obviously pseudocode)
CODE
string hashtodecode = ytghdgadoghdlurgh9438gh48hg
datettime date = startdate

while(date < enddate)
{
  date = date.adddays(1)
  if(getmd5hash(date.tostring) == hashtodecode)
        break
}


edit: you can do a quick google search for MD5 get hash C# or whatever language you're using to get the standard method everyone uses
edit2: you'll also have to play around with the date.tostring("yyyy/MM/dd"), with different formats until you guess it correctly
Go to the top of the page
 
+Quote Post
Hartmann
post Feb 14 2008, 10:07 AM
Post #3





Group: Admin
Posts: 3,403
Joined: 23-February 06
From: PDX/TXL
Member No.: 35



QUOTE (impala454 @ Feb 14 2008, 10:02 AM) *
I guess I'd have to know what the site is to undersand the meaning of those querystrings.

If the MD5 hash is just an encoded date and you have a reasonable idea of the format of the date, you can set up a quick program like this:

(obviously pseudocode)
CODE
string hashtodecode = ytghdgadoghdlurgh9438gh48hg
datettime date = startdate

while(date < enddate)
{
  date = date.adddays(1)
  if(getmd5hash(date.tostring) == hashtodecode)
        break
}


edit: you can do a quick google search for MD5 get hash C# or whatever language you're using to get the standard method everyone uses



Well the issue is more the format of the date (MM/DD/YYYY, YYYMMDD, etc.) as each of those have a different representation when hashed by MD5.

Basically, the query string takes this parameter and compares it to a field in the database that holds a replica of it next to its actual value. It verifies that the data coming in is valid.


--------------------

"There is a level of cowardice lower than that of the conformist: that of the fashionable non-conformist."
Go to the top of the page
 
+Quote Post
impala454
post Feb 14 2008, 10:22 AM
Post #4





Group: Members
Posts: 10,620
Joined: 23-February 06
From: Houston, TX
Member No.: 48



QUOTE (Hartmann @ Feb 14 2008, 10:07 AM) *
Well the issue is more the format of the date (MM/DD/YYYY, YYYMMDD, etc.) as each of those have a different representation when hashed by MD5.

right, you could just come up with about 10-15 different formats and run the loop for each. once you have the format you're set. that .net MD5 hash class is pretty damn fast so it shouldn't take long.
Go to the top of the page
 
+Quote Post

Posts in this topic


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 14th August 2026 - 09:19 PM
Skin made by: skeedio.com