Post176 nn

Introducción

php-reaper es una herramienta PHP para escanear código ADOdb para Inyecciones SQL

 

La idea principal es poder detectar problemas lo antes posible cuando el código esté en fase de desarrollo y no en producción, lo que implica costos más altos. Ejecutar PHP-Reaper consume mucho menos tiempo que ejecutar un escáner de seguridad automatizado completo en su aplicación. Es posible que el escáner de seguridad web no encuentre todas las posibles vulnerabilidades de Inyecciones de SQL debido a que es difícil de alcanzar el código de la IU (o necesita establecer condiciones raras). PHP-Reaper es rápido e identifica la línea exacta donde se encuentra el problema, escaneando todo el código fuente de PHP ADOdb.


Aprovecharas al máximo PHP-Reaper si lo ejecutas en cada comentario. Está hecho para ser amigable con CI

 

Ejemplos

 

Debido a la pereza, la presión o simplemente la ignorancia, los desarrolladores de PHP que usan ADOdb cometen esos errores.

 

Vulnerabilidad SQL query #1:

 

$dbConn->GetRow(“SELECT * FROM users WHERE id = $user_id”);

 

Corrección SQL query #1:

 

$dbConn->GetRow(“SELECT * FROM users WHERE id = ?”, array(‘$user_id’));

 

Vulnerabilidad SQL Query #2:

 

$ids = join(‘,’, $ids);
$dbConn->GetAll(“SELECT * FROM campaigns WHERE id IN ({$ids})”);

 

Corrección SQL query #2:

 

$dbConn->GetAll(‘SELECT * FROM campaigns WHERE FIND_IN_SET (id, ‘ . $dbConn->Param(”) . ‘)’, array(join(‘,’, $ids)));

 

Métodos peligrosos de ADOdb

 

Los siguientes métodos ADOdb se consideran peligrosos y se analizan en busca de posibles inyecciones de SQL: getone (), getrow (), getall (), getcol (), getassoc (), execute (), replace (). Tenga en cuenta que autoexecute () es inmune porque escapa automáticamente a todos los parámetros. Si tiene métodos en su base de código con los mismos nombres, p. execute () - método no ADOdb, puede ver falsos positivos. La solución es cambiar el nombre de sus métodos para que tengan nombres diferentes a los métodos predeterminados de ADODb, p. executeTask (). PHP-Reaper está escrito de esa manera porque PHP es bastante dinámico y el análisis estático no puede decirnos con fiabilidad la clase del objeto instanciado.

 

PHP-Reaper está utilizando el excelente analizador php con el mismo nombre: PHP-Parser. Actualmente usa la versión 1.4.1.

 

https://github.com/nikic/PHP-Parser

 

 

git clone https://github.com/emanuil/php-reaper.git

 

Uso

 

Escanee recursivamente el directorio con archivos php:

 

php php-reaper -d directory_with_php_files

 

o escanear un solo archivo:

 

php php-reaper -f single_file.php

 

 

Prueba de la herramienta Php Reaper


Artículos que te pueden interesar