0x.Wargame/WebHacking.kr
-
0x29.webhacking.kr - 410x.Wargame/WebHacking.kr 2018. 7. 13. 00:50
0x29.webhacking.kr - 41 문제를 살펴보니 파일을 업로드 하는 문제였다. 해당 소스코드를 보니 사용자가 파일을 업로드하면 여러가지 문자를 필터링 한 뒤에 특정 디렉토리로 cp를 수행한 뒤에 안에 패스워드를 입력한다. 처음에는 커맨드 인젝션인 것 같아서 ; 와 같이 여러가지를 수행했는데 문제가 풀리지 않았다. 그래서 필터링 되는 문자인 >를 넣어서 업로드되는 파일의 이름이 없어지게 해보았다. 그랬더니 copy하는 과정에서 파일의 이름이 존재하지 않기 때문에 에러가 발생하였고, 디렉토리를 알아낼 수 있었다. 다시 파일을 새로 업로드 하기 위해 선택을 한 뒤 업로드를 완료하였다. 해당 주소에 들어가니 패스워드가 적혀있었고, 플래그를 인증하니 41번 솔브!!
-
0x28.webhacking.kr - 560x.Wargame/WebHacking.kr 2018. 7. 10. 23:20
0x28.webhacking.kr - 56 언뜻 보기에 XSS 같길래 때려보았는데 먹히질 않았다. 그래서 순차적으로 눌러보았다. 처음에 readme를 눌러보았는데, access denied가 출력되었다. guest의 hi~를 보니 hi~가 출력되었다. 검색을 하면서 깨달은건데 0을 누르면 admin과 guest가 보이지만 1을 누르면 나오질 않는다. 또한 hi~를 입력하면 결과값이 나오는데 readme를 입력하면 결과값이 나오지 않았다. 이를통해 search는 보여지는 정보가 아닌 다른 정보를 기준으로 검색을 진행한다는 것을 추측할 수 있다. ' _ ' 을 활용하면 문자의 길이를 알아낼 수 있는데, 하나씩 순차적으로 늘려가면서 입력해보았다. 처음에 하나를 입력했을 때는 admin과 guest가 출력되었지..
-
0x27.webhacking.kr - 510x.Wargame/WebHacking.kr 2018. 7. 8. 00:17
0x27.webhacking.kr - 51 문제를 보니 인젝션 문제인 것 같은데, 어떤 것이 필터링 되어있는지를 모르기 때문에 소스코드를 확인해보아야 했다. 소스코드를 보니 id가 admin인 조건만 충족하면 되는데 일반적인 주석 처리 등을 활용한 sql 인젝션은 먹히지 않았다. 그래서 pw부분의 Md5 부분이 문제의 핵심이라고 생각을 하게 되었다. md5에 true 옵션이 달리게 되면 바이너리의 형태로 데이터가 표시되는데, 아래의 파이썬 출력결과를 통해 볼 수 있다. 우회의 방법은 바이너리에서 ' = ' 이라는 문자가 포함된 값을 찾아서 pw = a = b 와 같은 sql문을 만들게 되면 MySQL의 특성으로 인하여 문자 a와 b가 자동 형변환되어 0이 되므로 0 = 0 이 되어 참이 된다. 92355..
-
0x26.webhacking.kr - 120x.Wargame/WebHacking.kr 2018. 7. 7. 20:46
0x26.webhacking.kr - 12 오랜만에 다시 풀게되는 웹 해킹 문제이다 흑흑.. 문제에 대한 설명이 없기 때문에 소스를 뜯어보았다. WorkTimeFun에서 String에 대하여 fromCharCode를 활용하여 문장을 만들고 eval 함수를 사용하여 동적으로 해당 코드를 실행시킨다. 콘솔에서 확인을 해보니 숨겨진 함수가 보였고, enco를 확인하니 문자들을 스트링으로 저장해놓은 것이었다. ck의 결과가 조건식을 만족하면 되기 때문에 값을 바꿔보았더니 아래와 같은 문자열을 찾을 수 있었다. 해당 문자열을 인증하면 12번 클리어!
-
0x25.webhacking.kr - 590x.Wargame/WebHacking.kr 2018. 4. 22. 18:51
0x25.webhacking.kr - 59 셤 기간에 공부가 너무 하기 싫어서 또 하나 풀었다ㅋㅋㅋ. 이번 문제는 인젝션일 것 같다는 삘이 딱 온다. 소스를 확인해보았다. JOIN에서 어떤 값을 입력을 하면 eregi를 통해 필터링이 된 후에 insert가 되는데, 형태가 insert into c59 values('$_POST[id]', $_POST[phone], 'guest')");의 형태이다. 그리고 LOGIN 부분은 id를 기준으로 lv의 값을 가져와 admin이면 문제를 솔브할 수 있나보다. JOIN에서 guest로 받는 값이lv인데, admin을 널바이트로 필터링을 해도 소용이 없는 걸로 보아 역시나 insert 문에 인젝션을 해야하는 것 같다. 방법은 2가지로 나뉠 것 같은데, 괄호를 적절히 ..
-
0x24.webhacking.kr - 420x.Wargame/WebHacking.kr 2018. 4. 18. 22:54
0x24.webhacking.kr - 42 시험 기간인데 또 이렇게 샛길로 빠져서 문제를 풀게 되다니 ㅋ.. 문제를 보니 다음과 같이 되어있는데, test.txt를 들어가니 이런 문구가 있고test.zip을 눌러보니 Access Denied가 뜬다. 소스를 확인해보니 필터링과 같은 문제가 아니라 그냥 javascript로 문구가 뜨게만 설정이 되어있었다. test.txt 부분을보니 base64인코딩이 되어 있어서 test.zip을 base64로 인코딩을 한 뒤에 url에 test.txt의 형식과 동일하게 넣어보니 파일이 다운 받아졌다. zip 파일에 패스워드가 걸려있는데 only numbers라는 힌트를 보니 브루트포싱을 해라는 것 같아서 윈도우 vm을 켜서 zip password recovery 프로그..