php null byte 인젝션 취약점에 대한 문제.
double extension과 비슷한 문제라서 일단 비슷하게 코드를 만들었다.
<?php
alert("hey");
?>
를 notepad로 작성하고, 확장자는 test.php.png로 저장한다.
문제의 의도대로 이미지 확장자(png)만 업로드가 가능하며, 이를 우회해야 한다.
이번 문제에서는 double extension으로 우회가 불가능하다.
경고문구로 Wrong filename과 Wrong file extension이 있다.
널 바이트를 이용해 우회를 해줘야 하는데,
버프스위트로 파일을 올리는 과정을 잡았다.
HEX값에 0x00을 삽입해 우회하려 했으나,, 잘 안됐다.
그래서 그냥 raw에 있는 filename.php.png 형태로 만들어 null byte를 삽입해서 flag를
얻을 수 있었다.
[php 널 바이트 취약점?]
널 바이트를 file path에 삽입해주면, C fucntion에 의해 널 바이트 뒤의 부분이 무시되는데(널 바이트는 C에서 문자열의 끝을 의미하기 때문), 이를 이용해 의도된 확장자(위 문제에서는 png,jpg 등의 이미지 확장자)를 우회할 수 있다.
'WebHacking' 카테고리의 다른 글
[root-me] File upload - MIME type (0) | 2020.01.06 |
---|---|
[root-me] PHP filters (0) | 2020.01.06 |
[root-me] File upload - double extensions (0) | 2020.01.06 |
[root-me] CRLF (0) | 2020.01.06 |
[root-me] HTTP verb tampering (0) | 2020.01.06 |