> PentesterLab의 Code Execution 01 문제에 대한 접근 방법을 기록
페이지에 접근하면 name 파라미터로 전달받은 값을 출력한다.
?name=쥬스몬
보자마자 싱클/더블쿼터를 넣고싶어서 싱글쿼터(')를 넣어봤으나 출력에 포함된다🥸
?name=쥬스몬'
그렇다면 더블쿼터(")는 어떨까? 묵직한 에러가 발생한다.
?name=쥬스몬"
name파라미터로 입력받는 값이 eval구문으로 들어가는데 syntax가 맞지않아 에러가 발생
그렇다면 php에서 문자열을 연결하는 구문을 무엇일까? 문자열1.문자열2이다. 이를 테스트하면서 에러가 발생하지않게 더블쿼터를 추가하여 syntax를 맞추었다.
?name=쥬스몬"."_해커
PHP에서 eval은 코드를 실행 시켜주는 함수로 되도록 사용을 지양해야되는 함수이다. eval함수로 입력받은 문자열을 출력하는것으로 보아 이번 문제의 코드에서 eval에는 문자열 출력 함수인 echo가 사용됐을것으로 추측된다. 여기서 나는 문자열을 연결하지않고 함수를 실행시켜 문제에서 원하는 바이너리에 특정 문자열을 전달하는 실행을 해보도록하겠다😀