본문 바로가기

Web_Hacking/DreamHack

7. csrf-2

 제공되는 웹페이지 확인

 제공되는 코드 확인(상단 코드)

  • users
    • guest:guest 계정 확인 가능
    • admin:??? 계정 확인 가능
  •  check_csrf함수
    • url = f : 파이썬의 문자열 연결 f-string 기능 / 문자열과 숫자를 + 연결해 주면 타입이 맞지 않아 오류가 나기 떄문에 타입을 변경해주거나 format을 사용해서 연결해주는데 이 format을 사용하는 기능
    •  urllib.parse.quote : 인자로 주어진 문자열에서 특수문자를 문자열로 변환해서 반환하는 기
    • read_url 함수 호출하는 것 확인 가능, 인자로 넘겨받은 cookie과 vuln page로 이동 
  • read_url함수
    • implicity_wait : 페이지가 로딩되는 동안 정해진 시간만큼 기다리는 함수 
    • set_page_load_timeout(time_to_wait) : 페이즈를 읽는 타임아웃 지정 / 일정 시간동안만 페이지 로딩을 시도 후, 완료 못할 경우 에러 표기
    • driver.get : 웹페이지 접속
    • driver.add_cookie(cookie) : 접속한 웹페이지에 매개변수로 받아온 cookie값 추가

 

 

 제공되는 코드 확인 1(하단 코드)

 

  • / page : admin으로 접속 시, flag 출력 구문 확인 가능
  • vuln page: param 인자를 가져와 return 해줌
    • xss filter : frame, script, on 구문 사용 시, *로 치환
  • flag page : 요청 메서드에 따라 GET이면 flag.html, POST면 session id를 admin으로 설정 후, check_csrf 함수 호출

 

 

 제공되는 코드 확인 2(하단 코드)

 

  • login page :  Get 메소드일 경우, login.html접속, POST 메소드일 경우, form으로 username, password입력 받은 후, session id를 cookie값으로 저장
  • change_password page : username을 session id에서 가져옴, 가져온 username의 user password를 인자값으로 넘어온 pw로 업데이트
  •  

 

guest로 로그인 진행(guest:guest)

 공격코드

<img src="/change_password?pw=admin">

flag page에 공격코드 삽입

 

변경된 admin으로 로그인 시, flag 획득

 

'Web_Hacking > DreamHack' 카테고리의 다른 글

8. SQL Injection1  (0) 2023.09.24
6. csrf-1  (0) 2023.07.29
5. xss-2 (xss 우회)  (0) 2023.07.23
4. xss-1  (0) 2023.07.22
3.cookie-basic  (0) 2022.12.30