Injecția de șpaclu și umplerea învelișului (de exemplu)

Injecția SQL și umplerea coșului (de exemplu)

Era timpul zilei, cititorule!

Deci, iată fundalul meu.
Puțin mai mult de o jumătate de an în urmă, am intrat într-un singur portal, unde în URL am observat o cerere ca "Modules.php? Name = Mediacatalogpa = Newsrelizcatnewid = 3".






Fără a speranța pentru un miracol, la sfârșitul urlului am înlocuit un singur citat. "
Și ce vedem? Și vedem eroarea MySQL:
1064. Aveți o eroare în sintaxa SQL; verificați manualul care corespunde versiunii dvs. de server MySQL pentru sintaxa potrivită pentru a fi utilizată în apropierea "ORDER BY BY p.pid DESC LIMIT 0, 20" la linia 12

Acum terminăm prefața și continuăm direct la rupere!

Apuypno 4-1 = 3, totul are dreptate!

Dacă nu înțelegeți lucrarea acestui sistem, acum voi desena:
| | ////
1 45 49 50

Mai întâi definim valorile limită, am luat 10 ca valoare inițială și 50 ca valoare finală, apoi am tăiat treptat:
1-50
30-50 (ambele valori au fost corecte, de oriunde am ajuns la concluzia că domeniile pe care le avem de la 30 la 50)
i.td

3. Cu câmpurile definite, să vedem dacă informațiile pe care le input sunt afișate. Vom defila pagina de mai jos și vom vedea ceva de genul:
6 1
7 2
8 3
9 4
0 5
2 9

Ce este? Și asta, dragi prieteni, acele tsiferki pe care le-am introdus în URL.
Deci, informațiile sunt încă rezultate. Minunat!

4. Am folosit cel de-al treilea câmp pentru a scoate informații (atunci va trebui să combinați câmpurile, astfel încât să nu se afișeze informațiile la rândul lor, ci să le obțineți imediat). Pentru ca noi să putem executa interogări, trebuie să folosim comanda unire, combinând interogările. După unire, executăm direct interogarea.

Pentru a înțelege modul în care abordăm baza de date, vă voi da un design:

SELECTAȚI ceva DE LA nimic WHERE something_else = anything_known / *
SELECTAȚI NICIODATEA DE LA NICIODATĂ DE LA CĂRORA altceva = ceva_in_invest_nam / *

Să descoperim versiunea mysql care este instalată pe server (comanda versiune ()):







Întoarceți pagina în jos și vedeți că în locul în care am arătat troica, acum flauntts - 5.0.41-comunitate
Se răcește! Versiunea MySQL 5.0.41, iar în versiunile MySQL după a 5-a există un tabel INFORMATION_CHEMA. Vă spun scurt:
Acest tabel, unde toate numele tabelului din baza de date și câmpurile acestora sunt scrise, deci nu este necesar să selectăm numele tabelelor și coloanelor din ele, acum ne putem uita la numele lor. Și acest lucru se face astfel:
- Învățăm numele meselor. Utilizăm coloana table_name din tabelul TABLES în baza de date INFORMAȚII_SCHEMA:

Derulați în jos pe pagină și vedeți că există o mulțime de intrări noi, în locul în care existau trei, în toate înregistrările sunt numele meselor.


-Aflăm numele coloanelor din tabelul care ne interesează. Avem nevoie de accesul la panoul de administrare, așa că vom examina tabelul de administrare "spnuke_admins". Utilizați coloana column_name din tabela COLUMNS din baza de date INFORMATION_SCHEMA, unde numele tabelului spnuke_admins este:

Răsturnăm pagina de mai jos și vedem numele tabelelor:
admins_login
admins_key_name
admins_email
admins_password

Tabelele care ne interesează:
admins_login și admins_password

Sper că înțelegeți acest lucru, așa că vom continua.

5. Acum, continuați să extrageți dulciurile. Învățăm numele administratorilor. Utilizați coloana admins_login din tabela spnuke_admins:

Frunzați pagina în jos și vedeți datele de conectare ale administratorilor acestui site:
# Admin
# Ferz
# ewgenij
# pitbul
# Duschmann
# Sako
# stasm
# roman
# ekctpa
# stinker
# - = TaNaToS = -
# avanses
#-® = TriToN = ®-

Din nou, defilarea paginii și vizualizarea hash-ului parolei în raport cu datele de conectare ale utilizatorilor:

Deci, aici este rezultatul alegerii parolelor pentru shechem:
# Sako - 2099141

Restul parolelor nu sunt interesante. Deoarece acești administratori au trunchiat provincii. Dar utilizatorul Sako, teza prova că utilizatorul Admin.

7. Deci, momentul adevărului. Conectați-vă la sistem.

Urra. Autentificare! Sunt administratorul acestui site, zashibis!
Dar apoi m-am gândit, "Ei bine, am avut drepturile de admin, și am reușit să obțină acest lucru pe alte site-uri înainte, dar vreau mai mult!"
Apoi am decis să completez php-ul la server, atunci voi avea acces nu numai la site, ci și la fișierele site-ului însuși (adică la codul sursă)! Acest lucru este deja interesant.

După aceea, am căutat mult timp, cum aș putea să-l umplem cu un server. Nu am putut găsi nimic, din formele de încărcare a fișierelor am găsit doar încărcătorul de imagine.

Cu ce ​​nu glumesc. Am încercat să o umplem cu un fișier php cu shell. Ca urmare, am primit un matyuk, spun ei, nu avem nevoie să împușcăm orice gunoi, să ne dea poze!

Am fost chinuit și mâncat în cele din urmă, iar într-un prieten, programatorii au verificat numai numele fișierului?

8. Să atașăm extensia gif (shell.php.gif) în shell-ul nostru.

Dacă aveți întrebări, scrieți-le lui Asya, voi fi mai mult decât bucuros să vă ajut.
ICQ - 8790249







Trimiteți-le prietenilor: