본문 바로가기
웹/드림핵

pathtraversal

by SH_L 2022. 5. 1.
반응형

[문제]

 

 

[풀이]

 

 

코드를 살펴보면 userid 값에 guestadmin이 존재한다는 것을 확인할 수 있다.

 

 

userid의 경우 /api/user/{userid}에 저장된다.

 

 

flag의 경우 /api/flag에 저장된다.

 

 

Get User Info로 들어가 useridguest를 입력했다.

 

 

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 SuiteHTTP 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