반응형

/ 50

로봇 이미지가 있다.

로봇...로봇...로봇...robots.txt?!

robots.txt의 내용

역시나..

해당 페이지로 이동하면 플래그가 나온다.

FLAG : HackCTF{w3lcome_to_s1mple_web_h3cking!}

 

 

Hidden 50

5번 파일에 플래그가 있다고 한다.

페이지에는 1번부터 4번까지의 버튼이 있다.

버튼을 클릭하면 http://ctf.j0n9hyun.xyz:2023/?id=1 로 이동하는 것을 알 수 있고, 여기서 id 값을 5로 입력해 주면 플래그가 나온다.

FLAG : HackCTF{idx_is_so_s1m3le_ctf}

 

 

Button 50

페이지 소스를 까서 submit의 value값을 button에서 flag로 변경해주고 버튼을 클릭하면 플래그가 출력된다.

FLAG : HackCTF{0k4y...php_c4nn0t_cr34t3_4_butt0n}

 

 

보물 100

page 값에 모든 정수값을 대입해봐야 하는 것 같다.

burp suite을 이용해서 1부터 10000 까지 시도하도록 했고, 중간에 길이가 다른 응답이 날라와서 확인해 보니 플래그가 있었다.

burp suite을 이용했다.

FLAG : HackCTF{0hhhhh_5o_g0od_try!}

 

 

Guess me 100

게싱문제는 아니다.

$filename의 값을 'secret.txt'로 선언한 뒤에 extract($_GET);을 이용해 값을 받고 있다.

따라서 우리는 $filename의 값을 바꿀 수 있고, $filename의 값을 아무 값으로 변경해 준다면, 해당 파일은 존재하지 않을 것이므로 -> guess에 아무 값도 입력해주지 않는다면 $guess === $secretcode 가 TRUE가 되어 플래그가 나올 것이다.

 

http://ctf.j0n9hyun.xyz:2030/?filename=1&guess=

성공이다.

 

FLAG : HackCTF{3xtr4c7_0v3rr1d3ds_pr3vi0u5_kn0wn_v4r1abl35}

 

 

Read File 100

http://ctf.j0n9hyun.xyz:2021/flag.php -> Access Denied

http://ctf.j0n9hyun.xyz:2021/?command=http://ctf.j0n9hyun.xyz:2021/flag.php -> X

http://ctf.j0n9hyun.xyz:2021/?command=http://ctf.j0n9hyun.xyz:2021/flflagag.php -> Access Denied

 

flag 문자열이 필터링 되고 있음을 확인. 권한을 얻기 위해 localhost로 바꿔준다.

 

http://ctf.j0n9hyun.xyz:2021/?command=http://127.0.0.1:2021/flflagag.php -> X

잉? 내가 알고 있는 문제랑은 조금 다른 것 같다.

 

http://ctf.j0n9hyun.xyz:2021/?command=flflagag.php -> 성공

flag is HackCTF{w3lcome_to_vu1n_web?}

 

 

Login 100

첫 페이지에 있는 view source를 클릭해서 php 소스를 보자.

sqli를 시도해보면 될 것 같다. 어떤 id를 사용해야 하는지는 안나와있지만, admin을 id로 사용하면 될 것 같은 느낌이다.

id = admin'-- '

pw = 1234

Flag is HackCTF{s1mple_sq1_1njecti0n_web_hack!!}

 

 

마법봉 100

일단 소스를 보자

바로 보고 매직 해시 문제임을 알아야 한다.

매직 해시 리스트에서 해당 값을 찾아서 어떤 값을 넣어야 할지 찾아내면 끝.

https://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 (==) operator. It’s caused a lot of issues. This has a particular implication for password hashes. Password hashes in PHP are base16 encoded and can come in the form

www.whitehatsec.com

 

FLAG : HackCTF{magic_makes_everything_possible}

 

 

 

Time 150

2달 하고도 1초 더 기다리면 플래그를 얻을 수 있다! 기다리기만 하면 되는 개꿀문제

사실 is_numeric함수에서 지수형태 5.184001e6를 이용해 통과하고

그 다음 조건문들은 5.184001e6의 계산값 5184001으로 통과되며, sleep함수에서 int형으로 변환 될 때 5.184001e6은 5로 변환되어 5초만 기다리면 플래그를 얻을 수 있다.

flag is HackCTF{1_w4nt_t0_sp3nd_m0r3_t1m3

 

 

Input Check 150

페이지 소스를 보면 힌트가 있다.

그래서 변수를 배열로 줬더니 플래그가 나왔다.

http://ctf.j0n9hyun.xyz:2033/?text[]=flag

HackCTF{y0u_are_catch_f1ag!!}

 

 

Home 200

문제 페이지를 보면, 내 ip가 나오고, 힌트로 머리말을 생각하라고 한다. 머리말 == header

header에 x-forward-for을 추가해 주면 된다.

curl --header "X-Forwarded-For: 127.0.0.1" http://ctf.j0n9hyun.xyz:2034 

curl은 윈도우 cmd에서도 잘 된다.

 

flag is HackCTF{U5u4lly_127.0.0.1_4ll0w5_y0u_t0_p4ss}

 

 

 

가위바위보 200 

가위바위보 게임을 이용해서 플래그를 구하는건가 싶어, 소스를 뒤져보았지만 플래그랑은 관련이 없는 것을 알 수 있었다.

 그다음 루트는 프로필 이미지를 변경할 때 파일업로드 취약점쪽이다.

 

프로필이미지 파일명이 저기 이름으로 등록되는데

이 이름이 .php로도 변경이된다.

 

파일에 php파일을 넣으면 a.php로 이동해서 php 실행이 가능하다.

 

이미지 검증은 이미지 시그니쳐를 삽입함으로써 우회한다.

 

 

Cookie 300

cookie라는 쿠키의 값을 base64로 3번 디코딩하면 아래 문자열이 나온다.

{"id":"2","type":"guest"}

일단 id를 1로, type을 admin으로 바꿔주고 base64로 3번 인코딩해보았다.

PassAdmin검증은 php strcmp 배열 취약점을 사용하여 우회하면 된다.

 

 

 

LOL

300

 

로컬로 flag.php에 접속해야하나 보다.

ssrf와 local ip 우회를 사용하자

url@realurl

 

Authenticate

350

로그인인가

 

뭔가 있다.

id 9자리 cresponse 넣고

eval 대신에 alert 돌리니까

여기서 9자리 string을 뽑는다.

dumbh4ck5

 

이걸 username으로 넣고 돌리니 코드가 나왔다.

XorIsNotSooS3cur3 패스워드 겟

 

 

Wise Saying

350

 

음 또 로그인?

뭘로 로그인하든 로그인이 된다.

lfi인가

 

근데 say로 안끝나면 욕한다.

 

phpinfo를 주네

 

/tmp/sess_[value]

세션쿠키값뒤에 say 붙여서 로그인하고 lfi

index.php?page=../../../../../tmp/sess_2b86721cb6a9e6334eb6d1b97a5dd3basay

된다.

이제 아이디에 php코드를 삽입하자.

 

반응형

+ Recent posts