본문 바로가기

Webhacking/Webhacking.kr

[Webhacking.kr] Old-58 풀이

https://webhacking.kr/old.php

 

Webhacking.kr

 

webhacking.kr


그림 1

문제에 접속하니 맨 아래에 입력할 수 있는 창이 있고, User Console이라는 헤더가 붙여져 있다.

 

그림 2

아무 값이나 입력해보았더니 (lalala ,  , ??) 명령어를 찾을 수 없다고 한다.

리눅스에서 많이 본 듯한 명령어라서 ls 를 입력해보았다.

 

그림 3

ls는 되는데 또 ls-l은 안된다. 어떤 명령어를 사용할 수 있나 help라고 입력하니, ls, id, flag, help 명령어만 사용할 수 있는 것 같다.

ls와 help는 봤으니까 id와 flag를 입력해보았다.

 

그림 4

Id는 root 권한이고 flag는 권한 때문에 안되고 admin만 볼 수 있다고 한다.

 

소스 코드를 확인해주었다.

 

그림 5

위쪽에 from action 부분을 보면 입력창의 id는 “m” 이라고 한다.

 

그리고 중간의 script 부분을 확인해보니 username이 guest로 되어있다.

Socket.io를 검색해보니 사용하기 쉬운 웹소켓이라고 한다.

그리고 emit은 서버는 클라이언트로, 클라이언트는 서버로 데이터를 보내는 것이고

On은 emit과 반대로 데이터를 받는 것이라고 한다.

 

필요한 script 부분의 코드만 가져와서 자세히 보았다.


$(function () {

   var username = "guest";

   var socket = io();

   $('form').submit(function(e){

        e.preventDefault();

        socket.emit('cmd',username+":"+$('#m').val());

        $('#m').val('');

        return false;

        });

   socket.on('cmd', function(msg){

        $('#messages').append($('<li>').text(msg));

        });

});


/ var socket = io();   | 소켓 만들기, 소켓 연결

/ socket.emit(‘cmd’,username+”:”+$(‘#m’.val());     |서버에 username : “입력값” 의 형태로 데이터 전송

/socket.on(‘cmd’, function(msg) { ~~}             | function의 결과 데이터를 받음.

 

 

대충 이렇게 동작하는데, 위에서 admin으로만 flag를 열 수 있다고 했으니까 admin으로 바꿔주어야 할 것 같다.

 

해당 부분을 가지고 콘솔로 이동해주었다.

아래와 같이 username을 admin으로 바꾸어주고, 입력값을 넣는 부분에 flag를 넣어서

admin : flag로 메시지를 보내주었다.

 

그림 6

그리고 다시 send를 눌러서 아무 값이나 전송하면

 

그림 7

명령어를 찾을 수 없다는 말과 함께 flag가 출력된다.

 

문제 완료!!

 

 

인데 궁금증이 생겼다.

1.    Username만 admin으로 하고 입력 값으로 flag를 주면 안 되나?

2.    왜 flag가 출력되는데 :command not found 도 같이 뜨는가? (입력값이 아무것도 없을 때)

 

일단 2번은

Console 창에서 실행을 하면 기존의 정의된 함수도 실행되고 내가 정의한 함수도 실행된다고 한다.

그래서 콘솔 창에서 실행을 시키고 값을 입력하면 기존의 함수에서는 permission 에러가 뜨고, 내가 정의한 함수에서는 flag가 출력되는 것이라고 한다.

그림 8

 

그럼 1번은 아래처럼 하고 flag를 입력하면 왜 안되는가,, 입력 값으로 flag를 주었는데

 

그림 9

기존 정의 함수에서는 명령어를 찾을 수 없다고 하고, 내가 정의한 함수에서는 권한 오류가 뜬다…

왜,,,? 비슷한 맥락인 것 같은데 잘 모르겠다,,,

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

[Webhacking.kr] Old-32 풀이  (0) 2021.09.09
[Webhacking.kr] Old-27 풀이  (0) 2021.09.09
[Webhacking.kr] Old-25 풀이  (0) 2021.09.09
[Webhacking.kr] Old-54 풀이  (0) 2021.09.09
[Webhacking.kr] Old-39 풀이  (0) 2021.09.09