목록wargame.kr (12)
Bace
문제는 다음과 같다. 32비트 어플리케이션의 integer type을 아냐고 물어본다. 문제를 들어가면 다음과 같이 나온다. 소스 d1과 d2를 받는데 ./p7.c 파일을 컴파일하여 /tmp/p7에 생성 후 input1을 넣은 결과가 1이 아니고 input2와 값이 맞아야 flag를 준다고 한다. 일단 현재 경로의 p7.c 에 들어가서 코드를 확인해보았다. 값을 입력받는데 입력받은 값이 0미만이거나 4를 초과하면 1이 되고 5미만이면 i값을 출력해준다고 하는데, i 값에 1부터 4까지 입력해도 i=i+5 때문에 어떤 값을 입력해도 결과값은 1이 된다. 여기서 힌트를 잘 보면 32비트 프로그램이라고 하였으므로 integer overflow를 시도해보았다. p7.c 코드를 컴파일하여 32비트의 최대값을 넣어..
문제는 다음과 같다. 제목이 힌트라고 한다. 문제를 들어가면 다음과 같이 나온다. 소스 문제 창에서 입력받는 값이 json으로 전송되는데 code 값이 true이면 flag를 주고, false이면 아무것도 없는거 같다. 근데 == 을 통해 느슨한 비교를 하고 있다. flag를 보내보았다. burpsuite로 확인해보면 key값으로 flag가 보내지는데 flag 양 옆의 '를 지우고 flag를 true로 바꿔보았다. flag가 떴다. # Auth
문제는 다음과 같다. admin으로 로그인하라고 한다. 문제를 들어가보면 로그인과 회원가입창이 있다. 아이디가 없으므로 Sign Up을 했다. 가입 창이 나오는데 id는 4글자를 넘어야 하고 ps는 7글자를 넘어야한다. 그리고 id와 ps에 maxlength가 걸려있다. F12로 id의 maxlength를 없애주고 ID 값에 admin ' // admin 뒤에 공백을 엄청 많이 넣고 ' 를 넣어줌 PS 값에 12345678 을 넣어 가입했다. 이제 Sign in을 통해 회원가입한 값으로 로그인해보았다. flag가 떴다. # Auth
문제는 다음과 같다. 다른 값으로 비교한다고 한다. 문제를 들어가보면 다음과 같이 나와있다. 소스 v1과 v2의 md5 값이 같으면 flag를 준다 근데 v1의 ctype_alpha는 알파벳만 입력해야하고, v2의 is_numeric은 숫자만 입력해야한다. 여기서 풀 수 있는 방법은 2가지가 있다. 첫번째는 임의의 문자열을 주고 while문으로 숫자값을 계속 대입하여 똑같은 md5 값이 나오게 하는 방법 (확률은 아주 극악) #!/usr/bin/python import hashlib i = 0 text = 'flag' enc = hashlib.md5() enc.update(text) encText = enc.hexdigest() print encText while True: enc2 = hashlib.m..