반응형
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] 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] web chatting (0) | 2015.06.07 |