Hacking/Web.

php parse_url bug #54369

2018. 7. 3. 15:02



에이프릴 이나은 인스타그램에서 갖고옴~~


[*] url : https://bugs.php.net/bug.php?id=54369


해당 버그는 fragment 안에 / (%2f) 가 존재할 때 Parsing Error 가 뜬다는 버그이다. 생각보다 PHP 자체의 버그는 쉽게 터진다는 사실을 알게 되었다..ㅋㅋㅋ 하긴 근데 parsing 이라는 것 자체가 예외처리를 제대로 해주지 않으면 많은 버그가 생길 수 있겠지.


Description:
------------
Attached patch fixes the issue.

Test script:
---------------
$url = 'http://www.example.com#fra/gment';
echo $url . "\n";
var_dump(parse_url($url));

$url = 'http://www.example.com?p=1/param';
echo $url . "\n";
var_dump(parse_url($url));

// No host, should return false
$url = 'http://#fra/gment';
echo $url . "\n";
var_dump(parse_url($url));

// No host, should return false
$url = 'http://?p=1/param';
echo $url . "\n";
var_dump(parse_url($url));

Expected result:
----------------
http://www.example.com#fra/gment
array(3) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(15) "www.example.com"
  ["fragment"]=>
  string(9) "fra/gment"
}
http://www.example.com?p=1/param
array(3) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(15) "www.example.com"
  ["query"]=>
  string(9) "p=1/param"
}
http://#fra/gment
bool(false)
http://?p=1/param
bool(false)

Actual result:
--------------
http://www.example.com#fra/gment
array(3) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(19) "www.example.com#fra"
  ["path"]=>
  string(6) "/gment"
}
http://www.example.com?p=1/param
array(3) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(19) "www.example.com?p=1"
  ["path"]=>
  string(6) "/param"
}
http://#fra/gment
array(3) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(4) "#fra"
  ["path"]=>
  string(6) "/gment"
}
http://?p=1/param
array(3) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(4) "?p=1"
  ["path"]=>
  string(6) "/param"
}



'Hacking > Web.' 카테고리의 다른 글

워게임 아이디어  (0) 2018.07.11
i0n1c object injection bypass  (0) 2018.07.09
php parse_url bug #74780  (0) 2018.07.03
PHP iconv file upload bug  (0) 2018.04.03
CTR 웹해킹 문제 풀 때 확인해야하는 것들  (0) 2018.03.02