One url to image, few results

Posted by Misiur on Stack Overflow See other posts from Stack Overflow or by Misiur
Published on 2010-04-11T11:23:53Z Indexed on 2010/04/11 11:33 UTC
Read the original article Hit count: 301

Filed under:
|
|

Hi!

I'm trying to show programmers that some captchas are too weak, and i'm breaking them. Now i've got something like this:

Function:

<?php

function cbreak($image)
{

$info = getimagesize($image);
$width = $info[0];
$height = $info[1];

$img = imagecreatefromgif($image);

$map = array();
for($y=0; $y<$height; $y++)
{
  for($x=0; $x<$width; $x++)
  {
    $color = imagecolorsforindex($img, imagecolorat($img, $x, $y));

    $map[$x][$y] = ($color['red'] + $color['blue'] + $color['green'] > 750) ? TRUE : FALSE;  
  }  
}
echo '<pre>';
for($y=0; $y<$height; $y++)
{
  for($x=0; $x<$width; $x++)
  {
    echo ($map[$x][$y] == TRUE) ? 'X' : '-';  
  }
  echo '<br>';  
}
echo '</pre>';

$sum = '';
for($x=0; $x<$width; $x++)
{
  $count = 0;
  for($y=0; $y<$height; $y++)
  {
    if($map[$x][$y] == TRUE) $count++;  
  } 

  $sum .= ($count == 0) ? 'X' : $count;
}

$sum = preg_replace('#X+#', 'X', $sum);
$sum = trim($sum, 'X');
$letters = explode('X', $sum);

$patterns = array(
/* Still not here */
);

$token = '';
for($i=0; $i<count($letters); $i++)
{
  $token .= $patterns[$letters[$i]]; 
}

echo $token; 
}
?>

Action:

<?php

$cl = curl_init("http://www.takeagift.pl/rejestracja");

curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);

$r = curl_exec($cl);


$pattern = "/src=[\"'].*[\"']?/i";
preg_match_all($pattern, $r, $images);

$c = array();
for($i=0; $i<sizeof($images[0]); $i++)
{
    if(strstr($images[0][$i], 'captcha') !== false)
    {
        $c = $images[0][$i]; 
    }
}
$s1 = substr($c, 0, -8);
echo $s1."<br />";
$s = substr($s1, 5, -1);
echo $s."<br />";
curl_close($cl);

?>

<img src="http://www.takeagift.pl/includes/modules/captcha.php?1270900968" /><br />
<img src="http://www.takeagift.pl/includes/modules/captcha.php?1270900968" /><br />
<img src="http://www.takeagift.pl/includes/modules/captcha.php?1270900968" /><br />
<img src="http://www.takeagift.pl/includes/modules/captcha.php?1270900968" /><br />
<img src="http://www.takeagift.pl/includes/modules/captcha.php?1270900968" /><br />
<?php include('cb.php'); 
cbreak("http://www.takeagift.pl/includes/modules/captcha.php?1270900968");
?>

Don't look at preg_match i still haven't learned regexp.

So as You can see links are same: (captcha.php?1270900968), but the result - not.

Help me, please (i'm not doing it to spam this portal)

© Stack Overflow or respective owner

Related posts about php

Related posts about link