Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

15.02.2008, 21:50
|
|
Постоянный
Регистрация: 07.11.2007
Сообщений: 392
Провел на форуме: 1325167
Репутация:
100
|
|
Macro, Мне бы до регулярных выражении дорасти. С константами разобраться не могу.
мне нужна программа, которая сканирует файл access_log и выдирает из него подозрительные запросы.
127.0.0.1 - - [18/Jan/2008:20:47:24 +0300] "GET /123.php HTTP/1.1" 200 4 "-" "Opera/9.25 (X11; Linux i686; U; en)"
Вышеописанное он оставляет.
А
127.0.0.1 - - [18/Jan/2008:20:47:24 +0300] "GET /123.php HTTP/1.1" 200 4 "-" "Opera/9.25 (X11; Linux i686; U; en)"
127.0.0.1 - - [18/Jan/2008:20:49:35 +0300] "GET /123.php?ID=1'+union+select,1,2,3,4,5/* HTTP/1.1" 200 4 "-" "Opera/9.25 (X11; Linux i686; U; en)"
Или
127.0.0.1 - - [18/Jan/2008:20:49:35 +0300] "GET /123.php?ID=.../.../.../.../.../.../.../etc/passwd HTTP/1.1" 200 4 "-" "Opera/9.25 (X11; Linux i686; U; en)"
Он записывал в файл warn.txt. Главное, чтобы можно было самому добавлять в базу запросы, которые нужно искать.
|
|
|

15.02.2008, 21:54
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
PHP код:
<?php
$file = file('access_log');
for($i = 0; $i < count('access_log'); $i++)
{
if(strpos('../', $file[$i]) !== false)
{
$fp = fopen('clear_access, 'w+');
fwrite($fp, $file[$i]);
fclose($fp);
}
}
?>
Что-то типа
|
|
|

15.02.2008, 21:57
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме: 6023777
Репутация:
2642
|
|
PHP код:
<?php
$array = array('union+select', '/*', '../');
$old_file_name = 'access.log';
$new_file_name = 'warn.txt';
$file = explode("\n", file_get_contents($old_file_name));
$newfile = array();
foreach($file as $str) {
foreach($array as $string) {
if(strpos($str, $string) === true) {
$newfile[] = $str;
break;
}
}
}
$file = fopen($new_file_name, 'w');
fwrite($file, implode("\n", $newfile));
fclose($file);
?>
$array - массив с подозрительными значениями.
Исис, о_О.
|
|
|

15.02.2008, 22:41
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме: 1845062
Репутация:
1079
|
|
Мой вариант:
PHP код:
<?
$log=file_get_contents('access_log');
$patterns=array('union','select','substr','script','java','\'','"','\.\.','/\*'); //символы, которые используются в регулярных выражениях, надо экранировать обратным слешем.
for($k=0;$k<count($patterns);$k++)
{
$patterns[$k]='|.*'.$patterns[$k].'.*|i';
preg_match_all($patterns[$k],$log,$suspicious[$k]);
}
$out=array();
for($i=0;$i<count($suspicious);$i++)
{
foreach($suspicious[$i][0] as $v)
{
$v=trim($v);
if(!empty($v)&&!in_array($v,$out)){$out[]=$v;}}
}
$f=fopen('suspicious.txt','w');
fwrite($f,implode("\r\n",$out));
fclose($f);
?>
Последний раз редактировалось scrat; 15.02.2008 в 22:47..
Причина: плохо видно
|
|
|

16.02.2008, 03:47
|
|
Познающий
Регистрация: 06.08.2007
Сообщений: 84
Провел на форуме: 373338
Репутация:
25
|
|
как мне правильно написать скрипт.?
у меня есть файл который нада переобразировать в НЕХ
использую bin2hex
php код виглядит так
PHP код:
$str = "?????";
echo bin2hex($str)
вместо знаков вопроса идет содержымое файла но,
в нем присутствует ? , $ , < , >, кароче все брейкеры. что мне зделать чтобы отобразилось НЕХ нормально?
|
|
|

16.02.2008, 04:03
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
PHP код:
echo htmlspecialchars($str, ENT_QUOTES);
Последний раз редактировалось Piflit; 16.02.2008 в 04:06..
|
|
|

16.02.2008, 04:25
|
|
Познающий
Регистрация: 06.08.2007
Сообщений: 84
Провел на форуме: 373338
Репутация:
25
|
|
не работает так как должно
|
|
|

16.02.2008, 04:35
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
PHP код:
<?php
function binary2hex($str)
{
$newstring = '';
$str = str_replace(" ", "", $str);
$text_array = explode("\r\n", chunk_split($str, 8));
for ($n = 0; $n < count($text_array) - 1; $n++)
{
$newstring .= str_pad(base_convert($text_array[$n], 2, 16), 2, "0", STR_PAD_LEFT);
}
$newstring = chunk_split($newstring, 2, " ");
return $newstring;
}
$str = 'xek?>$';
$str = binary2hex($str);
$str = trim(htmlentities($str));
echo $str;
?>
|
|
|

16.02.2008, 05:55
|
|
Познавший АНТИЧАТ
Регистрация: 14.10.2004
Сообщений: 1,162
Провел на форуме: 5619724
Репутация:
2944
|
|
После фигурных скобок - }, если я ставлю ";" это нормально? =) Ставлю, ибо параноик =)))
|
|
|

16.02.2008, 05:59
|
|
Познавший АНТИЧАТ
Регистрация: 14.10.2004
Сообщений: 1,162
Провел на форуме: 5619724
Репутация:
2944
|
|
И ещё один вопрос. Перед указанием пути - одна точка это current catalog, где находиться скрипт, а две точки - где коренной каталог?
И что ,если точки не указано? а просто путь, папки, файлы.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|