kaka09
atoi #include int atoi ( const char * str ) atoi 함수는 문자->정수로 변환시켜주는 함수 입력받은 문자('12345') 아스키형태를 int형의 12345로 변환 된다. 이때 주의할점은 0~9 이외의 값이 들어오면 atoi는 0을 반환한다.또한 숫자 앞에 +,- 같은 기호가 올 수도 있다. 123456789#include int main(int argc, char * argv[]){ char * str; str=argv[1]; printf("result: %d\n",atoi(str)); return 0;} C 다음과 같은 예제의 소스코드를 작성해보자.. 실행할때 인자로 받은 문자열을 atoi를 거쳐 숫자로 변환시켜 출력시키는 프로그램이다. 실행결과 다음과 같이 결과과 ..
[사진]1-1 Nebula exploit-exercises를 공부하다 TICTOU란 기법을 통해 문제를 풀어야 하는 상황이 나와 구글로 찾는중.. 취약점에 대한 원리와 상세한 설명보다는 어디 보안회사들의 가이드라인 및 과거 이정훈씨가 대회에서 상금을 탔다는 내용이 주를 이루어 좀 벙?쪄있었다.. 그래서 외국 문서들을 찾다 외국위키에서 설명이 잘 되어 있어서 해당 기법에 대해 이해를 하고 문제를 풀어낼 수 있었다.. 우선 TICTOU(Time-of-check Time-of-use)기법은 일종의 Race Condition을 이용한 공격기법 이라고 볼 수 있다. 다음의 예제를 살펴보자 Victim Attacker if (access("file", W_OK) != 0) { exit(1); } fd = open(..
PHP e ModiFier 취약점은 preg_replace 함수에서 "/e" 옵션을 사용할때 발생하는 취약점이다. "/e" 옵션은 치환될 문자를 php 코드 그대로 해석하는 옵션이다. 만약 치환된 결과가 system과 같은 문자열일 경우 /e 옵션에 의해 해당 문자열은 php 코드 그대로 해석하게 될 것이다. Nebula level09 문제를 통해서 e modifier 취약점에 대해 살펴보자 [사진]1-1 소스코드를 살펴보면 인자 2개를 받도록 설계되어 있고, 그중 첫번째 인자는 파일명을 받도록 되어있다. 여기서 취약점 포인트는 $contents = preg_replace("/(\[email (.*)\])/e", "spam(\"\\2\")", $contents); 부분이다.위에서 서술한대로 "/e"옵션을..