일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- over the wire
- php login page
- access control
- file upload
- php 파일 업로드하기
- 파일 업로드 취약점
- Authentication
- BANDiT
- active recon
- FTZ
- Server Side Request Forgery
- Cookie
- active reconnaissance
- OS Command Injection
- privilege escalation
- ssrf
- php
- Leviathan
- tryhackme
- sql injection
- Cryptography
- Recon
- SQLi
- php file upload
- THM
- Reconnaissance
- php To Do List
- overthewire
- War Game
- php 로그인 페이지 만들기
- Today
- Total
R's Hacking Daily Log
OS Command Injection (1) - Lab (1) 본문
Lab - OS command injection, simple case
OS command injection의 간단한 예시를 살펴볼 수 있는 lab을 한 번 풀어보도록 하자!
최종 목표는 command injection attack으로 whoami command를 주입하여 username을 획득하는 것이다.
Lab에 들어가면 여러 아이템들이 나열되어 있는 걸 볼 수 있는 데
하나를 클릭해보면 상품에 대한 이미지와 설명 밑에 "check stock"이라는 버튼이 눈에 들어올 것이다.
왼쪽에 있는 박스에서는 해당 상품이 있는 지점을 선택할 수 있고
check stock 버튼을 누르면 사용자가 고른 지점에 상품이 몇 개 남았는지 출력해 준다.
Check Stock 버튼을 눌렀을 때 서버로 날아가는 packet이 어떻게 생겼는 지 확인해 보자.
POST Method로 만들어진 packet에는 productID & storeID가 포함되어있다.
이 부분을 활용해 command injection attack을 할 것이다.
서버에서는 ID 값인 3 & 2를 가져다가 재고를 확인하는 과정을 거치기 때문에 이 부분에 실행하고자 하는
명령어를 입력해보고자 한다.
storeId에 separator를 이용하여 whoami command를 연결해 준다.
이렇게 입력하면 서버는 productId와 storeId를 이용해 재고를 확인하고 나서
whoami command를 실행시켜 총 2개의 명령어가 실행된 결과를 출력해 줄 것이다.
결과를 확인해 보면 London 지점에 남아있는 재고가 43개이고 현재 username이 peter-wQMWii라는 것을 알 수 있다.
** separator로 사용할 수 있는 문자가 항상, 모두 유효한 것은 아니다.
Command injection을 방지하기 위해 separator 문자를 차단하기 때문에
이번 Lab의 경우에서는 "||, &, &&"와 같은 문자로는 원하는 결과를 얻을 수 없었다.
'Port Swigger > Command Injection' 카테고리의 다른 글
Access Control - Lab (2) (0) | 2023.06.13 |
---|---|
OS Command Injection (3) & Lab (3) (0) | 2023.06.04 |
OS Command Injection (2) & Lab (2) (0) | 2023.06.03 |
OS Command Injection (1) (0) | 2023.06.01 |
Command Injection (0) | 2022.11.17 |