본문 바로가기

webhacking.kr

(19)
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..
webhacking.kr 33번 문제 풀이 오늘은 33번 문제를 풀어보자. 문제를 열자마자 다음과 같은 화면이 반겨준다. 제공해준 코드를 확인해보니 GET메소드을 통해 넘겨받은 get이 hehe이면 다음으로 넘겨주는것 같다. 그래서 문제가 코드가 요구하는대로 했더니 문제는 해결되었다. 2단계 문제가 나왔다. 주어진 코드를 확인했더니 이번에는 post 메소드를 통해 post에 hehe를, post2에 hehe2를 담아서 보내라 한다. JS로 가상의 폼을 만들어 전송할 수 있지만 귀찮으니까 HTML 수정을 감이해 보내보자. 위처럼 코드를 작성하여 Submit 버튼을 누르니 풀렸다. Next를 눌렀더니 3단계가 나왔다. 제공해준 코드를 확인해보니 get 메소드를 통해 myip에 내 아이피 주소를 담아 전송해주면 되는것 같다. 따라서 요구대로 해줬더니 ..
webhacking.kr 27번 문제 풀이 오늘은 27번 문제를 풀어보자. 이 페이지의 코드를 확인해 봤을떄 필터를 한번 거친 후 넘겨받은 no를 db 쿼리문에 바로 넣어 처리하는 것 같았다.
webhacking.kr 38번 문제 풀이 오늘은 38번 문제를 풀어보자. 흠 Admin이라는게 참 탐나보여 눌러보니 로그를 확인하는곳으로 추정되는 페이지로 이동되었다. 저 페이지의 코드를 둘러보던 중 admin이 힌트라는 주석을 찾았다. 그래서 나는 무턱대고 admin을 입력했다. 당연히 될리가 없다. 그래서 아무 글자나 치고 테스트해보니 로그에는 IP:내용 의 형태로 입력되는것 같다. 그리고 admin의 앞과 뒤에 문자가 있으면 필터링하지 않는것 같다. 그러면 admin이라는 단어를 만들어주기 위해서는 admin\n이 되어야 할 것이라고 예상했다. 이렇게 치고 Admin을 눌러 들어가니 놀랍게도 문제가 해결되었다. WEBHACKING.KR 38번 문제 클리어!
webhacking.kr 42번 문제 풀이 오늘은 42번 문제를 풀어보자.저 압축파일 주세요~싫어욧! 그래서 test.txt를 눌렀더니 test.txt는 정상적으로 불러온다. 그런데 어찌 링크가 수상하다. =가 있는걸 봐서 Base64임이 분명하다. BINGO! 따라서 test.zip을 받으려면 Base64로 인코딩하여 요청해야한다고 생각했다. 인코딩으로 나온 결과값을 보냈더니 test.zip파일을 받을 수 있었다. 하지만 이 파일에는 비밀번호가 걸려있었는데, 이 문제의 index에 주석으로 힌트가 있었는데... 이 파일의 비밀번호는 숫자로만 이루어져있습니다? 그럼 상용 브루트포스 프로그램을 사용해봅시다.돌린지 얼마 되지 않아 비밀번호가 852라는 결과를 안겨줍니다. 이 값으로 압축되어있던 readme를 풀었고, 그 안에는 링크가 하나 있었다. ..
webhacking.kr 3번 문제 풀이 - 또는참 WEBHACKING.KR 3번 문제 풀이[ 또는참 ]그럼 오늘은 webhacking.kr 3번 문제를 풀어보도록 하자.얼추 눈치챈 사람들도 있겠지만 사이드에 있는 숫자들이 괜히 있는게 아니다. 위와 같이 이 퍼즐을 맞추고 gogo버튼을 누르고 나면 플래그가 나올것 같지만, Hello World ^^ 이름치는 칸이 나온다. 아무거나 입력하고 write 버튼을 누르니 입력이 된다. 그런데 입력하면 스택이 쌓이는 형태인것으로 보아, DB에 저장해주는것 같다. 따라서 우리는 일정한 값이고, 수정이 가능한 값을 찾아야 한다. 그래서 자세히 들여다보니 answer이 우리가 맞췄던 퍼즐의 값으로 우리가 찾던 조건과 정확히 부합하는것을 알 수 있다.따라서 form에서 숨겨져있는 필드인 answer의 값을 변조해보자. ..
webhacking.kr 10번 문제 풀이 - 함수마라톤 WEBHACKING.KR 10번 문제 풀이[ 함수마라톤 ]※ 이 문제는 IE에서만 작동합니다! ※그럼 오늘은 webhacking.kr 10번 문제를 풀어보도록 하자. O 저 O에 붙어있는 onclick태그를 통해 style태그를 통해 오른쪽으로 1씩 이동해주는 코드이다. 따라서 O를 누르면 yOu로 바뀌고, 누르면 오른쪽으로 1칸 이동시켜준다.전에도 언급한 바와 같이 1칸씩 이동하면 느릿느릿하니 한국인의 정서에 맞지 않는다. 따라서 100으로 변조하자. O 100으로 변조하고 몇번 눌러주면 노란 바 위에 O가 올라가며 문제가 해결된다. (800으로 설정해주고 누르면 바로 해결된다.) WEBHACKING.KR 10번 문제 클리어!
webhacking.kr 23번 문제 풀이 - 깡총깡총 WEBHACKING.KR 23번 문제 풀이[ 깡총깡총 ]그럼 오늘은 webhacking.kr 20번 문제를 풀어보도록 하자. 를 입력하라는게 목표라고 한다.뭐, 그쯤이야 쉽지... 라고 생각하던 순간...WTF? 뭔가 이 페이지의 코드에 Javascript에 쓸만한 내용이 있지 않을까? 라는 생각으로 확인했더니... Nope 그러면 우리가 직접 필터링되는 단어를 찾아봐야겠죠?보아하니 특수문자는 막히지 않은것 같네요. script라는 단어와 script를 자른 단어가 되지 않는것으로 보아,sc, cr, ri, ip, pt 의 형태로 차단된것으로 보입니다. 따라서 우리는 %00으로 뛰어쓰기 처리를 해봅시다.그렇다면 구문은 다음과 같이 작성되겠죠?a%00l%00e%00r%00t%00(1);%00 form에 소..