[ create a new paste ] login | about

Link: http://codepad.org/ThxCjqyC    [ raw code | fork ]

radekk - PHP, pasted on Oct 6:
<?php
/*
Author: radekk

Zasadniczo to nie jestem do końca przekonany czy są to podatności, o które chodziło.
Szczerze mówiąc liczyłem na SQL Injection, ewentualnie XSS/CSRF.

Analizując wysyłane i zwracane dane doszedłem do kilku wniosków:

- z 5 wysyłanych pól sprawdzane są jedynie 2 (pInput oraz send)
- pPropDown oraz pRadio to indeksy dla elementów tablicy rzutowane do typu integer
- kod pocztowy jest błędnie walidowany, stawiam że jest to regexp z wzorcem '/[0-9]{2}\-[0-9]{3}/'

Podatność - błędny pattern w wyrażeniu regularnym dla kodu pocztowego, powinno być: '/^[0-9]{2}\-[0-9]{3}$/'
*/

$aPropDown = array(1, 2, 3);
$aRadio = array(1, 2, 3);

if ( preg_match('/[0-9]{2}\-[0-9]{3}/', $_POST['pInput']) ) {

  /**
   * Podatność?
   *
   * Poprawny kod pocztowy, problem w tym, że do wzorca pasuje również treść:
   * 22-222 dowolny tekst za kodem
   * 11-111cccccccccccccccc
   * 00-000AAAA BBBB CCCC
   **/

  print "pPropDown: " . $aPropDown[ (int)$_POST['pPropDown'] ];
  print "pRadio: " . $aRadio[ (int)$_POST['pRadio'] ];
} else {

   // formularz
}
?>


Create a new paste based on this one


Comments: