Hacker Trap

Úgy érzem eleget teszteltem már a védelmi szkriptemet, így már elérkezettnek látom az időt, hogy itt is közzétegyem. hacker protection

Előrebocsájtom, hogy használatáért semmilyen felelősséget nem vállalok, és programozó sem vagyok, de nagyon igyekeztem.

Egy kicsit azért visszacsévélem az időt, hogy a credit ne maradjon ki. Az egész bűvészkedésnek az alapját a CrawlerController script adta, amely a referrer spammerek ellen védelmezi az oldalunkat. Sajnos, nem voltam eléggé ügyes, hogy működésre bírjam, de nagyon sok részt használtam belőle így aztán jár neki az elismerés. Nem hagyhatom ki kow-t sem, aki birka türelemmel válaszolgatott a sokszor értelmetlen kérdéseimre.

Akkor most veszek ismét egy éles visszakanyart, és folytatom ott, ahol abbahagytam, de először egy bajuszhalmaz, amolyan felsorolás a funkciókról:

  • robot validálás
  • user agent kitiltási lehetőség
  • IP cím kitiltási lehetőség
  • URL string szűrés az adatbázis rosszindulatú manipulálása ellen
  • string logfájlnak köszönhetően ellenőrzött és testreszabhatóan agresszív IP bannolás

A telepítés rendkívül egyszerű, a csomag letöltését, kicsomagolását követően egy tetszőleges könyvtárba kell feltölteni a fájlokat majd a könyvtár security.php fájlját minden védelem alá helyezendő oldalba behívni a legelső sorban.

<?php require “/ide/jön/a/path/tetszolegeskonyvtarnev/security.php”; ?>

És akkor lássuk jelen esetben most mi is lapul a security.php fájlban

<?php
$ua = $_SERVER[‘HTTP_USER_AGENT’];
$webadress = $_SERVER[‘REQUEST_URI’];
$ip = $_SERVER[‘REMOTE_ADDR’];
$target = file(dirname(__FILE__).”/ip-logfile.txt”);
$sqltarget = file(dirname(__FILE__).”/sql-injection.txt”);
$ualist = file(dirname(__FILE__).”/banned-ua.txt”);
$loc = dirname(__FILE__);

//Indul a szkript
//ha a látogató azt mondja magáról, hogy robot
if(strstr($ua, ‘msnbot’) || stristr($ua, ‘Googlebot’) || stristr($ua, ‘Yahoo! Slurp’)){
//lefut a robot validálása
require “$loc/security-proxy-checker.php”;
}
else{

//bannolt user-agentek
foreach($ualist as $item){
$item = trim($item);
if(stristr($ua, $item)){
require “$loc/message.php”;
exit;}}
//IP ellenorzés követketik
foreach($target as $item){
$item = trim($item);
if(stristr($ip, $item)){
require “$loc/message.php”;
exit;
}}

//sql támadásának ellenorzése
foreach($sqltarget as $sqlitem){
$sqlitem = trim($sqlitem);
if(stristr($webadress, $sqlitem)){
require “$loc/index.php”;
exit;}}}
?>

Az sql injekciós támadások azonosításához ezen az oldalon megtalálható remek kis táblázatot használtam, valamint kiegészítettem ezekkel a szavakkal:

  • truncate
  • union
  • drop
  • delete
  • get
  • post

Szerintem az a legszerencsésebb, ha beszerelsz egy olyan statot, amely logolja a lekért url-eket és ennek megfelelően bővíted az sql-injection.txt-ben található tartalmat.

Ahogy, az az iménti kódból kiderült lesznek logfájljaink és lesz egy üzenet valamint egy index.php fájl is amely a kettővel korábbi posztom index fájljának felel meg, de egy kicsit okosabb lett azóta. Ezek a fájlok fognak a rosszalkodók ellen fellépni.

Az index.php tartalma a következő:

<?php

Hívhatnánk akár adatgyűjtő.php-nek is funkciója alapján. Elteszi biztos helyre a játékos kedvű próbálkozó IP címét, valamint egy ellenőrző logfájlba (requested-string.txt) bepakolja a lekért URL-t, a hozzátartozó IP-t és a lekérést időpontját. Ezt a fájlt mindenképpen érdemes időnként felülvizsgálni, hogy a véletlenül (?) bannolt népnek ismét hozzáférést biztosíthassunk.

A message.php-mat a csomagban megtalálhatod, ez már egy nagyon Úriemberhez méltó tartalommal rendelkezik. A legelső verzióban több volt a vulgáris szó, mint a felkiáltójel.
Jó ötlet lehet esetleg az ördögűző, vagy valamely egyéb paráztató film félelmetes jeleneténél készült printscreen megjelenítése…

Mit kellene még leírnom?

Ja igen, letölteni itt lehet

hacker-trap download

