본문 바로가기

CODEGATE

[Codegate 2013] Web 400 simple write up 이 문제는 if문과 rand를 이용한 문제 수학문제 4문제가 주어지고, 다 풀면 원래는 700점이 한계인데, 3000점을 넘어야한다. 처음엔 blind injection을 통해 숨겨진 문제를 찾는거라 생각했다.그래서 시간을 좀 많이 소모했다. 근데 블라인드 인젝션을 힘겹게 해서 데이터를 다 보고나니, 포인트가 있는 문제는 그 4개가 전부였다. 그렇다면, 방법은 1,2,3,4번 문제를 여러번 풀어야 한다는 소리인데.. 파라메터를 조작해서 인젝션을 하다보면, 정답에 + or 1 like 1 #만 붙이면 클리어가 뜨는걸 알수 있다. 첫번째 쿼리에서 이미 풀었는지 확인을 하고, 두번째 쿼리에서 문제의 포인트를 불러오고,세번째 쿼리에서 불러온 포인트를 이용해 업데이트 한다. 이렇게 추측했다. 그렇다면 첫번째 쿼리.. 더보기
[Codegate 2013] Binary 100 simple write up peid를 통해서, 혹은 그냥 프로그램을 바로 켜봐도 느낌상 C# 파일이라는것을 확인할수 있다. 그러므로, net reflector를 이용해서 디컴파일했다. 코드를 쭉 살펴보다보면, 우리에게 보여주는 중요한 string은 암호화 되어있고 xor과 AES encrypt로 되어있다는것을 알수있다. blocksize가 0x100이므로, Rijndael 방식중에서도 256비트라는것을 알수있고, key값은 9e2ea73295c7201c5ccd044477228527 이다. iv값도 key값과 같은 값을 사용한다. 그리고 중요한점은, utf-8방식으로 해야한다는것이다. 그래서 온라인상에 있는 rijndael decrypt 페이지에서는 안되더라.. 그래서 처음엔 python으로 진행하다가 나중에 php를 이용해서 디코.. 더보기
[Codegate 2013] Web 300 simple write up 전형적인 블라인드 인젝션 문제다. contact를 하는 부분(이름,메일,question,메세지 보내는 부분)에서 인젝션이 가능하다. question 파라메터를 이용해서 블라인드 인젝션을 했다. 그러면 멤버들의 비밀번호가 md5로 해쉬 되어있는걸 확인할수 있고 사전식으로 online md5 decoding 페이지들을 이용해서 디코딩이 가능하다. 그리고 소스보기를 통해 보면, 자바스크립트가 숨겨져있고, 숨겨진 로그인페이지가 있다는걸 알수 있다 그리고 나서 하나씩 로그인해보면 Hound 해킹을 의뢰한 사람과 시간이 나타난다. [python] import httplib,urllib; import sys import time # Blind SQL injection # setting #toget = 'databas.. 더보기
[Codegate 2013] Web 100 simple write up 비밀번호 해쉬를 하는데 세번째 인자가 true이다. raw 형식으로 hash를 한다는것을 알수있다. 예전에 wargame에서 풀어본 경험이 있는데.. 아마 webhacking.kr에 있었던 문제 같았다. 경험이 있으므로.. 쉽게 풀었는데 예전엔 md5로 해쉬를 했는데, 이번엔 좀 다른방법으로 해쉬를 한다. 그러므로 새로 php를 짰고, 'or' 이나 '||' 이 들어있는 해쉬를 하나씩 돌려서 찾아봤고, 결과를 하나씩 넣어보다 보니 로그인 성공 (숫자 몇이 성공이었는지는 정확히 기억이 안난다) 비밀번호를 찾는 코드 $i의 값이 비밀번호다. $i=0; echo "start\n"; for ($i=119335433; $i 더보기