오늘은 쿠키와 관련된 문제를 풀었습니다.
글을 임시저장만 해놓고 출간을 안해서,,, 밀려버렸습니다(...)
들어가보니 이런 화면이 나옵니다.
백엔드 코드를 확인하니
param에 getget
, param2에 rerequest
를 입력해주면 리다이렉트 된다는걸 확인했습니다.
입력을 해 주니
다음화면이 나옵니다. 다시 백엔드 코드를 확인하니
param에 pooost
, param2에 requeeest
를 입력해주면 플래그를 렌더링한다는걸 확인햇습니다.
입력해주니 정답이 잘 나오네요 으하하
들어가니까 바로 빠꾸당하네요
일단 js부터 꺼줬습니다.
개발자 도구로 소스를 확인하니
이런 js코드가 있습니다.
js를 다시 허용해주고 ?getFlag
경로를 입력해서 가주니 문제가 풀리는 모습입니다.
들어가보니 이런 화면이네요.
소스코드를 확인하니
이런 모습입니다. user_lv
라는 이름의 쿠키 값을 4 미만 3 초과인 값으로 바꿔주면 되겠네요.
해결. 굿
이번에도 소스코드를 봅니다
대충 REMOTE_ADDR
이라는 쿠키값을 replace문을 통과해서 127.0.0.1이 되도록 해줘야 하는 것 같아 보이네요
REMOTE_ADDR
에 10.270...00...00...1
을 넣어줍니다.
이유는 다음과 같습니다.
10.270...00...00...1 ->
str_replace("..",".") -> 10.270..00..00..1
str_replace("12","") -> 10.270..00..00..1
str_replace("7.","") -> 10.270..00..00..1
str_replace("0.","") -> 127.0.0.1
아무튼 이렇게 넣어주고 새로고침하면 해결
처음 화면부터 심상치가 않습니다.
보니까 이름을 클릭하면 투표가 되고, 투표 여부를 쿠키로 관리하네요.
아마 본인 이름의 Hit를 100을 넘겨야 하는 것 같습니다.
그냥 일일히 쿠키 지우고 할 수도 있겠지만 저는 편하게 파이썬으로 request 날려서 했습니다.
import requests
URL = "https://webhacking.kr/challenge/code-5/?hit=닉네임"
for i in range(100):
response = requests.get(
URL, headers={"cookie": "PHPSESSID=아이디"}, verify=False
)
100번날리니까 풀리네요 굿