반응형

WarGame/Webhacking.kr 6

old-54

풀이 페이지를 열면 9 부분자리에 Flag 값이 한자리씩 노출된다. 그런데 금방 없어져서 놓치게 된다. function run(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } }else if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ return null; } } x=run(); function answer(i){ x.open('GET','?m='+i,false); x.send..

old-47

풀이 페이지를 보면 메일 제목만 적어서 보내는 기능이 존재한다. 버튼을 누르면, 메일 헤더와 데이터를 보내는 모습이 보인다. 그런데 데이터 부분에 flag를 전송한다. 그렇다면 헤더 부분을 조작하여 내 메일 주소로 보내면 flag를 받을 수 있것 같다. 메일에서 참조(Cc: Carbon Copy) 기능을 사용해서 내 메일도 받을 수 있게 subject와 같이 보낸다. 응답 값을 보면 RCPT TO 부분에 내 메일까지 첨부된 것을 볼 수 있다. 메일을 확인해보면 이렇게 Flag가 왔다!! Flag FLAG{wasted_too_much_time_damn}

old-33

풀이 1단계 문제 페이지를 열면 링크가 하나 주어진다. 해당 페이지를 열면 소스코드가 주어지는데, 여기서 조건을 맞추면 다음 링크가 주어진다. import requests URL = 'https://webhacking.kr/challenge/bonus-6/' # # 33-1 url_1 = URL + '?get=hehe' res = requests.get(url_1) print(res.text) 2단계 주어진 링크를 받아서 들어오면 또 다른 문제가 주어진다. # 33-2 url_2 = URL + 'lv2.php' datas = { 'post': 'hehe', 'post2': 'hehe2' } res = requests.post(url_2, data=datas) print(res.text) 3단계 # 33-..

old-6

view-source 링크와 ID, PW가 나와있다. 이번에도 view-source 페이지에서 코드를 보고 푸는 것 같다. 코드를 보자! php 코드가 크게 2개가 있다. 왼쪽을 보면 id에 "guest", pw에 "123qwe"를 넣는다. 이 값은 앞 페이지에서 본 ID, PW랑 똑같다. 코드를 계속 보면 다음 for문을 이용해 20번 base64로 인코딩하는 것을 볼 수 있다. 그런 다음 replace 함수를 써서 다른 값으로 바꾸는 것을 볼 수 있다. 그리고 그 값을 쿠키값으로 세팅하는 것을 볼 수 있다. 즉, ID, PW를 암호화해서 쿠키값으로 쓴다! 이제 오른쪽 php 코드를 보자. 이번에는 쿠키값을 가져와 아까 했던내용을 반대로 하고 있다. 즉, 복호화를 하는 것이다. 복호화를 해서 ID랑 P..

old-5

5번 문제를 들어가면 딱 2개의 버튼이 존재한다. 혹시 모르니 소스코드를 확인하였다. 확인해보면 자바스크립트가 존재하는데 Join을 누르면 그냥 메시지 박스로 접속 거부 문구만 띄운다. 두 번째로 Login 버튼을 누르면 mem/login.php 페이지로 이동한다. 일단 한번 가보자. 해당 페이지를 보면 정말 id, pw 입력하는 것 밖에 없다. 그래서 첫 번째로 생각한 게 Blind SQL injection이었다. 그래서 여러 테스트를 해봤다. 아이디 또는 패스워드 하나라도 입력을 안 하면 아무 값도 안 떴다. 아이디, 패스워드에 아무 값이나 넣으면 무조건 [그림 1-4]처럼 패스워드가 틀렸다고만 떴다. 그래서 Blind SQL Injection은 아닌 것 같다고 생각했다. 방향을 바꿔서 소스코드를 다..

old-26

26번 문제 페이지를 열면 view-source 링크만 딸랑 하나 있다. view-source 링크를 클릭해 열어보면 소스코드가 주어진다. 소스코드를 보면 solve(26); 부분이 보인다 이 말은 즉, 소스 코드를 분석해 sove(26); 부분까지 도달하게 만들면 된다. 소스 코드를 분석해보면 맨 위 php 부분은 view_source 이 페이즈를 열기 위한 부분이다. 그러므로 패스! 두 번째 php 부분을 분석하자. 여기서 첫 번째 if 문에서 preg_match 함수를 통해서 문자열을 찾는다. preg_match 함수는 정규표현식을 통해 표현식에 해당하는 문자열들을 찾는 것이다. 첫 번째 인자로 정규표현식을 넣고, 두 번째 인자는 검사 대상 문자열 넣는다. 여기서 문자열을 찾게 되면 1을 반환하고,..

반응형