일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 밑바닥부터시작하는딥러닝
- 정보보안
- BOJ
- 신경망구현
- 파이썬
- 딥러닝파이썬
- 보안
- 알고리즘
- C언어 알고리즘
- 항등함수
- 신경망파이썬
- 신경망 학습
- 소프트맥스함수
- 활성화함수파이썬
- 달고나bof
- 백준
- 백준알고리즘
- 8086CPU레지스터
- c언어
- 딥러닝
- 신경망
- BOF
- C언어알고리즘
- 스트림암호
- C알고리즘
- 인공지능
- 버퍼오버플로우
- 파이썬신경망
- 머신러닝
- FTZlevel10
- Today
- Total
HeeJ's
Guess me :: HackCTF/Web 본문
문제 화면을 열면 php 코드가 들어있는 것을 확인할 수 있다.
모르는 함수가 있어서 찾아보았다.
- trim() : 문자열 맨 앞과 맨 뒤의 공백을 제거한다.
- file_get_contents()
ex. <?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>
-> 웹사이트에 있는 전체 파일을 문자열로 읽어들이는 php 함수
- isset() : 들어있는 값이 NULL이 아님을 의미 (변수가 설정되었는지 확인)
코드를 해석해보면,
1. guess 변수에 값이 있으면 filename 변수에서 파일 문자열을 읽어들인 것을 $secretcode 변수에 넣는다.
2. $guess와 $secretcode 값이 같으면 flag.txt를 출력해준다.
filename 변수와 guess 변수의 내용을 조작해서 문제를 해결할 수 있다.
어떻게 값을 전달해줄까 하다가, 입력 폼에 아무 값이나 넣어보았다.
GET 방식으로 입력된 값이 $guess에 들어가는 것을 확인할 수 있다.
(코드 3번째 줄에서도 확인 가능)
GET 방식을 이용해 URL에 $filename과 $guess의 내용을 조작하면 된다.
그렇다면 $filename과 $guess에 들어가야 할 값은 무엇일까?
두 변수값에 모두 NULL을 넣게 된다면,
$guess 도 false, $filename도 false가 되어 if문이 true가 될 것이다.
flag를 획득했다.
'<CTF> > <HackCTF>' 카테고리의 다른 글
Read File :: HackCTF/Web (0) | 2021.04.02 |
---|---|
보물 :: HackCTF/Web (0) | 2020.11.20 |
Button :: HackCTF/Web (0) | 2020.11.20 |
Hidden :: HackCTF/Web (0) | 2020.08.06 |
/ :: HackCTF/Web (0) | 2020.08.06 |