Szerintem semmi nem maradt ki, szóval védelemre fel!
További kellemes napot!

38 thoughts on “Hacker Trap

  1. none

    Húúú… Zoli, ez nagyon jól hangzik így elsőre, és holnap ha lesz egy kis időm megpróbálom beleépíteni az oldalamba, aztán majd bombázlak megint a hülye kérdéseimmel, de máris egy hülye kérdés:

    Pontosan mire is való ez az egész? Mert teljesen nem derült ki nekem. Mi ellen véd pontosan?

    “Ezt a fájlt mindenképpen érdemes időnként felülvizsgálni, hogy a véletlenül (?) bannolt népnek ismét hozzáférést biztosíthassunk.”

    Hogyan lehetséges az, hogy “véletlenül” valaki bekerüljön a logba?

    Egész pontosan milyen hacker próbálkozásra kell számítani, ami ellen ez védelmet nyújt? Egy kicsit az előzményekről írnál pár sort?

    Bocsi, hogy fárasztalak megint! 🙂

  2. Bagi Zoltán Post author

    teljesen igazad van none. A posztba beszúrtam egy felsorolást bajuszhalmaz álcanéven. Én arra használom, hogy a hackerek adatbázist manipulálási technikáit meghíúsítsam. Amikor a gyanus URL-t lekéri, lesújt a ban és onnantól már logolt IP-vel nem jut messzire. Mindenképpen ajánlom, hogy telepítést követően járd körbe a szkriptet, mert lehet, hogy az általa generált URL-ek megbuknak a szűrőn, és így követhető el a vétlen bannolás. Ezért is volt fontos a kontroll logfájl, amiből kiderül kinek az IP-je miért lett tárolva. Ha tévedtünk, módosítjuk a szűrő fájlt… Ezen kívül van egy banned-ua list, ahova én eddig két botot tettem be. Számukra a crawl egy üzenetre korlátozódik a szkript által. Hát nagyjából ennyi 🙂

  3. none

    Köszi Zoli!

    Holnap délután megpróbálom beüzemelni, és azonnal ide is írom a teszt eredményét! 😀

    Köszi!!

  4. none

    Gyorsba egy kérdés még Zoli!
    Meg lehetne oldani valahogy ebben a script-ben, hogy egy egész IP (Country) tartományt kitiltsak, illetve blokkoljak az oldalról? Mert az nagyon pompás lenne még! Egyenként elég nehézkes a gyökér Törököket kitiltani. Tudom ez “az ellen nem véd” mert jöhetnek proxyval is, de így is nagy segítség lenne.

    Köszi előre is!

  5. Bagi Zoltán Post author

    Már megint malacod van. Kicsit agresszív lépésnek tartom a dolgot, de teljesen jogos. Sokat csesztetnek onnan engem is.

    deny from 62.29.0.0/17
    deny from 62.56.128.0/22
    deny from 62.85.128.0/19
    deny from 62.108.64.0/19
    deny from 62.113.0.0/19
    deny from 62.184.58.0/27
    deny from 62.185.166.64/26
    deny from 62.184.178.96/29
    deny from 62.186.77.0/26
    deny from 62.201.192.0/18
    deny from 62.229.128.0/24
    deny from 62.229.130.0/24
    deny from 62.244.192.0/18
    deny from 62.248.0.0/17
    deny from 64.18.138.0/24
    deny from 64.28.128.0/20
    deny from 65.182.7.0/24
    deny from 66.178.5.0/24
    deny from 66.178.52.0/24
    deny from 66.205.36.0/22
    deny from 69.30.204.0/23
    deny from 80.71.128.0/20
    deny from 80.88.138.224/27
    deny from 80.88.141.160/27
    deny from 80.251.0.0/20
    deny from 80.251.32.0/20
    deny from 81.6.64.0/18
    deny from 81.8.0.0/17
    deny from 81.21.160.0/20
    deny from 81.22.97.0/24
    deny from 81.31.193.224/29
    deny from 81.31.195.112/29
    deny from 81.31.195.136/29
    deny from 81.31.195.216/30
    deny from 81.31.196.172/30
    deny from 81.31.197.16/29
    deny from 81.31.197.64/30
    deny from 81.31.197.128/30
    deny from 81.31.198.152/29
    deny from 81.31.198.216/29
    deny from 81.31.199.72/29
    deny from 81.31.199.140/30
    deny from 81.31.199.160/29
    deny from 81.31.200.64/29
    deny from 81.31.200.76/30
    deny from 81.212.0.0/14
    deny from 82.145.224.0/19
    deny from 82.151.128.0/19
    deny from 82.222.0.0/16
    deny from 83.66.0.0/16
    deny from 83.166.48.0/28
    deny from 84.11.37.192/26
    deny from 84.17.64.0/19
    deny from 84.44.0.0/17
    deny from 84.51.0.0/18
    deny from 85.96.0.0/12
    deny from 85.153.0.0/16
    deny from 85.158.96.0/21
    deny from 85.159.64.0/21
    deny from 85.235.64.0/24
    deny from 86.108.128.0/17
    Deny from 88.240.0.0/16
    deny from 139.179.0.0/16
    deny from 144.122.0.0/16
    deny from 155.223.0.0/16
    deny from 160.75.0.0/16
    deny from 161.9.0.0/16
    deny from 168.139.0.0/16
    deny from 192.70.133.0/23
    deny from 192.129.87.0/24
    deny from 192.160.21.0/24
    deny from 193.23.156.0/24
    deny from 193.25.124.0/23
    deny from 193.41.2.0/23
    deny from 193.42.216.0/24
    deny from 193.95.0.0/17
    deny from 193.108.213.0/24
    deny from 193.109.134.0/23
    deny from 193.110.170.0/23
    deny from 193.110.208.0/21
    deny from 193.140.0.0/16
    deny from 193.178.218.0/24
    deny from 193.188.198.0/23
    deny from 193.192.96.0/19
    deny from 193.201.149.192/26
    deny from 193.201.157.0/25
    deny from 193.218.113.0/24
    deny from 193.218.200.0/24
    deny from 193.219.208.0/30
    deny from 193.220.68.0/24
    deny from 193.243.192.0/19
    deny from 193.254.228.0/23
    deny from 193.254.252.0/23
    deny from 193.255.0.0/16
    deny from 194.9.174.0/24
    deny from 194.24.224.0/23
    deny from 194.27.0.0/16
    deny from 194.29.208.0/21
    deny from 194.54.32.0/19
    deny from 194.67.205.0/23
    deny from 194.69.206.0/24
    deny from 194.117.97.172/30
    deny from 194.117.110.80/28
    deny from 194.117.113.72/30
    deny from 194.117.114.4/30
    deny from 194.117.118.40/30
    deny from 194.117.119.4/32
    deny from 194.117.119.18/32
    deny from 194.117.119.20/32
    deny from 194.117.119.22/32
    deny from 194.117.119.24/32
    deny from 194.117.119.27/32
    deny from 194.117.119.34/32
    deny from 194.117.119.53/32
    deny from 194.117.119.55/32
    deny from 194.117.119.58/32
    deny from 194.117.119.61/32
    deny from 194.117.119.73/32
    deny from 194.117.119.76/32
    deny from 194.117.119.80/32
    deny from 194.117.119.86/32
    deny from 194.117.119.93/31
    deny from 194.117.119.96/32
    deny from 194.117.119.99/31
    deny from 194.117.119.108/32
    deny from 194.117.120.15/32
    deny from 194.117.120.114/32
    deny from 194.117.120.233/32
    deny from 194.117.121.30/32
    deny from 194.117.121.70/32
    deny from 194.117.121.96/32
    deny from 194.117.121.101/32
    deny from 194.117.121.168/32
    deny from 194.117.121.192/31
    deny from 194.117.121.217/32
    deny from 194.125.232.0/22
    deny from 194.126.230.0/24
    deny from 194.133.65.0/24
    deny from 194.133.160.0/20
    deny from 194.133.240.0/23
    deny from 194.133.251.0/24
    deny from 194.133.253.0/28
    deny from 194.133.255.0/24
    deny from 194.242.32.0/24
    deny from 195.8.109.0/24
    deny from 195.33.192.0/18
    deny from 195.39.224.0/23
    deny from 195.46.128.0/19
    deny from 195.49.216.0/21
    deny from 195.64.128.0/18
    deny from 195.74.32.0/19
    deny from 195.75.202.0/26
    deny from 195.75.202.128/25
    deny from 195.75.222.0/28
    deny from 195.75.222.24/29
    deny from 195.75.222.160/27
    deny from 195.75.236.0/28
    deny from 195.75.236.96/29
    deny from 195.75.236.112/28
    deny from 195.75.238.0/25
    deny from 195.79.199.192/29
    deny from 195.79.204.192/27
    deny from 195.85.242.0/24
    deny from 195.85.255.0/24
    deny from 195.87.0.0/16
    deny from 195.112.128.0/19
    deny from 195.112.160.16/30
    deny from 195.112.166.12/30
    deny from 195.112.166.52/30
    deny from 195.112.166.60/30
    deny from 195.112.166.68/29
    deny from 195.112.166.80/30
    deny from 195.128.32.0/21
    deny from 195.128.254.0/23
    deny from 195.137.222.0/23
    deny from 195.140.196.0/22
    deny from 195.142.0.0/16
    deny from 195.149.85.0/24
    deny from 195.149.116.0/24
    deny from 195.155.0.0/16
    deny from 195.174.0.0/15
    deny from 195.177.206.0/23
    deny from 195.177.230.0/23
    deny from 195.183.236.192/26
    deny from 195.212.230.0/24
    deny from 195.212.244.8/29
    deny from 195.213.69.144/28
    deny from 195.214.128.0/18
    deny from 195.234.165.0/24
    deny from 195.242.122.0/23
    deny from 195.244.32.0/19
    deny from 195.245.227.0/24
    deny from 195.254.128.0/19
    deny from 196.3.132.0/20
    deny from 196.29.64.0/19
    deny from 196.32.32.0/19
    deny from 196.203.0.0/16
    deny from 199.89.210.0/24
    deny from 200.3.176.0/21
    deny from 200.9.216.0/24
    deny from 200.108.0.0/19
    deny from 201.238.64.0/18
    deny from 209.94.192.0/19
    deny from 212.2.192.0/19
    deny from 212.12.128.0/19
    deny from 212.15.0.0/19
    deny from 212.21.197.240/29
    deny from 212.29.64.0/18
    deny from 212.31.0.0/19
    deny from 212.33.0.0/19
    deny from 212.45.64.0/19
    deny from 212.48.224.0/19
    deny from 212.50.32.0/19
    deny from 212.57.0.0/19
    deny from 212.58.0.0/19
    deny from 212.63.170.168/30
    deny from 212.63.172.212/30
    deny from 212.63.172.224/30
    deny from 212.63.180.0/30
    deny from 212.63.180.8/30
    deny from 212.63.180.16/30
    deny from 212.63.180.28/30
    deny from 212.63.180.40/29
    deny from 212.63.180.56/30
    deny from 212.63.180.68/30
    deny from 212.63.180.84/30
    deny from 212.63.180.92/30
    deny from 212.63.180.108/29
    deny from 212.63.180.120/29
    deny from 212.63.180.200/30
    deny from 212.64.192.0/19
    deny from 212.65.128.0/19
    deny from 212.79.96.0/22
    deny from 212.79.122.0/23
    deny from 212.98.0.0/19
    deny from 212.98.192.0/18
    deny from 212.101.96.0/19
    deny from 212.108.128.0/19
    deny from 212.109.96.0/19
    deny from 212.109.224.0/19
    deny from 212.115.0.0/19
    deny from 212.125.0.0/19
    deny from 212.127.96.0/19
    deny from 212.133.128.0/17
    deny from 212.146.128.0/17
    deny from 212.154.0.0/17
    deny from 212.156.0.0/16
    deny from 212.174.0.0/15
    deny from 212.252.0.0/15
    deny from 213.14.0.0/16
    deny from 213.31.190.48/28
    deny from 213.31.223.144/28
    deny from 213.43.0.0/16
    deny from 213.62.14.64/26
    deny from 213.62.40.192/26
    deny from 213.74.0.0/16
    deny from 213.138.0.0/19
    deny from 213.139.192.0/18
    deny from 213.143.224.0/19
    deny from 213.144.96.0/19
    deny from 213.148.64.0/19
    deny from 213.150.160.0/19
    deny from 213.153.128.0/17
    deny from 213.155.96.0/19
    deny from 213.159.32.0/19
    deny from 213.161.128.0/19
    deny from 213.181.38.192/26
    deny from 213.186.128.0/19
    deny from 213.194.64.0/18
    deny from 213.202.0.0/19
    deny from 213.204.64.0/18
    deny from 213.208.3.192/29
    deny from 213.208.39.0/24
    deny from 213.209.169.144/29
    deny from 213.232.0.0/18
    deny from 213.236.32.0/19
    deny from 213.238.128.0/18
    deny from 213.243.0.0/18
    deny from 213.248.128.0/18
    deny from 213.254.128.0/19
    deny from 216.139.188.192/27
    deny from 217.17.144.0/20
    deny from 217.21.68.0/22
    deny from 217.23.110.96/27
    deny from 217.31.224.0/19
    deny from 217.64.144.0/20
    deny from 217.64.208.0/20
    deny from 217.68.208.0/20
    deny from 217.77.241.113/32
    deny from 217.77.241.218/32
    deny from 217.77.242.169/32
    deny from 217.77.246.192/30
    deny from 217.131.0.0/16
    deny from 217.138.38.248/29
    deny from 217.169.192.0/20
    deny from 217.173.157.128/28
    deny from 217.173.157.192/27
    deny from 217.173.158.64/27
    deny from 217.174.32.0/20
    deny from 217.174.224.0/20
    deny from 217.194.135.160/28
    deny from 217.195.192.0/20

    .htaccessbe vele.

    Ez a per előtti és per utáni IP tartományokat bannolja. Ha esetleg szeretnéd az IP rangek helyességét leellenőrizni http://www.ipaddresslocation.org/ip_ranges/get_ranges.php itt segítenek 🙂

  6. none

    Köszönöm szépen megint!

    Na akkor elméletileg beépítettem a védelmet. nem baj, ha benne hagytam beszerelve a “google proxy hack” védelmet is az oldalban? Mert, ha jól vettem ki a mostani leírásból, akkor ez a proxy hack ellen is véd. Vagy tévedek? Mert ha igen, akkor kiveszem az előzőleg berakott google proxy hack védelmet. Aztán…

    Ha jól vettem ki a kódból, akkor a file-okban a kódba nem kell megváltoztatni a file-ok elérési útját, csak 1x kell az elején belőni a mappát és késsz.

    Én Joomlában az index.php file legelső sorába tettem a “php require” meghívást a megfelelő path-al. Hiba üzit nem kaptam eddig, kíváncsian várom az eredményeket.

    Valamint találtam egy ilyen sort a security-proxy-checker.php fileban:

    “/web/dirofseolinks/directoryofseolinks.com/docs/message.php”

    Ez az elérési út így rendben van? Nem kellene ezt a saját path-mra átírni?

    Csak kérdés. Nem vagyok programozó. 😀

  7. none

    Még pár kérdés. Mi a leg biztonságosabb attributtom ezeknek. Mehet minden 444-re és a logfile 644-re?

    Egyébként meg köszi az IP listát! 😀

    Ez mind Török IP?

  8. none

    Bocsi, hogy megint teleszórom a Blogodat kommentekkel, de máris fogott valamit. 🙂 A kérdésem, hogy ez a robot kitiltható-e vagy sem?

    banned-ua.txt: libwww-perl – Baiduspider

  9. Bagi Zoltán Post author

    Teljesen igazad van, benne maradt a pathom, köszi, hogy felhívtad rá a figyelmem. Javítottam, felülírtam, feltöltöttem. Elvileg, ha nem hagyom benne a sajáth pathomat, semmi telepítést nem igényel a feltöltést és a template be való behíváson kívül. A régi proxy defender ebben is benne van, csak itt a security-proxy-checker.php fájlban. Megtennéd, hogy leszeded mégegyszer a packot és felülírod az új fájlt?

    A logfájlok nálam 644-en. A létrehozott mappát én betettem a robots.txt-mbe, ha valaki ennek ellenére mégis meg óhajtja tekinteni, indul az index.php 🙂

    A libwww-perl és Baiduspider azért tettem bele a bannoltak közé, mert totál értelmetlen URL-eket kért le, mindenhol spambotként jellemzik.
    A Baiduspiderre meg egyáltalán nincs szükségem és gyakran rájárt a lapra. Hát, ne járjon:)

    Az IP lista, az valójában IP tartomány lista, minden egyes sora több IP-t fed le.

  10. none

    Wowww… 😀 Zoli! Megint le a kalappal! Máris fogott valamit! Az említett robot-ot már én is kérdeztem a seo fórumon, hogy kitilthatom-e vagy sem, de nem válaszolt senki. 🙂 Nekem is gyanús volt. 🙂
    Egyel kevesebb robot lassítja az oldalam. 🙂

    Viszont… most ki fogsz vágni… 🙂
    Én a BBclone stat-ot használom, amit nagyon kedvelek, viszont van vele egy gond. Sajnos elég problémás visszanézni a látogatók pontos IP címét. Nem lehetetlen, de elég nehézkes. Viszont az nagyon megkönnyítené a dolgom, hogy visszakeresem, valóban rosszindulatú volt-e a látogatóm, ha esetleg a logból az is kiderülhetne, hogy hány óra, hány perckor próbálkoztak. Mert azért én visszanézném a logot néha, hogy ténylegesen rosszindulatú volt-e a “látogató”. 🙂

    Elképzelhető, hogy ezt még bele lehessen integrálni?

    Egyébként meg még majd jobban átböngészem a weboldalad, ami bennemaradt a security proxy fileban, mert érdekel. Csak már nagyon késő van hozzá.

    Még 1x köszi ezért a nagyszerű védelemért!

  11. none

    (Remélem berakja a comment rendszer)

    Egyébként ezt a lekérést blokkolta a védelem:

    /index.php?option=com_search&submit=Search&searchphrase=all&ordering=newest&searchword=wp%20admin&rd=1

  12. Bagi Zoltán Post author

    None, az időt beműtöttem, arra kérnélek, töltsd le mégegyszer és az index.php-t írd felül.

    Az általad megadott URL tartalmaz egy szóközt [%20] és ezért lett letilva. Ha ezt szeretnéd engedélyezni, annyi az összes teendőt, hogy törlöd az sql-injection.txt legelső, teljes sorát. 🙂

  13. none

    Oké, köszi szépen felülírtam. Még kicsit tesztelem, aztán “beszerelem” az összes oldalamba ezt a védelmi rendszert. Nagyon baba lett!

    És ez nagy gond, hogy az URL tartalmaz egy szóközt [%20]?

    Engem inkább a [wp%20admin] rész fogott meg.

    Ja igen… Még valami. Az ki van zárva, hogy a google, msn, yahoo bot ki legyen bannolva. Van erre esély? Elvileg a robot azonosítás után, őket nem dobhatja ki a script.

    Viszont az imént magamat is kibannoltam ezzel az URL-el, amivel minden rendben van elvileg:

    /linkex/index.php?page=image&view=delete

    Itt a [delete]-vel van a gond gondolom. Ugye?

    Köszi!

  14. Bagi Zoltán Post author

    None, a védelmet teljes mértékben a directoyra készítettem. Valóban itt a delete okozta a bant. Én végigjártam a szkript összes lehetséges URL-jét és ezek alapján húztam legszorosabbra a madzagot. Így került bele a POST, GET, DELETE, TRUNCATE kifejezés. Ami számodra gondot okoz a rendes működéshez, azt töröld ki. Elvileg a karakterszűrőn fenn kell akadnia a támadónak.

    A robotok esetén egy proxy validálás történik és utána máris a tartalmat kapják. Bad botokat kitilthatsz vele, de nekem mindhárom kereső tartalmazza az oldalam tehát őket bannolni nem fogod. 🙂

  15. none

    Kicsit agódom. Már 22 órájja nem járt nálam sem google, sem yahoo, sem msn bot. Ilyen még nem fordult elő. 🙁 Remélem nincsen semmi gáz.

  16. Bagi Zoltán Post author

    None, nekem elég régóta benn van ez a védelem, de most én is kivettem a robot validálást, mert eltűnt a directorym kezdőlapja. Az összes többi oldalon is be van hívva, és azok benne vannak az indexbe, de megtesztelem így.

    $ua = $_SERVER[‘HTTP_USER_AGENT’];
    $webadress = $_SERVER[‘REQUEST_URI’];
    $ip = $_SERVER[‘REMOTE_ADDR’];
    $target = file(dirname(__FILE__).”/ip-logfile.txt”);
    $sqltarget = file(dirname(__FILE__).”/sql-injection.txt”);
    $ualist = file(dirname(__FILE__).”/banned-ua.txt”);
    $loc = dirname(__FILE__);

    //bannolt user-agentek
    foreach($ualist as $item){
    $item = trim($item);
    if(stristr($ua, $item)){
    require “$loc/message.php”;
    exit;}}
    //IP ellenorzés követketik
    foreach($target as $item){
    $item = trim($item);
    if(stristr($ip, $item)){
    require “$loc/message.php”;
    exit;
    }}

    //sql támadásának ellenorzése
    foreach($sqltarget as $sqlitem){
    $sqlitem = trim($sqlitem);
    if(stristr($webadress, $sqlitem)){
    require “$loc/index.php”;
    exit;}}

    így néz ki a proxy check nélkül. Tedd be a security fájlba és nézd meg mi történik a robotkkal.

  17. none

    Öööö… nem tudnád csatolni egy php vagy txt fileban? Már nem merek innen bemásolni semmit, mert akkor azt tuti még 10 percig javítgatom 😀

    Most egyenlőre kivettem a védelmet, és csak a “sima” régi google proxy hack védelmedet raktam vissza, mert azzal nem volt eddig semmi gond.

    Még picit várok mi lesz.

  18. Bagi Zoltán Post author

    Töltsd le újra a zipet 🙂 Tudod az a furcsa, hogy végig figyeltem az indexeket és a Google webmaster centralt. Remélem nincs korreláció.

  19. none

    Oké, köszi!
    Gondolom nálad nincsen ilyen probléma?
    Pedig nem csináltam semmit sem. Csak ez a védelem van berakva, nem matattam semmit sem a kódban.

    Egyébként az eredetvizsga oldalam tenap előtt nekem is eltűnt, de csak a .com-os google keresőben. A .hu-n bennmaradt. Nem nehéz megtalálni. Az első helyen vagyok 😀 Kicsit aggódtam, de mára visszatértem a .com-os keresőben is az első helyre. 😀

    (jó az új design:))

  20. none

    Még mindíg aggódom. 🙁 Visszatettem a régi proxy védelmet, és visszatért a google ill. yahoo bot is. Aztán most reggel ismét megpróbálkoztam ezzel az új védelemmel, de azóta megint nem volt nálam 1 bot sem. 🙁 Mindegy, még egy picit várok. Ha estig megint nem tér vissza 1 bot sem, akkor kiszerelem ezt a védelmet, és visszarakom a “régi” proxy védelmet. Nálad nincsen ilyen gond Zoli?

    Üdv: Imre

  21. none

    Most próbaként a következőt csináltam. Az új csomagodat letöltöttem, és felülírtam a régit vele.

    Aztán visszaszereltem még az index.php file-ba az előzőleg frankón működő google proyx hack reversedns.php file-t.

    Kíváncsian várom mi fog törpénni. 🙂

  22. Bagi Zoltán Post author

    Imre, nálam járt a Yahoo Slurp! és a Googlebot is. Így szerepel nálam most:

    require “/directoryofseolinks.com/reversedns.php”;
    require “/directoryofseolinks.com/docs/security.php”;

    Erre a blogra meg most teszek fel valami normális stat plugint, mert az analyticstől már rosszúl vagyok időnként. 🙂

  23. none

    Az elérési út hasonlóan néz ki nekem is, csak természetesen más mappa nevekkel. Most megint várok mi fog törpénni. Ha visszatérnek megint a botok, akkor megint megpróbálom visszatenni az “5in1” Hacker Trap védelmet! 😀 Mégis jobb lenne, ha egybe van minden. De már nem tudtam mire gondolni.

    Én a BBclone stat-ot használom, nekem nagyon bejött. Az Analytics-et mondhatnám, csak a hagyomány miatt raktam fel. 😀 Persze ha találsz jobban, ne felejtsd el megemlíteni a nevét. 😀

  24. none

    Hali!

    Warning: stristr() [function.stristr]: Empty delimiter. in /home/content/e/2/1/e21m20b27/html/defendtrap/security.php on line 28

    Error: headers already sent in security.php on line 28.
    Stopped at line 887 in joomsef.php: HEADERS ALREADY SENT (200)
    URL=http://xyz.comoption=com_frontpage&Itemid=1:
    OPTION=com_frontpage:

    Most itt volt a robot, és gyorsan gondoltam teszek egy próbát. Visszatettem az eredeti hacker trap-ot, és a fenti hibaüzit kaptam akkor, ha a Joomla roor index.php-be tettem ezt a rendszert. Érdekes, mert eddig nem kaptam ilyen hibaüzit, mikor először próbáltam. Aztán kivettem és átraktam az aktuális temlatem index.php file-ba, és ott meg nem produkálja ezt a hibaüzit.

    Van valami ötleted hol keressem a hibát?

  25. Bagi Zoltán Post author

    Sajnos még egyenlőre csak WordPressben és Indexscriptbe szereltem be ezidáig. De szerintem azt kellene megnézni mi van a hibát adó security.php 28.-ik sorában. Ebben a fájlban még benne van a proxy ellenőrzés, vagy ez már anélküli?

    Ezen a blogon most a proxy-kat az eredeti reverdedns nézi, és utána lefut a hacker trap is. Tegnap reggel újra cachelt a goolgebot.

  26. Bagi Zoltán Post author

    Imre, most a directory-n vissza tettem az 4 in 1 rendszert, némi módosításokat eszközölve, és 24 órás bot activity felügyelet alá helyezve. 😀

  27. Bagi Zoltán Post author

    Nagyon lól néz ki a dolog:
    1897 /blog/2007/03/
    /blog/index.php
    15 January 2008
    04:34:48 PM
    #
    Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) lj511664. crawl. yahoo. net
    1896 /12/general-directories/5
    /
    /show_cat.php
    15 January 2008
    04:33:38 PM
    #
    Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) crawl-66-249-66-196. googlebot. com

    Még várok, de holnap feltöltöm az egészet 🙂

  28. none

    Ez még a régi, első verzió, és ez van a 28. sorban:

    if(stristr($ip, $item)){

    Igazából, én befejeztem a tesztelést. Sajnos úgy látom vissza kell tegyem a régit. 🙁 Már 4x cserélgettem. Amikor ez volt bennt akkor egyetlen 1x sem voltak itt a botok! Csak akkor jöttek vissza, amikor a “régi” google proxy hack (teleszórom a blogodat kulcsszavakkal! 😀 ) verzió volt bent. Szóval most végleg kiszerelem a rendszert. 🙁 Nem akarom, hogy a botok megorroljanak rám. Ha esetleg publikálsz, egy újabb verziót, akkor is mindenképpen vevő vagyok rá! 😀

    Ma eszembe jutott egy újabb marhaság, de ezt majd mindjárt privátban megírom a fórumon. 🙂

    Egyébként nem gond, hogy megszórlak kommentekkel? Ha gond, nyugodtan töröld.

  29. Bagi Zoltán Post author

    Dehogy baj, így úgy tűnik mintha sok látogatóm lenne, szóval halmozz csak bátran a kommentekkel.

    Igyekszem pár napon belül egy biztonságosan működő 4 in 1 rendszert összehozni. Majd időnként nézz vissza 😀

  30. Csicso

    Szia Zoli!

    Nagyon jók a scriptjeid, a neten nem is nagyon látni hasonlókat, robot-trapből is csak gyengébbek vannak, ill. most készül egy: http://www.robottrap.com/ kiváncsi leszek arra. Ahogy leírtad, hogy milyen sok dologra nyújt megoldást, a scripted abszolút megérdemelné, hogy “standarddá” váljon.

    Kérdésem, hogy január óta mik a tapasztalatok a védelmi scripteddel? Jól működik, az oldalt nem lassítja? A másik meg, hogy hova include-oljam? Minden .html (valójában persze .php, csak a kiterjesztés .html) fájlba, vagy minden .html fájlba, plusz még olyanokba is, mint a comment scriptem összes php-ja (pl configuration.php, module.php, stb.), tehát abszolút mindenbe (a comment script már include-olva van a .html fájlokba)?

    Köszi!

  31. Bagi Zoltán Post author

    Csicso, örülök, hogy tetszik, volt vele szívás bőven. Amennyiben a tárhelyen engedélyezett a legtisztább megoldást a .htaccess fájlba beillesztett

    php_value auto_prepend_file “/data/www/security.php”

    megoldás adja, ami egyenértékű a fájlok tetejére való beincludolással. Azaz lefut minden lekérés előtt, így nem kell szenvedni a beépítéssel.

    A tapasztalatokról, pedig annyit mondanék, hogy a logfájlom alapján http://seo.i-connector.com/core/requested-string.txt megállapítható, hogy az oldalfeltörések mögött sok esetben automatizált robot scriptek állnak. A hülye is látja, hogy ez egy wordpress mégis sokszor a joomla URL mintázatot próbálják támadni. Lényegesen nem lassítja szerintem az oldalt, de ha úgy döntesz a ip lofgájlból időnként kitörlöd a címeket és meg is vagy. AZ sql-injection.php-ben való sztringeket pedig érdemes a saját szkriptedre szabni, tehát beépítés után végig kell menni a szkripten, hogy meggyőződj arról, hogy ártatlan látogató ne kapjon ip bant.:)

    Én a fájlokat tartalmazó mappát is betettem a robots.txt fájlba, hátha humanoid csibészek is erre járnak:)

  32. Csicso

    Köszi szépen, ha nem működne úgy, megkérem őket, hogy működjön, nagyon készségesek. Egyébként mi az hogy URI? Nem tudom, megfigyelted-e már itt a kommentelésnél, vagy direkt van-e, hogy ha nem írok be semmit az URL/URI mezőbe, egyszerűen nem engedi, hogy a matematikai műveletre lépjek, össze-vissza lépked a kurzor úgy, aztán mondjuk kitörölhetem az URL-t, de elég idegesítő.

  33. Bagi Zoltán Post author

    Az URI egyenlő Az URL-lel. Nagyon gyakran így írják a webadress-t.
    Csicso, milyen böngészővel, virusírtóval vagy?

  34. none

    Szia Zoli!
    Még mindig lenyűgöz ez a script. 🙂 Egyszerűen zseniális, bár lehet csk én látom így. Rengeteg oldalamon a mai napig használom. A script-et be tudom úgy állítani, hogy ha bizonyos kulcsszavakat megtalál az user agent-ben akkor xy helyre irányítsa át a látogatót? Szóval, aki nem megy át a validáláson az ne fehér oldalt kapjon hanem át legyen irányítva egy a script-be beállított weboldalra.
    Köszi!
    Imre

  35. Bagi Zoltán Post author

    Szia Imre!

    A

    //bannolt user-agentek
    foreach($ualist as $item){
    $item = trim($item);
    if(stristr($ua, $item)){
    require “$loc/message.php”;
    exit;}}

    részt kell módosítani a 302 -es redirecttel. Például

    //bannolt user-agentek
    foreach($ualist as $item){
    $item = trim($item);
    if(stristr($ua, $item)){
    header(‘Location: http://www.google.com/‘);
    exit;}}

  36. Nomad

    Sziasztok,

    Az utóbbi pár napban sorozatos támadás éri az oldalam. Átnéztem a logot és kiderült, hogy a weboldalon a phpmyadmin, valamint egyéb adminisztrációs oldal elérhetőségét keresik. Tud-e valaki valamilyen megoldást, hogy kivédhető legyen?

    Alábbiakban pár IP, amelyek szkennelték az oldalt:
    211.100.49.195
    200.247.215.250
    211.11 5.234.143
    98.127.248.152
    121.176.124.65
    200.111.168.170
    217.148.86.26
    211.91.132.133

  37. Bagi Zoltán Post author

    @Nomad, a helyedben én megnézném, melyik országhoz tartoznak az IP-k és bannolnám ezen terükethez tartozó IP rangeket .htaccess-ből.

    Sok sikert!

Comments are closed.