[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Timed Socket Programming / HTTP Coding Challenge

Aware Fish

4/4/2009 6:28:00 AM


This is what I have so far as code:


=begin

Timed Challenge #1
[http://www.hellboundhackers.org/challenges/timed/timed1...]

RULE: You have 1 second to retrieve/submit this!
GOAL: 1. Decrypt the following random string: a2UpYDkyYjhyLCRebCFneA==
2. Answer like this:
/challenges/timed/timed/index.php?b64=decryptedString

=end


require 'net/http'
require 'socket'
require 'base64'

# The web server
host = 'www.hellboundhackers.org'
# Default HTTP port
port = 80
# The file we want
path = "/challenges/timed/timed1/index.php"

# This is the HTTP request we send to fetch a file
request = "GET #{path} HTTP/1.0\r\n\r\n"

# Connect to server
socket = TCPSocket.open(host,port)
# Send request
socket.print(request)
# Read complete response
response = socket.read
# Split response at first blank line into headers and body
headers,body = response.split("\r\n\r\n", 2)
print body

# The encryted message to work on
if(body =~ /\w*==/)
encoded = $1;
end

# Decryption of Base64 string value
decoded = Base64.decode64(encoded)
pre-answer = '/challenges/timed/timed1/index.php?b64='+decoded
answer = "Get #{pre-answer} HTTP/1.0\r\n\r\n"

# Submit the decrypted text to "/challenges/timed/timed1/index.php?b64="
socket.print(answer)
response = socket.read
# Split response at first blank line into headers and body
headers,body = response.split("\r\n\r\n", 2)
print body


I am stuck on using login data before submitting anything. I know how to
do this in PHP's cURL library, but not with Ruby.

Any help would be greatly appreciated. No spoiler either. I like to work
for the answer. I would not want to ruin it for my brain.
--
Posted via http://www.ruby-....

1 Answer

Martin DeMello

4/4/2009 6:34:00 AM

0

On Sat, Apr 4, 2009 at 11:57 AM, Aware Fish
<israelagnouhyattara@gmail.com> wrote:
>
> I am stuck on using login data before submitting anything. I know how to
> do this in PHP's cURL library, but not with Ruby.

Do you mean you need to first log into the site, and then get the
challenge page and submit a response? Take a look at the mechanize
library, it's meant for stuff like that.

martin