본문 바로가기

해킹

(12)
[웹해킹] HACKCTF - TIME WriteUp HACKCTF의 TIME을 풀어보았다. 처음엔, 60*60*24*30*2와 크거나 같고, 60*60*24*30*3과 작거나 같은, 숫자를 입력하기만 되니 쉬운거라고 생각을 하고, 60*60*24*30*2의 결과인, 5184000을 적었다. 그런데, 프로그램이 반응을 안하는 것이다. 그래서 엥 왜지 싶었는데, 잘보니, 아래에 sleep()가 있었다. 이걸 기다릴까 생각해보니, 60*60*24*30*2는 두 달이다... 그래서 알아보니, 문제는 저것이었다. (int)키워드를 통해, 형변환이 되는데, 위의 5184000을 쓸때, 그대로 적지 않고, 5.184e6으로 쓰면 이것을 int로 형변환할때, 5가 된다는 것이다... 헉! 그래서 직접해보면, 5초 기다리고 난 뒤에 flag가 출력된다..
[웹해킹] HACKCTF - Magic Number WriteUp php에서도, Javascript와 같이, ==와 ===가 구분되어 있어서, ==는 값 비교를, ===는 값과 자료형이 같은지를 비교한다고 한다. php에서는 '0e100'와 같은 구문을 e표현법이라고하여, 엄청 크거나 작은 숫자를 저렇게 표현할 수 있다고 한다. 위의 문자열 '240610708'을 md5로 해싱을 하게 되면 0E462097431906509019562988736854가 된다. 이녀석이 위의 if(md5('240610708') == sha1($input))구문에서 == 비교를 할때, php가 0E~~~를 보고, 0x10^~~인가보다 하고 판단해서, 0이된다. 그래서, 우리도 sha1로 digest 했을때, 0e~~가 되는 문자열을 찾아서 넣어주면 해싱 검사를 bypass할 수 있다. 입력하..
[웹해킹] 자바스크립트 문법 정리 본 글에서 사용한 예제나 사진은 다음 사이트에서 가져왔습니다. www.tcpschool.com/javascript/ 자바스크립트 기본 타입 자바스크립트의 기본 타입에는 다음과 같은 것들이 존재한다. 숫자 문자열 boolean undefined Symbol 객체 숫자는 모두 실수로 표현한다. undefined는 타입이 정해지지 않았음을 나타내는 타입이다. 변수의 선언 및 초기화 var hello = 'hello world!' hello = 10 dog = "멍멍" 비교 연산자 다른 산술연산자, 비트연산자 등은 전부 다른 언어와 비슷하다. 하지만 자바스크립트에는 ==와 ===라는 연산자가 있는데, 이는 타입별 변환이 비교적 자유로운 자바스크립트에서 ==는 값만이 같으면 True, ===는 값이외에도 타입도 ..
[DreamHack] Master_canary Write-up 보호되어 있는 글입니다.