일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- webhacking
- Payload
- 네트워크
- LOB
- Lord of BOF
- pwnable
- System
- Spring Framework
- 정보보안기사
- Buffer Overflow
- 정보처리기사 실기
- Spring MVC
- stack overflow
- 웹해킹
- system hacking
- Operating System
- 해킹
- OS
- 운영체제
- SQL
- Spring
- PWN
- Pwnable.kr
- wargame
- BOF
- 정보보안기사 실기
- webhacking.kr
- 워게임
- Shell code
- hacking
- Today
- Total
목록wargame (64)
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에서 잘 몰라서 ..
[webhacking.kr] Level 27 문제에 친절하게 SQL INJECTION이라고 써있는 것을 보아 SQL INJECTION 문제인것 같았다. GET방식으로 no를 보내는 것으로 보이고 index.phps를 보라고 써있었다. 소스코드를 보니 Level 18번 문제와 비슷한 형식으로 되어있었다. 저번과 마찬가지로 필터링이 들어가있고 해당 쿼리를 실행해 select으로 얻어오는 것이 admin이면 통과하는 것처럼 보였다. 필터링 확인을 해보기 위해 일단 '1 or 1 = 1'을 입력해보았다. no hack이라고 나오는 것을 보아 필터링에 걸린 것을 알 수 있었다.limit, \t, (, = 등 여러가지 필터링이 걸려있어 일단 공백을 통과해보기로 했다.저번에 풀었던 비슷한 문제에 걸려서 사용했었던 '..
[webhacking.kr] Level 39 문제를 들어가 보니 box하나와 button 하나가 있었다. 페이지 소스를 보니 index.phps가 써있어 저 페이지로 들어갔다. POST방식을 통해 id를 받고 \\를 모두 지우고 '를 모두 ''로 바꿔준 후에 0~14까지의 string을 _POST[id]에 넣어주는 형태로 되어 있었다.주어진 소스에서 query문은 싱글 쿼터로 시작해서 끝을 내지 않는 것을 보고 15글자를 짜르기 때문에 15번째에 싱글 쿼터를 써서 두개의 싱글 쿼터중 하나를 잘라야겠다는생각이 들었다. box에 입력할 수 있는 최대길이가 15인것으로 보아 첫번째 replace문을 필요없는 것 같았고처음에는 1 or 1=1 ' 를 사용하여 시도를 해보았다. 쿼리문 오류로 생겼던 에러가 생기지..
[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..