본문 바로가기

분류 전체보기264

[HackCTF] (Reversing) Keygen 풀이 (No ida pro , handray) 문제를 다운받고 ida로 열어보자 [main] 0x41 (61) 만큼 입력을 받고, check_key로 확인한다음 맞으면 flag파일을 열어서 출력해준다. [cheak_key] 입력값이 10이상, 64이하 이면, 입력값을 encoding한다음 OO]oUU2U m[] var_C : 입력값의 길이 --> len var_10 : iterator --> i var_11 : 0x48 --> v 입력값 : s[] 0xEA0EA0EB : v2 저는 ida pro가없으니 이제부터 encoding루틴을 직접 handray해보겠습니다. 루틴은 4단계로 나눠서 설명해드릴께요 [ 반복문 ] while ( i < len ) [ First ] E1 = (s[i] + 0xC ) * v + 0x11 [ Second ] E2 = ( .. 2020. 3. 6.
[HackCTF] (Pwnable) Basic_FSB 풀이 문제파일을 ida로 열어보면 main함수가 있다. main함수에는 특별한점이 없으니 vuln함수로 넘어가자 var_808 에 입력을 받고, snprintf로 var_408 에 400만큼 출력하고 printf 로 var_408 을 출력한다. 하지만 코드에는 이상한 점이 있다. 바로 (%s 나 %d 같은)서식문자를 사용하지않는점인데, 이점은 포멧스트링 버그(Format String Bug) 로 이어질 수 있다. 포멧 스트링 버그는 문자열을 입력받을때 사용자가 서식문자를 입력하면 그 서식문자에 따라 출력이 된다. 한번 문제서버에 서식문자를 입력해보자. AAAA %x %x %x %x 를 입력하면 그대로 출력되지않고 서식문자에 따라 16진수값들이 나오게된다. 이 16진수값들은 왼쪽부터 차례대로 스택에서 esp+4.. 2020. 3. 6.
[SuNiNaTaS] (Web) 23번문제 https://snwo.tistory.com/23 [SuNiNaTaS] (Web) 22번문제 Blind Sql Injection 문제다. Blind Sql Injection은 sql쿼리를 조작해 넣었을때 나오는 특정신호를 파악해 pw를 얻는거라 볼수있다. 힌트를 보면 id : guest, pw : guest 인 계정이있고, admin의 비밀번호를 찾.. snwo.tistory.com 22번문제와 비슷한 Blind Sql문제이다. 다만 필터링이 늘어난걸 볼 수 있다. 우리가 22번문제에서 썼던 admin과 substring함수가 필터링되는걸 볼 수 있다. 하지만 len함수는 필터링되지 않았기에 비밀번호 길이를 확인해보자. admin은 +문자로합쳐 ad'+'min' 으로 우회할 수 있다. 이런식으로 하나씩늘.. 2020. 3. 5.
[SuNiNaTaS] (Web) 22번문제 Blind Sql Injection 문제다. Blind Sql Injection은 sql쿼리를 조작해 넣었을때 나오는 특정신호를 파악해 pw를 얻는거라 볼수있다. 힌트를 보면 id : guest, pw : guest 인 계정이있고, admin의 비밀번호를 찾아보라한다. guest로 로그인이 된다. 그렇다면 sql쿼리는 [ select * where id='$id' and pw='$pw' ]라는걸 추측해 볼 수 있다. admin' -- 를 넣는다면, [ select * where id='admin' -- ] 로 -- 뒤는 주석처리가되어 결국 sql문은 참이되어 OK admin이 출력된다. 그렇다면 admin' and (추가조건)-- 을 걸어서 패스워드의 길이를 알아보자 10보다 크지않고, 9보다 크다면 비.. 2020. 3. 5.