2010-10-01 14 views
15

मैं एक प्रोग्राम बनाना चाहता हूं जो http://www.md5crack.com/crackmd5.php के साथ संवाद करता है। मेरा लक्ष्य साइट को हैश (एमडी 5) भेजना है और उम्मीद है कि साइट इसे क्रैक करने में सक्षम होगी। उसके बाद, मैं हैश के सादे पाठ को प्रदर्शित करना चाहता हूं। मेरी समस्या साइट पर डेटा भेज रही है। मैंने एलडब्ल्यूपी का उपयोग करने के बारे में लेख देखे हालांकि मैं अभी भी खो गया हूं। अभी, हैश भेज नहीं रहा है, कुछ अन्य जंक डेटा है। मैं साइट पर डेटा की एक विशेष स्ट्रिंग भेजने के बारे में कैसे जाउंगा?मैं एलडब्लूपी के साथ पोस्ट डेटा कैसे भेजूं?

use HTTP::Request::Common qw(POST); 
use LWP::UserAgent; 


$ua = LWP::UserAgent->new(); 
my $req = POST 'http://www.md5crack.com/crackmd5.php', [ 
maxlength=> '2048', 
name=> 'term', 
size=>'55', 
title=>'md5 hash to crack', 
value=> '098f6bcd4621d373cade4e832627b4f6', 
name=>'crackbtn', 
type=>'submit', 
value=>'Crack that hash baby!', 

]; 
$content = $ua->request($req)->as_string; 

print "Content-type: text/html\n\n"; 
print $content; 

उत्तर

27

तुम गलत डेटा पोस्ट कर रहे हैं क्योंकि आप विजेट निर्दिष्ट करने के लिए HTML ले जा रहे हैं और यह वास्तव में डेटा भेजता है के साथ यह conflating।

term: 098f6bcd4621d373cade4e832627b4f6 

इसके बजाय, डेटा है कि वर्तमान में पोस्टेड हो रही है:

maxlength: 2048 
name:  term 
size:  55 
title:  md5 hash to crack 
value:  098f6bcd4621d373cade4e832627b4f6 
name:  crackbtn 
type:  submit 
value:  Crack that hash baby! 

सही कार्यक्रम:

use strict; 
use warnings; 

use LWP::UserAgent; 
use HTTP::Request::Common qw{ POST }; 
use CGI; 

my $md5 = '098f6bcd4621d373cade4e832627b4f6'; 
my $url = 'http://www.md5crack.com/crackmd5.php'; 

my $ua  = LWP::UserAgent->new(); 
my $request = POST($url, [ 'term' => $md5 ]); 
my $content = $ua->request($request)->as_string(); 

my $cgi = CGI->new(); 
print $cgi->header(), $content; 

सही किए गए डेटा बस विजेट नाम और अपने मूल्य भेजने के लिए किया जाएगा आप LWP::UserAgent की पोस्ट() विधि का भी उपयोग कर सकते हैं:

use strict; 
use warnings; 

use LWP::UserAgent; 
use CGI; 

my $md5 = '098f6bcd4621d373cade4e832627b4f6'; 
my $url = 'http://www.md5crack.com/crackmd5.php'; 

my $ua  = LWP::UserAgent->new(); 
my $response = $ua->post($url, { 'term' => $md5 }); 
my $content = $response->decoded_content(); 

my $cgi = CGI->new(); 
print $cgi->header(), $content; 

हमेशा use strict और use warnings को याद रखें। इसे अच्छा अभ्यास माना जाता है और आपका समय बचाएगा।

6

ऐसा लगता था कि क्रैकर्स इस तरह के सामान को पढ़कर बाहर निकाल देंगे। HTTP :: अनुरोध :: सामान्य में उदाहरण हैं, जो LWP :: UserAgent आपको POST डेटा भेजने के लिए चेक आउट करने के लिए कहता है। आपको केवल फॉर्म डेटा भेजने की आवश्यकता है, न कि मेटा डेटा जो इसके साथ जाता है।

आपके पास WWW::Mechanize का उपयोग करके एक आसान समय हो सकता है क्योंकि इसमें अधिक मानव-केंद्रित इंटरफ़ेस है।

संबंधित मुद्दे