Besoins
- remettre un ensemble de pages à leur état précédent : revenir à la page stable (par défaut, la précédente n'ayant pas été éditée par le spammeur) + supprimer les pages du spammer (même si elles ne sont pas indexées par les moteurs de recherche)
- supprimer des pages sans intérêt (dangereux mais bon) : page unique créée mais ayant une dépendance à une autre page (ne peut pas être supprimée par défaut dans wikini)
- supprimer des commentaires sans intérêt ou avec du spam => reste relativement manuel
- forum : supprimer les URL abusives d'utilisateurs (pas de post)
exemples : 194.135.103.9 66.235.211.117
à checker : 195.46.172.56 82.146.41.57 83.237.56.93 65.75.166.200 72.36.254.194 193.201.205.242 82.146.41.57
Méthode
pour phpbb
cela reste simple, détection / modification
SELECT * FROM `phpbb_users` ORDER BY `user_id` DESC 1 ; voir les derniers utilisateurs inscrits
SELECT * FROM `phpbb_users` WHERE user_posts =0 AND `user_website` <> '' AND user_id >1000 ; voir ceux qui n'ont aucun post et qui ont inscrit un website
update `phpbb_users` set user_website='', user_sig='',user_occ='', user_interests='',user_from='',user_icq='' where user_id > 1313 and user_email like '%ru' ; élimine les sites douteux (pas ma faute si les spammeurs sont russes ces derniers temps...)
update `phpbb_users` set user_website='', user_sig='',user_occ='', user_interests='',user_from='',user_icq='' where user_posts =0 AND `user_website` <> '' AND user_id >1000 ; enlève ceux qui n'ont pas de post mais ont un site web... (faudra vérifier ceux qui postent pour de faux...).
update `phpbb_users` set user_website='' where user_id > 1310 and user_email like '%ru' ;
SELECT user_id, user_email, user_website FROM `phpbb_users` WHERE user_website <> '' ; pour voir ceux qui ont mis un site web
SELECT user_id, user_email, user_website, `user_sig` , `user_occ` , `user_interests` FROM `phpbb_users` WHERE user_website <> '' ORDER BY user_id DESC 1 ;
pour wikini
pour du spam de pages :
SELECT * FROM `wiki_pages` ORDER BY `time` DESC ; voir les dernières pages modifiées
SELECT * FROM `wiki_pages` WHERE latest = "Y" AND user = 'host-148-244-150-52.block.alestra.net.mx' ORDER BY `id` DESC ; pour trouver les pages spammées
- obtenir l'id de la page précédente à celle créée par le spammer (pour y revenir) : c'est le max(id) pour lequel latest est à 'N' et le tag est identique à une page du spammer (qui a latest = 'Y')
select a.tag,max(b.id) from wiki_pages a, wiki_pages b where a.tag=b.tag and a.user='host-148-244-150-52.block.alestra.net.mx' and a.latest='Y' group by a.tag;
- identifier les pages uniques (créées par le spammer)
hum il faut un join externe...
pour ces pages, faire un delete direct permet de ne pas les conserver (inutiles)
- identifier les pages spammée ayant une page avant (pour permettre le retour arrière)
select a.tag,max(b.id),count(b.id) as nb from wiki_pages a, wiki_pages b where a.tag=b.tag and a.user='host-148-244-150-52.block.alestra.net.mx' and a.latest='Y' and b.latest='N' group by a.tag;
Vu que MySQL 4.0 ne gère pas les select imbriqués... le bash shell ça le fait
- identifier les pages nouvellement créées (il y a une seule ligne avec latest="Y")
select a.tag,max(b.id) maxid, count(b.tag) from wiki_pages a, wiki_pages b where a.tag=b.tag and a.user='host-148-244-150-52.block.alestra.net.mx' and a.latest='Y' group by a.tag having count(b.tag)<2;
for id_page in `gawk -F "|" '{ print $3 }' ./connard_pages_uniques.txt`
do
mysql -u user base --password=password <<EOF
select id,tag from wiki_pages where id=$id_page ;
delete from wiki_pages where id=$id_page;
\q
EOF
done
- récupérer les id de la page précédente (les pages uniques créés n'apparaissent pas dans cette liste...)
select a.tag,max(b.id),count(b.id) as nb from wiki_pages a, wiki_pages b where a.tag=b.tag and a.user='host-148-244-150-52.block.alestra.net.mx' and a.latest='Y' and b.latest='N' group by a.tag;
for id_page in `gawk -F "|" '{ print $3 }' ./connard_revient_page_precedente.txt`
do
mysql -u user base --password=password <<EOF
select id,tag,user,latest from wiki_pages where id=$id_page ;
update wiki_pages set latest='Y' where id=$id_page;
\q
EOF
done
# efface toutes les pages créées par ce user
mysql -u user base --password=password <<EOF
delete from wiki_pages where user='host-148-244-150-52.block.alestra.net.mx';
\q
EOF
pour le spam de commentaires :
SELECT * FROM `eaglefaq_pages` where tag like 'Comment%' and body like '%http%' ORDER BY `latest` DESC
pour le spam de referrers :
select count(*),referrer FROM `eagledev_referrers` where referrer like '%buy%' group by referrer
delete FROM `eagledev_referrers` where referrer like '%buy%' ; oui oui c'est buy qui marche le mieux...
faut terminer eagledev : spyware yandex.ru poker slot order payday slot steroid ultram valium travel vicod xanax
quelques mails
apply@augustinsurance.net