티스토리 뷰
처음 화면이다. 이름을 입력한 후 make 버튼을 클릭할 수 있게 되어 있다.
특별한 건 없는데 이름의 최대길이가 5자로 제한되어 있다.
admin을 입력해서 Make버튼을 클릭해봤다.
post방식으로 html = admin이 전달되어 진다.
전달하자마자 index/go.html이라는 페이지로 이동하게 된다.
hello admin이라고 나와있다. admin은 정답과 거리가 멀어 보인다.
injection 문제인 것 같아서 ;ls 를 입력하였더니 index/go.html가 아닌 index.php로 이동하고 아무것도 출력되지 않는다.
;와 ls에 필터링이 걸려있는 것 같다. &는 필터링 되어 있지 않기때문에 이를 이용하면 된다.
& : 백그라운드로 명령어를 실행시키는 chaining operators
그리고 ls에 대한 필터링을 우회하기 위해 Single Quotes(')를 이용해야한다.
Double Quotes(")를 이용하면 우회 할 수 없다.
'l's를 입력하고 Make 버튼을 클릭하면 ls로 인식이 안되는데
"l"s를 입력하고 Make 버튼을 클릭하면 ls로 인식이 되버린다.
무언가를 입력하고 Make버튼을 클릭했을때 실행되는 코드는 아래와 같다.
system("echo 'hello $_POST[html]' > index/go.html") ;
따라서, '&l's 와 같이 입력한 후 Make버튼을 클릭하면
system("echo 'hello '&l's' > index/go.html"); 이라는 코드가 실행된다.
즉, 백그라운드로 echo 'hello ' 가 실행되고 l's' 에 의해 index/go.html 에서 ls명령어가 호출된다.
'&l's 를 입력한 후 Make 버튼을 클릭하니 ls 명령어가 호출되서 현재 위치의 모든 파일, 디렉토리가 출력된다.
이들 중 challenge44_PaSs_w0Rd_.php가 정답일 것이다.
클리어
'hacking > webhacking.kr' 카테고리의 다른 글
<webhacking.kr> - 30번 (0) | 2018.03.01 |
---|---|
<webhacking.kr> - 48번 (0) | 2018.03.01 |
<webhacking.kr> - 37번 (0) | 2018.02.28 |
<webhacking.kr> - 34번 (0) | 2018.02.15 |
<webhacking.kr> - 28번 (0) | 2018.02.14 |