root-me web-client 3번 문제 풀이(Source) 3번문제에 들어가보니 이렇게 떠있었습니다 그래서 저는 아무거나 쳐봤습니다 그러면 이렇게 뜹니다 그리고 확인을 눌러주면 아무것도 안뜨는것을 볼수있었습니다. 저는 f12눌러주었더니 이렇게 뜹니다 그러면 여기 보시면 pass는 123456azerty라고 뜨는것을 볼수있었습니다. 이것을 root-me 정답란에 삽입해주면 풀리는것을 볼수있었습니다. 답:123456azerty root-me-client 2021.09.22
root-me web-client 2번 문제 풀이(Authentication) 이 문제에서는 username 와 password를 쓰라고나와있습니다 이문제를 푸려면 f12눌러보면 login.js라는곳을 들어가야합니다. http://challenge01.root-me.org/web-client/ch9/login.js 들어가주시면 이렇게 뜹니다 pseudo = 4dm1n password=="sh.org" 이라고 써있습니다 이것을 로그인에 넣어주면 이렇게뜹니다 ! 이제 답을 삽입하면 끝납니다 답:sh.org http://challenge01.root-me.org/web-client/ch9/login.js challenge01.root-me.org root-me-client 2021.09.22
root-me web-client 1번 문제 풀이(disabled buttons) root-me 1번 문제는 이것을 보고 f12를 눌러 어떻게 조작해야할지 고민 했습니다 흠.. 그래서저는 disabled 타입을 바꾸어주었습니다 disabled는 비활성화를 하기 때문에 이것을 지워주면 풀립니다 그러면 이런식으로 써질겁니다 member access를 눌러주면? 답이나옵니다~ 답:HTMLCantStopYou root-me-client 2021.09.21
hackctf 11번 문제 풀이(home) 이문제를 보고 뭐지? 라는 생각이 들었는데 문제를 보고 구글링을 하며 찾아봤는데 X-Forwarded-For 라는게 있다 그래서 localhost로 인식하게 해주었는데 거기에 머리말이라서 해더에 X-Forwarded-For 라는곳에 루주백으로 적어서 127.0.0.1을 넣어줬더니 답을 주었습니다 답:HackCTF{U5u4lly_127.0.0.1_4ll0w5_y0u_t0_p4ss hackctf web 2021.09.19
hackctf 10번 문제 풀이(input check) 이문제에서는 입력값이 플래그여야 한다해서 flag를 써주었더니 no hack~이 떴습니다 그래서 f12를 눌렀는데 힌트가 있었습니다 이걸 보시면 Input array Type 라고 하는데 여기서 취약점을 찾을수있다. get방식으로 전달해서 ?text뒤에 []를 넣어줘야한다 왜냐하면 배열로 array가 배열인데 배열로 전송하려면 []를써줘야한다.그럼 이제한번 써볼까? 이렇게 하면 답:HackCTF{y0u_are_catch_f1ag!!} hackctf web 2021.09.16
hackctf 9번 문제 풀이 (time) 이문제는 위에 보시면 if문에 get방식으로 time을 가져오는것을 볼수있습니다 이건 조금 어렵게 풀었는데 취약점은 is_numeric에서 발생합니다 이것은 수문자열 검증함수인데요 time으로 입력한 시간만큼 코드를 작동시킵니다. 하지만 int는 소수점을 제외합니다 지금보면 time으로 입력값을 받을것이 위처럼 60x60x24x30x2인것을 볼수있습니다 if에 맞게 숫자를 넣으면 그만큼을 계속 기다리게 됩니다. 그래서 저는 소수점과 지수를 사용하면 is_numeric와 if를 지나쳐 플래그를 얻을수있습니다 그래서 계속 대입을 하여 5.184001e6이렇게 된다면 5초후에 자동으로 풀릴것입니다. .을 찍는이유는 5초만에 정답을 가지고 오기위해서고 e6은 제곱이라 생각하시면 되겠습니다 그러니까 5초로하고 뒤.. hackctf web 2021.09.16
hackctf 8번 문제 풀이(마법봉) 여기 보면 해쉬에 마법을 부여하면 된다고 한다. 이것은 매직해쉬이다. 매직 해쉬를 쓰는 문제이때문에 if문을 보시면 sha1과 md5(240610708)과 비교를 하고있는것을 알수있습니다. 인터넷에 매직해쉬를 쳐보면 매직해쉬를 쓴 블로그가 많습니다 그중 하나를 골라 보면 위같이 나와있을겁니다 이제 알아냈으니 이런식으로 입력해준다면 위와 같이 풀릴것입니다 답:HackCTF{magic_makes_everything_possible} hackctf web 2021.09.15
hackctf 7번 문제 풀이(Login) 이문제는 sql 인젝션 문제인데 sql 인젝션은 los에서 배우면 쉽다 이문제는 간단했다. 코드를 보면 필터링이 없는것을 알수있었다. 그래서 그냥 and부터 지워주면 된다. 이렇게 해주면 id=&pw=여기서 입력값이 id=admin'#을 했으므로 and와 pw는 날라가고 id에 어드민만 남는다. 로그인을 누르면 이렇게 뜹니다 답: HackCTF{s1mple_sq1_1njecti0n_web_hack!!} hackctf web 2021.09.15
hackctf 5번 문제 풀이(guess me) 이문제는 extract와 filename를 알고있는지 물어보는 문제였었습니다. extract() 함수는 배열속의 키값을 변수로 만들어주는 역할을 한다 예를들어 $_GET[a]="Hello"; $_GET[b]="World"; extract($_GET); echo $a; echo $b; 라고하면 Hello World 가 출력되는 거다 이제 문제를 보면 $guess변수와 file_get_contents 함수로 불러온 $secretcode변수 비교하는것을 볼 수 있다. 그러면 extract 함수를 이용해서 $_GET 변수에 키과 값을 전달해야되는 상황이왔습니다 그래서저는 $filename변수를 조작해야한다는것을 알았고 $guess 변수와 $secretcode 변수랑 똑같이 되기 위해서 ?guess=&filena.. hackctf web 2021.09.14
hackctf 4번 문제 풀이(보물) hackctf 4번 문제 풀이 지금 보면 page가 1~3까지 있습니다 하지만 숨겨놨다고 해서 4번페이지가 있을것같습니다 url 에 page=4해주었더니 다른 페이지에 왔습니다 page=11111해도마찬가지였고 그래서 저는 삽입 공격해주어야한다는것을 알았습니다 import requests for i in range(1,10000): r = requests.get(f'http://ctf.j0n9hyun.xyz:2025/?page={i}').text print(i) if r.find('HackCTF') != -1: print(r) break 이런식으로 해주면 대충 10000까지 넣어주는겁니다 그래서 답은 답 :Hack{0hhhhh_5o_g0od_try!} hackctf web 2021.09.14