Study
OS Command Injection : medium, high 본문
low level에서와 같이 공격을 시도해보았다.
1.
실행결과 실패했다.
2.
마찬가지로 실행결과 실패했다.
commandi.php 소스코드를 확인해보았다.
medium level의 경우 case 1에 해당하므로 commandi_check_1()를 살펴보았다.
특수문자 &와 ;를 필터링해주기 때문에 입력된 명령어가 실행되지 않은 것이다.
| 는 따로 필터링 해주지 않기 때문에
아래와 같이 입력하면 결과가 잘 수행된다.
비교를 위해 low level의 케이스를 확인하면
low level은 no_check()에 의해 처리되는데
이 함수의 경우 아무런 확인 없이 입력값을 반환해주기 때문에 명령어가 정상적으로 수행된 것이다.
마지막으로 high level의 경우 어떻게 처리해주는지 살펴보면
commandi_check_2()에 의해서 처리되고
escapeshellcmd()는
&#;`|*?~<>^()[]{}$\, \x0A and \xFF 앞에 역슬래시를 붙여주기때문에 임의의 명령어 수행을 막아준다.
참고한 사이트
'웹 보안 > Beebox' 카테고리의 다른 글
OS Command Injection : low (0) | 2020.12.23 |
---|---|
HTML Injection - Reflected (GET) : high (0) | 2020.12.23 |
HTML Injection - Reflected (GET) : medium (0) | 2020.12.23 |
HTML Injection - Reflected (GET) : low (0) | 2020.12.23 |
CSRF (Transfer Amount) : medium, high (0) | 2020.12.21 |