본문 바로가기

Web Hacking/Webhacking.kr

[Webhacking.kr] old-44 write up

문제는 입력폼 하나만 주어진다. 코드를 보자,

 

 

코드는 간단하게 구성되어 있다. 주석으로 ls 명령어를 실행시키라는 힌트가 주어진다. if문을 살펴보면, 입력폼에 입력한 값에서 5바이트를 가져와 system 인자에 넘긴다.

 

system 함수 인자로는 echo 'hello! {$id}'가 들어가 있기 때문에 command injection을 위해 싱글쿼터 탈출이 필요하고 ls 실행을 위해 메타 문자 세미콜론을 써야한다. 즉, 싱글쿼터와 메타문자 3바이트를 쓰면 나머지는 2바이트 밖에 사용이 불가능하다.

system("echo 'hello! ';ls''")

 

 

ls 결과 flag_29cbb...과 index.php가 나왔다. 여기서 약간의 게싱이 필요했다. flag_29cbb...는 flag형식이 아니기 때문에 정답이 아니다. index.php는 현재 웹 페이지 경로이다. 

 

다른 리눅스 명령어로 flag를 얻을 만한게 없기 때문에 flag_29cbb...이 경로가 아닐까 생각해서 접근했다.

 

 

clear

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

[Webhacking.kr] old-19 write up  (4) 2024.03.26
[Webhacking.kr] old-51 write up  (0) 2024.03.25
[Webhacking.kr] old-45 write up  (0) 2024.03.20
[Webhacking.kr] old-43 write up  (0) 2024.03.17
[Webhacking.kr] old-49 write up  (0) 2024.03.17