This lab has a stock check feature which fetches data from an internal system.
To solve the lab, change the stock check URL to access the admin interface at http://localhost/admin
and delete the user carlos
.
lab에 들어가면 가상 shop 사이트가 나온다.
재고 확인 기능은 내부 시스템에서 데이터를 가져온다.
목표
재고 확인 URL을http://localhost/admin
으로 바꿔서 admin interface에 접근한다.
그리고 사용자carlos
를 삭제한다.
일단 일반적으로 admin interface에 접근이 가능한지 확인하기 위해 사이트 URL 뒤에 /admin
넣어서 들어가 본다. 그러면 administrator
외에는 접근할 수 없다고 나온다.
이번에는 아무 물건이나 들어가서 재고를 확인한 뒤에 burpsuite의 HTTP history를 확인해본다. 확인해보면 재고를 확인할 때 stackAPI
로 재고를 확인하는 것을 볼 수 있다.
proxy의 intercept를 이용해서 stackAPI
의 URL 부분을 http://localhost/admin
로 바꾸어서 보내본다.
그러면 웹페이지에 사용자를 삭제할 수 있는 admin interface가 나온다.
이제 carlos
옆에 삭제 버튼을 누른다. 하지만 다시 막힌다.
아까 stackAPI
를 이용해 접근을 했을 땐 서버측의 요청을 이용한 접근이였기 때문에 접근이 가능했지만 삭제 버튼을 누를 때 사용자측의 요청이였기 때문에 다시 막히게 되었다. 하지만 HTTP history를 다시 보면 carlos
를 삭제할 때의 URL을 확인할 수 있다.
즉 이 URL을 stackAPI
에 넣어서 보내면 서버측의 요청으로 받아드리고 carlos
를 삭제할 수 있게 된다. 그래서 다시 intercept를 이용해서 stackAPI
에 http://localhost/admin/delete?username=carlos
를 넣고 보낸다.
그러면 calros
가 삭제가 되어 문제가 풀리게 된다.