[문제]
[풀이]
코드를 살펴보면 userid 값에 guest와 admin이 존재한다는 것을 확인할 수 있다.
userid의 경우 /api/user/{userid}에 저장된다.
flag의 경우 /api/flag에 저장된다.
Get User Info로 들어가 userid에 guest를 입력했다.
guest를 입력하고 View 버튼을 누르자 userid의 값이 guest인 정보를 확인할 수 있다.
userid와 마찬가지로 ../flag를 입력하면 플래그에 대한 정보가 출력될 것이라 예상했지만, 플래그에 대한 정보가 아닌 {}가 출력되는 것을 확인할 수 있다. 플래그에 대한 정보가 출력되지 않은 이유를 찾아보기 위해 Burp Suite를 사용했다.
Proxy/Options에서 다음과 같이 설정을 변경한 다음 Proxy/Intercept is on/Open Browser를 실행하여 드림핵 접속 정보인 “http://host1.dreamhack.games:24073”를 입력했다.
Get User Info로 들어가 userid에 ../flag를 입력한 다음 Burp Suite의 HTTP history로 들어가 해당 패킷을 확인했다. 해당 패킷을 살펴보면 userid 값이 undefined로 설정된 것을 볼 수 있다. 아마 이 설정 값 때문에 userid에 ../flag를 입력했을 때 플래그에 대한 정보가 출력되지 않았던 것으로 보인다.
해당 패킷을 Send to Repeater한 뒤에 Repeater로 이동하여 userid=../flag로 수정했다.
userid를 수정한 다음에 Send 한 뒤 Response를 확인해보면 플래그가 출력된 것을 확인할 수 있다.
'웹 > 드림핵' 카테고리의 다른 글
php-1 (0) | 2022.05.04 |
---|---|
proxy-1 (0) | 2022.05.04 |
NoSQL-CouchDB (0) | 2022.05.01 |
sql injection bypass WAF Advanced (0) | 2022.04.24 |
sql injection bypass WAF (0) | 2022.04.24 |