본문 바로가기

Hacking/- Wargame.kr

[Wargame.kr] 0. 로그인 스크립트

Wargame.kr에 있는 Web문제를 풀 때, Python을 이용해서 해결하는 편이다. 따라서 문제를 풀어서 인증키를 얻어내야하는데, 이 인증키는 접속 ip와 접속자 id에 따라서 바뀐다는 말이 써져 있기 때문에, 문제를 해결할 때 쿠키값을 입력받아서 같이 전송을 해줄 필요가 있다.


쿠키값을 얻는 가장 간단한 방법은 브라우저에서 직접 얻어오는 방법도 있지만, 이 사이트가 CodeIgniter 2로 개발이 되어서 쿠키 값이 매우 더럽다.(쿠키를 사용자와 관련된 데이터 전부를 json형태로 저장한다.) 그래서 이것을 한 두번 정도는 직접 복사 붙여넣기를 할 수 있는데, 이 행동을 매 번 문제를 풀 때마다 해야하기 때문에, 단순히 아이디와 패스워드만 입력하는 방법으로 하면, 매번 쿠키값이 달라지는 것에 대해 신경을 쓸 필요가 없다.


이러한 목적으로 만든 함수가 get_login_cookie이다. 사용 방법은 첫 번째 인자로는 id를 입력하고, 두 번째 인자로는 password를 입력하면 해당되는 세션의 쿠키값을 리턴한다.


# -*- coding: utf-8 -*-
from urllib import request, parse
def get_login_cookie(user_id="", user_pw=""):
	url = "http://wargame.kr/user/login_action"
	req = request.Request(url,
		data=parse.urlencode({'email':user_id, 'password':user_pw}).encode(),
		headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"})
	res = request.urlopen(req)
	if res.read() != b'true':
		print("Login failed...")
		return None
	else:
		print("Login Success!")
		cookie = res.getheaders()
		for t in cookie:
			(k, v) = t
			if k == 'Set-Cookie':
				cookie = v
		return cookie


'Hacking > - Wargame.kr' 카테고리의 다른 글

[Wargame.kr] 5. WTF_CODE  (0) 2016.02.08
[Wargame.kr] 4. login filtering  (0) 2016.02.07
[Wargame.kr] 3. flee button  (0) 2016.01.13
[Wargame.kr] 2. QR CODE PUZZLE  (0) 2016.01.11
[Wargame.kr] 1. already got  (0) 2016.01.07
[Wargame.kr] 0. 로그인 스크립트  (0) 2016.01.05