이제 150점 짜리 문제로 넘어왔습니다 :D
문제로 들어와보니
리눅스의 파일 정보형태와
밑에는 파일 내용을 보여주는 듯한 칸이 보이네요!
url을 보니 file이라는 인자에 hello가 들어가있는것을 보아하니
hello.php 실행한 내용인 것 같습니다!
일단 flag.php를 한번 봅시다 ㅎㅎㅎ
flag.php를 확인해보니 FLAG가 코드 안에 존재하는 군요?
그럼 flag.php 코드를 확인해봐야할 것 같아요..!!
어떻게 확인을 할까 하다 php Wrapper를 이용한 LFI 공격을 해보도록 하겠습니다!
php Wrapper란 파일 시스템 함수와 함께 사용하기위한
다양한 URL 스타일 프로토콜을위한 많은 내장 래퍼가 제공하는 것을 말합니다!
자세한 사항은 밑의 공식사이트에서 공부하시면 됩니다 :D
https://www.php.net/manual/en/wrappers.php
PHP: Supported Protocols and Wrappers - Manual
Even though their names will be the same, you can have more than one //memory or //temp stream open concurrently; each time you fopen() such a stream, a NEW stream will be opened independently of the others.This is hinted at by the fact you don't add any u
www.php.net
LFI는 Local File Inclusion의 약자로 공격할 파일이 서버 내에 내장되어 있다는것을 의미합니다!
밑의 포스팅에서 취약점과 대응방안에 대해 설명이 잘되어 있습니다 :D
반드시 들어가서 보시면서 공부하시는 걸 추천드립니다!
http://coashanee5.blogspot.com/2017/02/rfi-lfi.html
[웹 취약점] RFI & LFI 취약점
1. RFI 취약점 RFI (Remote File Inclusion) 취약점을 이용한 공격은 공격자가 악성 스크립트를 서버에 전달하여 해당 페이지를 통하여 악성 코드가 실행되도록 하는 것이다. 예제 1)
coashanee5.blogspot.com
전 php wrapper에서 I/O Stream을 다루는 php://filer wrapper를 사용하도록 하겠습니다!
이 wrapper를 사용하는 이유는 encode/decode를 사용하여 문서의 내용을 볼 수 있기 때문이죠 :D
형태는 다음과 같습니다 !
[공격 사이트]=php://filter/convert.base64-encode/resource=[대상]
그럼 위의 형태로 공격을 시도해볼까요 :D ?
시도를 해보니 base64인코딩된 문자열이 출력이 됩니다!
이것을 디코딩해보니..
echo는 파일로 표시되는 내용이었고
flag 변수에 FLAG 문자열이 들어가있네요 :D
이제 인증하러가볼까요!
쨘! 이렇게 인증 성공하였습니다 :D
이만 문제풀이를 마치도록 하겠습니다!
'CTF > Webhacking.kr' 카테고리의 다른 글
Old - 58 (score:150) (0) | 2020.03.06 |
---|---|
Old - 32 (score:150) (0) | 2020.03.05 |
Old - 54 (score:100) (0) | 2020.02.25 |
Old - 39 (score:100) (0) | 2020.02.24 |
Old - 38 (score:100) (0) | 2020.02.23 |