Information Security ˗ˋˏ ♡ ˎˊ˗
반응형

HackCTF 10

[HackCTF Web] 가위바위보 (파일 업로드 취약점)

ctf.j0n9hyun.xyz/challenges#%EA%B0%80%EC%9C%84%EB%B0%94%EC%9C%84%EB%B3%B4 HackCTF Do you wanna be a God? If so, Challenge! ctf.j0n9hyun.xyz 문제 가위바위보 그림을 클릭하면 게임이 시작된다. 선택하면 게임이 시작되면서 이겼는지, 비겼는지 그리고 졌는지 결과가 나오는 페이지이다. 그리고 게임하는 페이지만 있는 것이 아니라 이름과 프로필 사진을 변경할 수 있는 페이지도 존재한다. 해당 페이지 이름은 settings.php이다. 풀이 지금 설정되어있는 이름은 kaa으로 설정되어있다. 정상적인 페이지에서 어떻게 문제를 해결할 수 있는가 생각해보았을때, 가장 먼저 소스코드를 확인하는 것이었다. 메인페이지에..

Security/WebHacking 2021.02.03

[HackCTF Web] Input Check (X-Forwarded-For 헤더)

ctf.j0n9hyun.xyz/challenges#Home HackCTF Do you wanna be a God? If so, Challenge! ctf.j0n9hyun.xyz 문제 풀이 처음에는 해당 IP주소를 크롬 브라우저를 통해서 들어가 보았을 때 큰 힌트를 얻을 수 없었다. 이후에는 문제 페이지의 소스코드를 살펴보았다. 해당 소스코드에서도 힌트를 찾을 수 없었다. 문제를 보면 강조된 머리말이라는 단어에 집중하기로 했다. IP 주소와 머리말을 살펴보았을 때, Header를 생각할 수 있었고 구글에 다양한 방식으로 검색을 해봤다. 검색창에 http header ip를 입력했을 때, X-Forwarded-For(XFF)가 나오는 것을 볼 수 있었다. 아래에서 자세히 살펴보겠지만, 간략하게 X-Forwa..

Security/WebHacking 2021.02.03

[HackCTF Web] Input Check

문제 풀이 입력값을 flag를 입력했을 때는 "No Hack~"이라는 문자열 출력되는 것을 볼 수 있다. 다른 입력값을 입력했을때는 문제와 같은 화면이 뜬다. 또 다른 힌트를 찾기 위해서 페이지의 소스코드를 확인해보았다. 다음과 같은 힌트를 확인할 수 있었다. "Hint : Input Command Check is Array Type" 라고 적혀있었기 때문에 입력의 형태를 배열로 바꿔주었더니 flag 값이 화면에 나타났다. ctf.j0n9hyun.xyz:2033/?text[]=flag

Security/WebHacking 2021.02.03

[HackCTF Web] Time (is_numeric 함수)

문제 풀이 코드를 살펴보았을 때, 입력하는 문자열은 숫자만 가능하고 최소 5184000보다 커야 하고 최대 7776000보다 작아야 한다. else문에서 sleep 함수가 있어서 5184001을 입력하면 5184001초 뒤에 flag가 출력되기 때문에 기다리는 것으로 해결해서는 안된다. 일단 is_numeric함수에 대해서 살펴보았다. 간단하게 살펴보면, is_numeric 함수는 지정한 파라미터가 숫자인지 아닌지 확인하는 함수이다. 함수에 대해 살펴보다가 취약점이 존재한다는 것을 알게 되었다. is_numeric 함수를 살펴보면 정수형을 포함해, 지수 표현까지도 숫자로 인식한다고 한다. 5184001을 지수로 바꿔서 in_numeric 함숫값으로 들어가고, sleep 함수는 int형으로 형 변환이 되면..

Security/WebHacking 2021.02.01

[HackCTF Web] 마법봉 (매직해시 취약점)

문제 풀이 flag 값이 나오기 위해서는 md5로 숫자 240610708 값을 암호화한 값과 sha1으로 입력값을 암호화한 값이 같으면 플래그가 출력된다. 이때 해시 값이 같다고 되는 경우로는 "매직 해시(Magic Hash)"를 이용한다. 밑에서 자세히 살펴보겠지만, 간단하게 Magic Hash란? 비교 연산을 할 때, type juggling을 이용하여 서로 다른 값이 같은 값으로 인식되도록 하는 특수한 동작이다. www.whitehatsec.com/blog/magic-hashes/ Magic Hashes | WhiteHat Security For more than the last decade, PHP programmers have been wrestling with the equals-equals ..

Security/WebHacking 2019.11.28

[HackCTF Web] Guess me

문제 풀이 아무 값이나 넣어서 제출하기를 눌렀을 때, 나오는 모습이다. 처음 문제를 보았을 때, 모르는 개념이 많아서 먼저 함수나 php코드 형태를 검색해봤다. PHP 개념 1. extract($_GET) : PHP에서는 일반적으로 $_GET[aaa]를 $aaa로 쓸 수 있다. 하지만 서버 설정이나 버전에 따라서 반드시 $_GET[aaa]를 써야 하는 경우가 있다. 이 때 본문에 $_GET[aaa] 대신 $aaa가 쓰여있다면 오작동을 일으키게 된다. extract함수는 배열의 값을 꺼내주는 역할을 한다. 즉 $_GET[aaa], $_GET[bbb] 가 있다면 $aaa, $bbb로 쓸 수 있도록 만들어준다. 2. trim 함수 : 시작과 끝 문자열에서 공백(또는 문자)을 제거하는 trim 함수 3. fil..

Security/WebHacking 2019.11.28

[HackCTF Web] /

문제 숨겨진 플래그 찾기 풀이 처음에 로봇이 어떤 의미가 있는지 살펴보기 위해 페이지 소스코드를 보면, http://www.irobotnews.com/news/photo/201709/11794_27156_1618.png 이미지를 불러오는 url만 존재한다. 구글링을 통해 알아낸 결과, 로봇 사진을 보고 robots.txt라는 것을 생각해내야 한다. robots.txt가 무엇인가? : robots.txt 파일은 검색엔진 크롤러에서 사이트에 요청할 수 있거나 요청할 수 없는 페이지 또는 파일을 크롤러에 지시하는 파일이다. 사이트의 루트에 위치하며 사이트에서 검색 엔진 크롤러가 액세스하는 것을 방지하기 위한 규약이다. robots.txt는 주로 사이트의 크롤러 트래픽을 관리하는 데 사용된다. 먼저 robots..

Security/WebHacking 2019.11.19
반응형