보안용어

NULL Byte Injection

logthink 2017. 2. 7. 17:38

☆ 윈도우 서버가 아니라는 전제조건!!!!



test.php

$a=$_GET['a'];

echo"$a"+".remove me!";

?>

위와 같은 PHP 파일이 있다.

test.php?a=hellopyutic와 같이 tets.php에게 인자를 준다면, 당연히 화면에는 hellopyutic.remove me!가 출력될 것이다.

그렇다면, 저 뒤에 붙는 자신의 제거해달라고 소리피는 .remove me! 라는 문구를 제거하고 출력하는 방법이 있을까?


PHP는 C언어와 유사한 부분이 많은데, 

C언어의 문자열은 NULL BYTE로 끝난다. 그렇다면 PHP의 문자열도 NULL로 끝날것이다.(서버의 특징때문에 하는 설명)


즉, 인자 뒤에 널 바이트(%00)을 추가해주면 되는 것이다.

test.php?a=haha%00 를 하면 haha.remove me!가 아닌 haha만 출력이 된다.


쓰이는곳은 에제 소스처럼 사용자로 부터 받아온 문자열 뒤에 덧붙혀지는 문자열을 우회할 때 사용한다.

즉, 단독으로 쓰이지 않고 여러 취약점과 함께 쓰이는 것이다.

'보안용어' 카테고리의 다른 글

ARP Spoofing Attack  (0) 2017.02.07
Network Security_Sonrt Rule중 Content 키워드  (0) 2017.02.07
SQL Injection  (0) 2017.02.07
다운로드 취약점  (0) 2017.02.07