[PortSwigger Web Security Academy]Lab: Basic SSRF against the local server write up

zzsla·2023년 8월 23일
0
post-custom-banner

문제 정보

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를 이용해서 stackAPIhttp://localhost/admin/delete?username=carlos를 넣고 보낸다.

그러면 calros가 삭제가 되어 문제가 풀리게 된다.

profile
[README]newbi security hacker :p
post-custom-banner

0개의 댓글