목록War Game/dreamhack (5)
tmxklab
1. 문제확인 chall2.exe를 실행하면 Input값을 입력할 수 있고 틀리면 종료되는 것 같다. main문을 확인해보면 sub_140001000()에서 검증을 한다. for문이 0x12번 돌면서 aC배열과 입력 값을 1byte씩 비교하여 틀린 경우 0을 맞는 경우 1을 return한다. 2. 접근방법 aC배열을 확인해보자 3. 문제풀이 저 위에 아스키 코드를 합치면 "Comp4re_the_arr4y"인데 이게 플래그 값이다.
1. 문제확인 특정 Host에 ping을 보내는 서비스이며 Command Injection을 통해 플래그를 획득할 수 있다. 2. 접근방법 subprocess를 이용하여 /bin/sh -c ping -c 3 "{host}"명령을 수행할 수 있으며 host에는 내가 입력한 값이 들어간다. 또한, try문에서 에러가 발생하면 exception처리가 된다. Host입력 란에 쉘 명령어를 쓰려고 하자 필터링이 된다. 개발자 도구[F12]에서 html을 확인한 결과 input에 pattern을 통해 필터링이 되는 것 같다. 3. 문제풀이 html은 수정할 수 있으므로 필터링되는 부분을 제거해주고 /bin/sh -c ping -c 3 "host" 여기서 host부분에 쉘 명령어를 입력해주자(참고로, 에러가 발생하면..
1. 문제확인 host와 port값을 지정하고 Data를 보낼 수 있는 것 같다. 위와 같이 입력 값을 구성하고 Send 버튼을 누르면 다음과 같이 출력된다. 이제 소스코드를 확인해보자 /admin으로 POST형식으로 접속하면 admin()가 호출되고 if문을 통과하면 FLAG값을 리턴해준다. 2. 접근방법 처음에는 BurpSuite를 통해서 직접 url에 admin과 헤더 값 등을 변경하였는데 첫 번째 if문에서 막혔다.. 그래서 생각한 것은 처음 /socket에서 입력받는 코드 부분을 살펴보았다. host, port, data를 입력하면 소켓 통신을 통해 연결되고 입력한 data값을 보내준다. 따라서, /socket에 있는 입력 폼을 이용하여 웹 서버의 host주소와 port번호를 넘겨주면 다시 웹 ..
1. 문제확인 접속해서 userid에 guest에 대해 View버튼을 누르면 위와 같이 key-value형태로 나온다. 문제 정보에서는 Path Traversal 취약점을 이용하여 /api/flag에 있는 플래그를 획득할 수 있다고 나온다. 2. 접근방법 이번에도 마찬가지로 문제 파일을 다운로드하여 코드를 확인해보자 먼저 FLAG변수에 flag값이 담긴다. get_info()에서는 request의 method형식에("GET", "POST") 따라 다르게 처리되는데 POST형식인 경우 '{API_HOST}/api/user/{userid}'형식으로 요청을 보낸다. 마지막으로 밑에 빨간색 박스를 보면 '/api/flag' 형식의 요청이 들어온경우 flag()를 호출하여 우리가 원하는 flag값을 return한..
1. 문제확인 쿠키로 인증 상태를 관리하며, admin 계정을 접속해야 플래그를 획득할 수 있다. 2. 접근방법 먼저, 문제 파일을 다운로드하여 코드를 확인해보자 맨 위 빨간색 박스를 살펴보면 ./flag.txt를 읽어들인 다음 'admin'에 대한 비밀번호를 저장한다. 'guest'유저는 비밀번호가 그대로 'guest'이다. 그리고 아래 빨간색 박스를 살펴보면 'username'에 대한 cookie값을 가져와서 username이 존재하면 index.html에 'guest' 또는 'admin'에 따라 다르게 표시되는 것을 확인할 수 있다. 특히 if문에서는 username이 'admin'이면 플래그 값을 보여준다. 3. 문제풀이 먼저, guest유저로 접속해보자(id = 'guest', pw = 'gue..