일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- Operating System
- system hacking
- webhacking
- Pwnable.kr
- 워게임
- 운영체제
- LOB
- 웹해킹
- BOF
- Buffer Overflow
- wargame
- Spring
- 정보보안기사
- 정보보안기사 실기
- Spring Framework
- 해킹
- stack overflow
- Lord of BOF
- SQL
- webhacking.kr
- System
- Spring MVC
- 정보처리기사 실기
- Shell code
- PWN
- pwnable
- Payload
- hacking
- OS
- 네트워크
- Today
- Total
목록Wargame (65)
DongDD's IT
[webhacking.kr] Level 11 문제에 들어가니 "Wrong"이라는 메시지와 함께 다음과 같은 문자만 써있었다.$pat이라는 변수를 설정하고 preg_match라는 함수를 통해 GET방식으로 받은 val과 비교하는 형태인 것 같다.preg_match 함수에 대해 잘 몰라서 찾아보았다. ref) preg_match(a,b)- string b가 a라는 정규표현식에 해당하는 문자열인지 확인하는 함수 정규표현식에 대해서 어느정도는 알고 있지만 모르는 부분이 있어서 좀 더 알아본 후 풀어보았다. 먼저 [1-3]은 1~3의 숫자 중 하나가 들어간다는 의미로 쓰였고 마찬가지로 [a-f]도 a~f까지의 알파벳 중 하나가 들어간다는 의미이다. {}와 *에 대해서는 잘 몰라서 찾아보았다. 찾아보면서 {}에 대..
[webhacking.kr] Level 12 문제에 들어가니 "javascript challenge"라는 문자만 써있었다.일단 코드를 보기로 했다. script를 제외한 다른 코드에서는 별로 중요해보이는 것이 없었다. 스크립트에 대해 잘 몰라서 함수에 대해서 찾아보았다. ref) String.fromCharCode() - 유니코드 코드로 이루어진 인자를 문자로 바꿔서 string으로 만들어주는 함수 ref) eval()- 문자로 표현되어있는 것을 javascript로 실행해주는 함수 이 두 함수에 대해 알아보고 나서 왠지 fromCharCode함수를 이용해 저장한 WorkTimeFun이라는 문자열이 javascript이지 않을까 생각이 들었다.브라우저에 있는 console창을 이용해 저 값에 대해 알아보..
[webhacking.kr] Level 41 문제에 들어가니 파일 선택과 upload 두개의 버튼이 있었다. 파일 선택을 눌러보니 그냥 파일을 고르는 창이 나왔고 upload를 눌러보니 다음과 같은 페이지로 넘어갔다. no라는 메시지가 출력이 되었다. 아마 필터링이 되있는 것 같다는 생각이 들었다. 이번 문제는 소스코드가 있었다. 파일을 선택하고 업로드를 하면 .을 공백으로 대체하고 /, \, htaccess, .htaccess가 포함되거나 길이가 10이상이면 no를 출력하는 것이다. php의 copy함수에 대해 몰라 찾아보니 단순히 복사하는 함수였다. 즉 $cp에 파일이름이 들어가고 이것을 $hidden_dir/$fn로 복사한 후 암호를 이 파일에 쓰는 형식으로 되어있었다. $hidden_dir만 알아..
[webhacking.kr] Level 42 이번에는 문제에 들어가니 파일로 보이는 두개가 있었다.먼저 위에 있는 text.txt를 눌러보았다. 경로가 바뀌며 "test~~~"라는 메시지가 출력되었다.아마 test.txt에 있는 내용이 출력된 것 같다. 다시 원래 창으로 돌아가서 test.zip을 눌러보았더니 "Access Denied"라는 팝업창과 함께 아무 일도 일어나지 않았다.그래서 test.txt눌렀을 때 나오는 경로에 있는 문자열이 암호화된 것이 아닐까 하고 32자리 인것을 보고 md5일까 해서 시도해보았지만 아니였다.혹시 해서 자릿수를 수정하며 다른 복호화도 해봤지만 성공하지 못했다. 그래서 일단 소스코드를 보았다. test.zip은 그냥 무슨 일이 일어나건 alert로 팝업을 띄어주게 되있었..
[webhacking.kr] Level 32 이번 문제는 들어가보니 Rank와 name그리고 hit수가 써있었다.내 아이디를 찾아보니 없었다. 맨 밑으로 내려보니 Join 버튼이 있는 것을 볼 수 있었다. Join 버튼을 눌러보니 "Done"이라는 글자가 떴다. 다음 메시지를 확인한 후 검색해보니 내 아이디가 있는 것을 볼 수 있었다 Join을 한번 더 눌러보니 내 아이디가 뜨면서 아무 일도 일어나지 않았다. 내 아이디를 찾아서 눌러보니 hit수가 1 증가하였다. 아마 hit수를 계속 증가시켜 100 / 100이 되면뭐가 될 것 같았다. hit수를 올리기 위해 내 아이디를 한번 더 눌러보니 no!라는 메시지와 함께 hit수가 증가하지 않았다.혹시나 해서 쿠키를 보았다. 쿠키를 보니 vote_check라는..
[webhacking.kr] Level 25 문제에 들어가니 "hello world"라는 텍스트와 함께 파일 목록이 나타나있었다.주소 창을 보니 file=name으로 되어 있었고 hello.txt가 12bytes인 것으로 보아 아마 hello.txt의 내용이 밑에 출력되는 것 같았다. password.php에 아마 flag가 있을 것이라 생각하고 file을 바꿔보았지만 아무 일도 일어나지 않았다.index.php로도 해보았지만 마찬가지로 변화가 없었다. 생각을 해보니 hello파일의 확장자는 txt로 되어있는데 hello만 입력해야 "hello world"가 나오는 것을 보고 대충 짐작할 수 있었다. 아마 file로 넘겨주는 이름 뒤에 .txt를 붙여주는 구조로 되어 있는 것 같았다.이 생각을 가지고 풀..
[webhacking.kr] Level 20 문제에 들어가보니 몇개의 입력 창이 있었고 위에 time limit : 2라는 표시와 함께 javascript challenge라는 문구가 써있었다. 일단 아무 값이나 입력해보았다. 제출을 누르자마자 code부분에 있는 값이 바뀌고 Wrong이 나온 후 다시 code값이 바뀌는 것을 볼 수 있었다.느낌이 time limit : 2 라는 것이 2초안에 제대로 된 값을 입력한 후 제출하면 통과할 수 있을 것 같았다. 크롬에 있는 개발자 도구로 자바스크립트를 중단 시킨 후 실행 해보았지만 통과할 수 없었다. 코드를 보니 다음과 같이 스크립트가 있었다. id와 cmt와 hack에 값을 넣어야하고 code와 일치한 후 제출하는 방법이였다.이 것을 2초만에 해내야하는 그..
[webhacking.kr] Level 23 이번 문제는 무엇을 해야할 지가 주어져있었다.다른 문제와 비슷할 것 같아서 index.phps로 들어가봤지만 소스코드가 없었다.어떤 것이 필터링되있는지 모르는 상태에서 해결해야하는 문제 같았다.webhacking.kr을 풀면서 처음으로 소스코드가 없는 상태로 하는 문제라 재미있을 것 같았다. XSS로 삽입해야할 문자열을 넣어보니 "no hack"이라는 message와 함께 실패함을 알 수 있었다.어떤 것이 필터링되있는지 확인해보기 위해 여러가지 시도를 해보았다. 이것 외에도 글자를 끊어서 여러가지를 시도해보았다. 필터링 되있는 방식은 모르겠지만 왠만한 단어들은 다 막혀있었다.스크린샷에서는 script만 해보았지만 alert도 마찬가지로 실패했다.대문자로도 시도..
[webhacking.kr] Level 6 base64를 사용한 것이 hint라고 주어져 있었고 id와 pw가 나타나 있었다. 이번 문제의 소스코드는 한 화면에 담을 수 없을 정도로 길었다.일단 윗부분을 살펴보기로 했다.COOKIE에 user라는 변수가 설정되어 있지 않으면 if문으로 들어가게 된다.val_id에 "guest"를 넣고 val_pw에 "123qwe"를 넣어준 후 php의 base64 인코딩함수를 이용하여20번 인코딩해주게 되어있다.그 후에 숫자를 다 특수문자로 바꿔주고 cookie에 user와 password에 넣어주는 형태로 되어있는 코드였다. 밑에 코드에서는 설정되어 있는 user와 password 쿠키를 가져와 특수문자를 다시 숫자로 바꿔주고20번 디코딩해주는 방법으로 되어있다.이 과..
[webhacking.kr] Level 33 남은 문제가 몇개인지 모르지만 오늘은 마무리 해보려고 한다. 풀다가 길어지면 다른 게시글로 올릴 것 같다. 97~122까지 for문을 돌리면서 i를 2씩 증가시켜주며 chr함수를 이용해 숫자를 아스키코드로 바꿔주고 answer에 넣어주는 것 처럼 보인다. 그리고 GET방식으로 넘겨주는 ans와 비교해 같다면 다음 단계로 넘어갈 수 있는 구조로 되어있다.abcdefghijklmnopqrstuvwxyz -> acegikmoqsuwy 이번 문제는 어려운 것 없이 무난하게 통과할 수 있었던 것 같다. 이번 문제는 Wrong이라는 출력 문구가 없이 그냥 소스코드 주소만 있었다. 소스코드를 보니 이번 문제가 마지막 문제인 것 같다. REMOTE_ADDR을 ip에 넣어주고..