Skip to content

Instantly share code, notes, and snippets.

@tguruslan
Last active January 11, 2024 12:05
Show Gist options
  • Save tguruslan/c2e83dfab968287dd04320180d875f2d to your computer and use it in GitHub Desktop.
Save tguruslan/c2e83dfab968287dd04320180d875f2d to your computer and use it in GitHub Desktop.
Пошук в базах небажаних доменів
<?php
// Параметри для підключення до MySQL серверу
$servername = "127.0.0.1";
$username = "";
$password = "";
error_reporting(E_DEBUG);
ini_set('display_errors', 'on');
$search_strings=['.ucoz.','.at.','mail.ru','yandex.','vk.ru','vk.com','narod.ru'];
$ignore_databases=['information_schema','dls_moodle'];
// Підключення до MySQL серверу
$conn = mysqli_connect($servername, $username, $password);
mysqli_set_charset($conn, "utf8mb4");
// Вибір всіх баз даних
$result = mysqli_query($conn, "SHOW DATABASES");
// Перебір кожної бази даних
while ($row = mysqli_fetch_assoc($result)) {
$database_name = $row['Database'];
if(!in_array($database_name,$ignore_databases)){
$filename=realpath(dirname(__FILE__)).'/results_strings/result_'.$database_name.'.csv';
$fp1 = fopen($filename, 'w+');
$lines=0;
mysqli_select_db($conn, $database_name);
// Вибір всіх таблиць поточної бази даних
$table_result = mysqli_query($conn, "SHOW TABLES");
while ($table_row = mysqli_fetch_row($table_result)) {
$table_name = $table_row[0];
// Вибір всіх колонок таблиці та пошук вказаного слова у кожній колонці
$column_query = "SHOW COLUMNS FROM $table_name";
$column_result = mysqli_query($conn, $column_query);
while ($column_row = mysqli_fetch_assoc($column_result)) {
$column_name = $column_row['Field'];
$search_query = "SELECT * FROM $table_name WHERE ($column_name LIKE ".implode(" OR ".$column_name." LIKE ",array_map(function($el) {return '\'%'.$el.'%\'';}, $search_strings)).")";
$search_result = mysqli_query($conn, $search_query);
// Виведення результатів пошуку
while ($search_row = mysqli_fetch_assoc($search_result)) {
foreach ($search_row as $key => $value) {
if($column_name == $key){
$lines++;
echo $database_name.', '.$table_name.', '.$column_name."\n";
fputcsv($fp1, [$database_name,$table_name,$column_name]);
fputcsv($fp1, [$key,$value]);
fputcsv($fp1, []);
fputcsv($fp1, []);
}
}
}
}
}
fclose($fp1);
if($lines==0){
unlink($filename);
}else{
echo "Результати в '".$filename."'\n";
}
}
}
// Закриття підключення до MySQL серверу
mysqli_close($conn);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment