| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 안드로이드
- lord of sql injection
- 2018
- dreamhack
- elasticsearch
- InsecureBank
- igoat
- kibana
- XSS
- vulnhub
- Volatility
- Docker
- ESXi
- SQL Injection
- Strings
- MFT
- base64
- beebox
- Suninatas
- Openstack
- otter
- imageinfo
- diva
- CTF-d
- ctf
- binwalk
- frida
- foremost
- filescan
- 인시큐어뱅크
- Today
- Total
Information Security
Lab: SSRF with filter bypass via open redirection vulnerability 본문
Lab: SSRF with filter bypass via open redirection vulnerability
HackingPractice 2026. 1. 12. 14:39
이 실습에는 내부 시스템에서 데이터를 가져오는 재고 확인(stock check) 기능이 있습니다.
이 실습을 해결하려면 재고 확인 URL을 변경하여 http://localhost/admin 에 있는 관리자 인터페이스에 접근한 뒤,
사용자 carlos를 삭제해야 합니다. 개발자는 SSRF(서버 사이드 요청 위조) 방어 기능을 배포해 두었으므로,
이를 우회(bypass) 해야 합니다.

재고 버튼을 클릭합니다.

stockApi 파라미터에 http://localhost/admin 입력 시 불가능한 URL 주소라는 것을 알 수 있습니다.

오른쪽 하단에 Return to list | Next product 버튼이 생성된 것을 알 수 있습니다.

path 파라미터를 보면 경로 URL 주소가 입력되어 있는 것을 알 수 있습니다.

path 파라미터에 https://www.naver.com URL 주소를 입력했습니다.

네이버 홈페이지로 리다이렉션 된 것을 알 수 있습니다.

다시 재고 버튼을 클릭합니다.

GET 방식이 아닌 POST 방식으로 path 파라미터에 http://192.168.0.12:8080/admin 경로 입력 시 경로가 잘못되었다는 것을 알 수 있습니다.

다시 한번 stockApi 파라미터에 URL 인코딩을 확인했습니다.

URL 인코딩을 진행하여 stockApi=%2Fproduct%2FnextProduct%3FcurrentProductId%3D4%26path%3Dhttps%3A%2F%2F192.168.0.12%3A8080%2Fadmin 입력하면 응답 코드 200을 보여주는 것을 알 수 있습니다.

응답 값에서 계정 carlos 삭제 URL 주소를 확인하였습니다.

stockApi=/product/nextProduct%3FcurrentProductId%3D4%26path%3Dhttp%3A%2F%2F192.168.0.12%3A8080%2Fadmin%2Fdelete%3Fusername%3Dcarlos 계정 carlos가 삭제되는 것을 알 수 있습니다.

'Web Security > PortSwigger Web Academy' 카테고리의 다른 글
| Lab: SSRF with blacklist-based input filter (0) | 2026.01.08 |
|---|---|
| Lab: Basic SSRF against another back-end system (0) | 2026.01.08 |
| Lab: Basic SSRF against the local server (0) | 2026.01.08 |
