Active Members dancezar Posted October 27, 2014 Active Members Report Posted October 27, 2014 (edited) <?php$b=array("(",")","=","[","]","$","%","|","&","{","}","+","-","<",">",chr(47),chr(92),";","*");$atrib=str_replace($b," ",urldecode($_REQUEST['a']));$atrib="'".$atrib."'";eval("$"."var='Numele tau:'.".$atrib.";");echo $var;?>Aveti un cod vulnerabil , trebuie sa injectati in parametrul a= challenge.php?a=Dan astefel in cat sa se execute comanda LS sau DIR (daca sunteti pe windows).Postati un print si trimiteti solutia prin PM.Clasamentul se v-a realiza la final in functie de cea mai scurta solutie(numarul de caractere).Challenge-ul v-a dura pana maine:)Proof:http://s27.postimg.org/n5zbnbqer/rce.jpgSolvers:1 . Bitmap2 . mah_oneDaca nu reuseste nimeni diseara veti primi primul pont:) Edited October 29, 2014 by danyweb09 Quote
Active Members dancezar Posted October 27, 2014 Author Active Members Report Posted October 27, 2014 Hint 1:-Am uitat sa elimin 1 caracter din acea lista care poate executa comenzi.Hint 2:-Sa presupunem ca avem un tabel cu numele photo care are doua coloane id,table.Daca vom incerca sa executam un query: select table from photo . Vom obtine o eroare cel putin la mysql .Cum reparam aceasta erroare?Hint 3:Hintul 2 are legatura cu hintul 1 Quote
BitMap Posted October 27, 2014 Report Posted October 27, 2014 Eu nu de mult am facut curatenie asa ca e cam pustiu. Quote
Active Members dancezar Posted October 28, 2014 Author Active Members Report Posted October 28, 2014 GJ BitMap .Mai las challenge-ul pana diseara nu utiati de hinturi. Quote
Active Members dancezar Posted October 29, 2014 Author Active Members Report Posted October 29, 2014 (edited) Challenge closed.Felicitari celor care au reusit sa il rezolve @mah_one.Deci dupa cum arata lista aia nu avem voie sa folosim functii si nici sa executam alte instrutiuni .Instructiunea care se evalueaza in acel cod PHP este:$var='Numele tau:'.$atrib;In primul rand trebuie sa iesim din argument ca sa putem executa alta intructiune deci injectia noastra pana acuma arata asa:'.Instructiune.'In hintul 1 am spus ca am uitat sa pun un caracter in acea lista care poate executa comenzi.In hintul 2 am spus ca daca avem un tabel cu coloanele table si id , si executam urmatorul query: select table from photo.Vom obtine o eroare pentru ca , coloana table este un cuvant rezervat in Mysql , ca sa putem sa selectam coloana table fara ca sa apara eroarea o cuprindem intre `table`Hintul 3 spune ca hintul 2 are legatura cu hintul unu . Deci `table` si un caracter ca lispeste din lista aia . Si iata UBER injectia:'.`ls`.'`` este prescurtarea de la folosirea functiei shell_exec.Puteti incerca :echo `ls`; Edited October 29, 2014 by danyweb09 Quote