일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- pwnable
- 웹해킹
- system hacking
- webhacking
- 해킹
- Spring Framework
- hacking
- BOF
- System
- Lord of BOF
- 운영체제
- 정보보안기사
- Spring
- LOB
- wargame
- 네트워크
- Payload
- Buffer Overflow
- Operating System
- 워게임
- SQL
- Shell code
- 정보처리기사 실기
- Spring MVC
- PWN
- Pwnable.kr
- OS
- webhacking.kr
- 정보보안기사 실기
- stack overflow
- Today
- Total
목록워게임 (62)
DongDD's IT
[webhacking.kr] Level 33 문제에 들어가보니 Wrong이라는 문자와 함께 소스코드를 보여주는 url이 나타나 있었다. 일단 소스코드를 보고 분석해보기로 했다. 소스코드를 보니 GET방식으로 get에 "hehe"를 전송하면 통과되는 형태로 되어 있었다. 그래서 바로 시도를 해보았다. 생각대로 GET방식으로 get에 "hehe"를 전송하니 Wrong이 없어지고 Next가 나왔다. 문제가 연계되어있는 형태인 것 같다. Next를 누르니 lv2.php로 넘어가졌고 소스코드를 보기전에 혹시 다음 페이지는 lv3.php가 아닐까 해서 입력해봤는데 없는 페이지라고 나왔다.그래서 그냥 소스코드를 보고 풀기로 했다. 소스 코드를 보니 이번에는 POST방식으로 post에 "hehe", post2에 "he..
[webhacking.kr] Level 38 문제에 들어가보니 LOG INJECTION이라고 써있었다. LOG INJECTION에 대해서 잘 모르지만 대충 찾아보니 Log를 삽입하여 생기는 취약점이라고 되어있었다.그래서 일단 admin을 넣어보았다. admin을 넣어보니 'you are not admin'이라는 메시지가 출력되었다. 실패한 것 같아서 다른 값을 넣어보았다. guest를 넣고 Admin 버튼을 눌러보았더니 다음과 같은 형태로 기록되어있는 것을 볼 수 있었다. 내 IP주소와 함께 내가 입력한 guest가 기록되있는 것을 볼 수 있었다. 혹시나 해서 IP주소와 함께 admin을 입력했더니 문제를 통과할 수 있었다. ************** Answer & Flag **************
[webhacking.kr] Level 4 문제에 들어가니 암호화 된 것 같이 보이는 문장이 써있었다. ==이 있는 것으로 보아 base64로 인코딩된 문자 같아서 base64로 디코드 해보았다. base64로 디코드하고 보니 새로운 문장이 나왔다. 이것이 답인가 해서 제출해 보았다.변화가 없는 걸로 보아서 틀렸다고 생각되었고 이것 또한 암호화된 코드라고 생각했다.'c4033bff94b567a190e33faa551f411caef444f2' 16진수처럼 보이고 40글자로 인코딩되어 있는 것 같아서 SHA-1로 암호화 된 것이 아닐까 하고SHA-1로 복호화를 해보았다. https://www.hashkiller.co.uk/sha1-decrypter.aspx 위 사이트를 이용해 복호화했다. 복호화에 성공할 수 ..
[webhacking.kr] Level 24 문제에 들어가니 IP주소가 써있고 기타 정보들, 그리고 Wrong IP라는 message를 볼 수 있었다. 대충 이러한 정보들을 보고 소스코드를 보기로 했다. 이번 소스에서는 모르는 함수와 모르는 변수들이 좀 있었다. 어떻게 풀어야될지 알려면 함수와 변수들이 필요할 것 같아 찾아보았다.extract 함수는 배열에서 현재 심볼 테이블로 변수를 가져오는 것이라고 설명되어 있었다.$_SERVER는 기본적으로 있는 변수로 안에 여러가지 정보들이 저장되는 것 같았다.$_SERVER를 변수화 시키기 위해 extract를 쓰는 것 같았다.그 이후 REMOTE_ADDR이 없다면 SERVER의 REMOTE_ADDR을 넣어주고 이 값을 ip에 넣어주고, 정보를 agent에 넣어..
[pwnable.kr] lotto 문제 풀이 로또라는 문제 제목을 보고 되게 재밌을 것 같다는 생각이 들었다. 문제에는 lotto 프로그램을 숙제로 만들었는데 플레이해볼 것인지 물어보고 있었다. 다른 문제와 마찬가지로 flag파일과 lotto 실행 파일, lotto.c 소스코드가 주어져 있었다.일단 소스 코드를 확인해보았다. main은 단순히 while문에 1,2,3 을 입력 받을 수 있게 되있었고 2는 help로 사용법을 출력해주는 함수였고 3은 종료였다. 2번 help와 3번 종료는 문제풀이에 사용되지 않는 것 같아서 1번인 play 이미지만 첨부했다. submit에 stdin으로 6자리를 읽고 /dev/urandom 파일을 열어 6자리를 읽는 형태로 되어있었다./dev/urandom에서 잘 몰라서 ..
[pwnable.kr] cmd1 문제 풀이 문제를 보니 환경변수가 무엇인지 물어보는 걸로 보아 환경변수를 이용하는 문제 같았다. 다른 문제와 같이 flag 파일, cmd1 실행 파일, cmd1.c 소스코드 세가지 파일이 있었다. 소스 코드를 보고 파악하기로 했다. /fuckyouverymuch라는 폴더를 환경변수에 넣어주고 filter라는 함수에 argv[1]을 넘겨주고 system 함수의 인자로 argv[1] 를 넣어주는 구조로 되어있었다. 처음에 코드를 봤을 때 strstr() 함수에 대해서 알지 못해서 따로 찾아보았다.strstr(char *a, char *b) 함수는 a라는 string에 b의 string이 포함되어 있으면 해당 패턴이 나타나는 위치값을 return 해주고 없다면 0을 return..
[webhacking.kr] Level 26 이번에는 한 페이지 링크만 주어져 있다. 들어가보니 소스 코드가 주어졌다. GET방식으로 id를 받고 이것을 eregi함수를 통해 admin이 아니도록 인식해야하고url decode 했을 때 admin과 일치하면 통과하는 방식으로 되어 있었다. "%61%64%6d%69%6e"로 시도해보았더니 no!라는 메시지와 함께 실패했다.생각해보니 이게 admin을 뜻하는 거라는 생각이 들어 이것을 한번 더 url encoding하면 어떨까 해서 시도해보았다.%가 %25로 표현 되기때문에 "%2561%2564%256d%2569%256e"로 시도 하면 이것이 %a%d%m%i%n 으로 표현되어 eregi를 우회하게 되고 디코딩 했을 경우 다시 "%61%64%6d%69%6e" ..
[webhacking.kr] Level 18 문제에 들어갔더니 SQL Injection이라고 떡하니 써있었다. 코드도 주어진 상태라 코드를 보고 풀어나가면 되겠다는 생각이 들었다.SQL Injection에 대해서 조금은 공부했지만 아직 잘은 모르는 상태지만 도전해보기로 했다. 코드를 보니 여러 문자에 대해 필터링이 되어있었고 select를 통해 맨 위의 row에 admin이 오게 되면 통과하게 되어있었다. 간단한 값으로 1 or 1=1 을 넣어봤더니 no hack이라는 결과가 나왔다. Space가 필터링 걸려있다는 것을 알 수 있었다. Space(%20)을 대체하기 위한 것으로는 %0A, %0B, %0C, %0D가 있다는 것을 알았고 이것으로 시도해보았다. %0C를 사용하여 시도해보았다. hi guest..
[webhacking.kr] Level 17 이번 문제는 단순한 입력 box하나와 check button하나가 주어져 있다. 소스코드를 보니 저 값을 계산하고 넣어준 후 버튼을 클릭하면 sub함수로 넘어가 이 값과일치하는지 확인하여 맞다면 password를 띄어주는 구조였다. password가 unlock/10인것으로 보아 굳이 넣어보지 않아도 알 수는 있게 되어 있는 구조였다. 크롬에 있는 console을 이용해 저 값을 계산하여 넣은 후 버튼을 클릭해 flag를 얻을 수 있었다. ************** Answer & Flag ************** 이번 문제는 딱히 생각할 거 없이 간단히 해결할 수 있는 문제였다.
[webhacking.kr] Level 16 들어가보니 이쁜 별들이 있었다. 소스 코드를 살펴보기로 했다. 소스 코드를 보니 키보드를 누르면 자바스크립트 mv함수로 들어가는 것을 알 수 있었다.처음에 코드가 잘이해되지 않아 키보드를 눌러보았다. 화면에 *이 추가되는 것을 볼 수 있었다. 문제를 내기 위해 신기한걸 만들어 놨다는 생각이 들었다. ㅋㅋ 소스 코드를 보고 분석을 해보았다.key를 누르면 key값이 mv함수로 넘어가게 된다. kk함수를 통해 화면에 *을 찍고 if문을 거치게 된다.아스키코드로 넘어오기 때문에 아스키코드를 보고 if문을 해석해 보았다.if문을 볼때 a(97) d(100) w(119), s(115)를 누르면 *이 이동하는 것 같은데 이동하지 않고 추가만 되었다. 크롬에서는 스크립트가..