본문 바로가기

보안공부

(62)
wargame.kr md5_compare 풀이 오늘은 md5_compare문제를 풀어보려고 한다. 문제에 들어가니 다음과 같은 폼이 기다리고 있다. view-source라고 되어있는 링크를 눌러 코드를 분석해보자. 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 Colored by Color Scripter cs ctype_alpha는 값이 모두 알파벳일떄 true를 리턴해주는 함수이고, is_numeric은 값이 숫자일때 true를 리턴해주는 함수이다. 따라서 우리는 VALUE 1에는 알파벳을, VALUE 2에는 숫자를 입력해주어야 하고, 그 두 값의 md5의 해시가 같아야 플래그가 나온다는 사실을 알 수 있다. md5 해시를 어떻게 같게할 수 있을까? 불가능하다. 그런데 여기서..
webhacking.kr 11번 문제 풀이 오늘은 그동안 못했던 웹해킹을 다시 해보려고 한다. 간단하게 11번으로 시작해보자. 문제에 들어가면 다음과 같은 창이 반겨준다. GET을 통해 val을 받는다는데 html이라고 적혀있어서 당황했으나, 잘 확인해보니 이 페이지가 PHP로 구동되고 있다는 사실을 알 수 있었다. 주어진 PHP 코드를 분석해보자. 1 2 3 4 Colored by Color Scripter cs pat이라는 변수에 조건이 있고, GET을 통해 받은 val을 비교하여 값이 같으면 풀리는것 같다. pat의 조건은 다음과 같이 정리할 수 있다. 코드 역할 충족할 값 [1-3] 1~3에서 1개를 선택합니다. 1 [a-f]{5}_ a~f에서 5개를 선택합니다. abcde .*172.0.0.1.* .*172.0.0.1.* \tp\ta\t..
Suninatas 8번 풀이 오늘은 suninatas 8번을 풀어봅시다. 들어가자마자 왠 로그인 폼이 보입니다. 뭘 해야할지 모른다면 역시 페이지 코드를 확인하는거죠! 역시나 페이지를 구성하고 있는 코드의 주석에 숨어있었습니다. 위의 주석에서 우리는 아이디는 admin, 비밀번호는 0부터 9999사이의 정수인것을 알 수 있었습니다. 따라서 브루트포스(서버주님 죄송합니다) 로 비밀번호를 알아내는 파이썬 코드를 대충 짜서 돌려보면 다음과 같이 비밀번호가 나오게 됩니다. 이해를 돕기 위해 코드를 첨부합니다 : 아이디에 admin을 넣어주고, 위의 파이썬 코드의 실행 결과를 통해 알 수 있었던 정수 비밀번호를 넣어준 다음 Login 버튼을 누르게 되면 Congratulation!이라며 인증키가 나오게 된다. 인증키를 넣고 인증해주기만 하면..
wargame.kr tmitter 풀이 오늘은 wargame.kr에 있는 tmitter 문제를 풀어봅시다. 사이트에 들어가면 회원가입과 로그인 메뉴가 반겨줍니다. 이 상태에서는 뭘 해야할지 모르니 당연히 소스보기를 통해 주석을 확인합니다. 확인한 결과 admin으로 가입해야한다는 사실을 알게 되었습니다. 그래서 Sign Up 버튼을 눌러 들어가 admin / adminadmin 을 치고 가입하려고 하니 admin은 이미 존재한다며 가입을 거부했습니다. 하지만 문제 설명에서 주어진 SQL 구문인 id char(32) 을 준것으로보아 받은 값이 사이즈(길이)를 초과할 경우에는 초과된 부분을 제외한 값을 넣어주는 mysql의 특성을 이용하면 풀릴것 같은 느낌이 들었습니다. 따라서 32로 설정되어있던 maxlength값을 1 증가하여 33으로 설정해..
Suninatas 7번 풀이 오늘은 suninatas 7번을 풀어봅시다.문제에 들어가면 아이유 사진과 입력 폼......그리고 버튼이 기다려줍니다.코드를 확인해보면 위의 입력폼과 하단의 버튼이 각개의 form으로 이루어져 있다는 사실을 알 수 있게됩니다.따라서 버튼을 누르면 다음과 같이 뜹니다.(흐... 흥! 느리면 플래그를 주지 않을거라구!)그래서 frm이라는 이름을 가진 form을 submit해줍니다.여러번 시도( [F5] + [↑] + [ENTER] )하다보면 다음과 같이 뜨면서인증키가 나옵니다.짜잔!sunintas.com 7번 문제 클리어!
Suninatas 3번 풀이 오늘은 suninatas 3번을 풀어봅시다.사실 이거 푸는 방법이 뭘까 하고 진지하게 고민해봤는데 아무리 생각해도 답이 안나와서 보류하고 있던 찰나에 풀려서 올려봅니다.우선 문제 페이지에 들어가면 다음과 같이 Notice 게시판에 뭔가를 올리라고 뜨게 됩니다.Notice 게시판은 눈씻고 찾아봐도, 게시글 작성버튼이 코드를 뒤져봐도 나오지 않습니다.그래서 링크를 보니 list.asp?divi=notice 라고 되어있었는데, 이는 notice 게시판을 리스팅해주는것으로 쉽게 예상할 수 있었습니다.위에서 얻어낸 정보를 바탕으로 슈퍼게싱으로 write로 바꿔보았습니다. (킹리적 갓심)그랬더니 정말 놀랍게도 떴습니다.그래서 위의 작성란에 아무거나 입력한 다음에submit을 눌러줬더니 플래그가 나왔습니다.끗. 참 ..
Suninatas 5번 풀이 오랫동안 활동하지 못했던 이유는 개인적인 사정으로 너무 바빳던 터에 블로그에 글을 올릴 시간이 없어서 그랬습니다.이제 점점 활동량을 늘리도록 노력해 보겠습니다. (믿어주세요)그럼 이제 본격적으로 Suninatas 5번문제를 풀어봅시다.들어가니 뭔가 딱 값을 넣고 체크를 해봐야 편-안할것 같아 보이는 폼이 하나 있습니다.그러나 값을 입력하고 CHECK버튼을 눌러도 아무런 반응이 없이 input에 입력한 데이터가 사라지기만 하는것을 볼 수 있습니다.웹해킹의 기초라 불리우는 관리자 도구를 이용하여 이 페이지의 코드를 확인해 보면 (예상대로)다음과 같이 주석으로 힌트가 숨겨져 있는것을 볼 수 있습니다.그 값을 복사해서 input에 넣고 Check를 눌러보지만, 역시나 아무런 반응 없이 지워지기만 한다는것을 알 ..
Suninatas 2번 풀이 Suninatas 2번문제를 풀어봅시다.들어가니 왠 폼이 뜹니다.뭔가 하고 폼부분 코드를 확인해보니 왠걸 스크립트가 있고, 버튼을 누를 경우 해당 스크립트를 실행하도록 설계되어 있었습니다.스크립트 부분만 떼어낸 다음,비교구문을 제거하고 개발자 도구의 console을 통해 overwrite해준 다음id와 pw값을 같게 해주고 Join을 누르면Authkey가 나온다.문제 해결!sunintas.com 2번 문제 클리어!