[+] 개인적인 공부이니 틀린부분 지적 ㄳ
- os command injection은 사용자가 입력한 명령어를 제외한, 의도하지 않은 명령어가 수행되게 하는 것을 말함.
- 메타캐릭터 | , || , && , ; 등을 사용해서 명령어를 여러개 수행할 수 있음.
- | (파이프라인) : 첫번째 수행한 명령어의 결과를 | 뒤의 두 번째 명령어에서 이어서 수행
- || (더블 버티컬바) : 첫 번째 명령어가 실패해도 두번째 명령어 실행(단, 첫 번째 명령어 성공시, 두 번째 명령어 x)
- && (더블 엠퍼센트) : 첫 번째 명령어가 성공해야만 두 번째 명령어 실행.(단, 첫 번쨰 명령어 실패시, 두 번째 명령어 x)
- ; : 한 라인에 여러개의 명령어 실행
Low 레벨
1. 기본 페이지와 기본적인 OS명령어 입력
- 비교적 기본 페이지는 간단하다.
- lookup이 나오는것을 봤을때 입력값에 도메인 주소를 넣으면, 그 도메인에 매핑되는 ip주소를 출력할 것을 예상.
- 정상적인 도메인을 입력했을시, 192.168.75.2.라는 DNS Name Server에게 질의를 보내, 정상적으로 응답을 받음.
2. 리눅스에서의 메타캐릭터 사용
-메타캐릭터 ; 사용
; 를 사용했을 때, 첫 번째에 있는 커맨드가 끝나고 ; 뒤에 있는 두 번째 커맨드가 이어서 실행되고, 값을 한번에 출력
첫 번째 커맨드에 고의로 오류가 나도록 수행해도, 두 번째 커맨드는 정상적으로 출력
-메타캐릭터 && 사용
첫 번째 커맨드가 정상적으로 수행되어야 && 뒤에 있는 두 번째 커맨드가 정상적으로 실행
첫 번째 커맨드 실패시, 두번째 명령어 수행 x
-메타캐릭터 || 사용
첫 번째 커맨드가 실패해도 두번째 커맨드 수행
첫 번째 커맨드 성공시, 두번째 커맨드 수행 x
-메타캐릭터 | 사용
구글의 dns로부터 매핑된 ip주소를 result.txt 에 저장
3. OS Command Injection 수행
-메타캐릭터 ; 사용
www.google.com ; cat /etc/passwd 입력
; 로 nslookup 과 cat /etc/passwd를 동시에 수행된 것을 확인.
-메타캐릭터 ; 와 | 사용
www.google.com ; cat /etc/passwd | head -2
; 로 nslookup의 결과와 /etc/passwd 의 결과 위에서 2번째 줄 까지만 출력
4. L:ow레벨 대응방안 보기.
- nslookup과 입력값으로 부터 받은 target을 붙여서 shell_exec함수로 실행한다고 나와있음
- 윈도우의 cmd나 리눅스의 shell에서 "nslookup www.goole.com"이 수행된다는 의미
- Low레벨에서는 별다른 검사를 하지 않는다고 나와있음.
High레벨
1. High레벨 OS Command Injection.
- www.google.com ; cat /etc/passwd | head -2 수행했더니, 반응 x
- High레벨 취약점 발생 x
2. L:ow레벨 대응방안 보기.
- High레벨은 commandi_check_2함수를 사용하고있음
- escapeshellcmd 함수를 통해 OS Command Injection에 대응하고있음.
escapeshellcmd 함수는 의도되지 않은 명령어 수행 방지를 위해. 시스템 셸에서 사용할 수 있는 특수문자에 백슬래시를 붙여 수행되지 않도록 하는 함수이다.
'WebHacking > bWAPP' 카테고리의 다른 글
[bWAPP] Server-Side Includes (SSI) Injection (0) | 2021.10.15 |
---|---|
[bWAPP] PHP Code Injection (1) | 2021.10.15 |
[bWAPP] iFrame Injection (0) | 2021.10.15 |
[bWAPP] HTML Injection - Stored (Blog) (0) | 2021.10.15 |
[bWAPP] HTML Injection - Reflected(URL) (0) | 2021.10.15 |