CGI 는 웹서버에서 최경량으로 사용할 수 있또록 만든 서버 언어라고 보면 된다.
CGI 파일은 일반적인 C언어에 CGI만의 환경변수들을 추가 함으로써 처리가 이뤄지게 된다.
첫째로 CGI 프로그래밍에서 첫번째 규약은 시작이 \n 로 되어야 한다. 그래서 대부분 CGI 파일의 시작은
printf("contents-type \n\n") // 처음 엔터부분
으로 시작하는 경우가 많다.
변수의 전달은 query_string 으로 가져오고 Request_URL 는 주소값 전체가 들어가 있다.
즉 /cgi-bin/test.cgi?aaaa=bbbbb
라고 했을때
getenv("QUERY_STRING"); 의 결과 값으로 aaaa=bbbbb 가 들어가 있게 되고
getenv("REQUEST_URL); 의 결과 값으로 /cgi-bin/test.cgi?aaaa=bbbbbb 가 들어가 있게 된다.
여러개의 변수를 저장할때는 & 로 가져오기 때문에
가져올때는 &로 짤라서 써야 한다.
보통 strtok 이나 strstr 의 포인터 값을 이용하여 문자열을 파싱해서 끄게 된다.
p=getenv("QUERT_STRING");
reuslt > aaaa=bbbb&cccc=ddddd
REQUEST_METHOD 는 변조가 불가능한 타입이고 , GET, POST 두개의 값으로 전달 되는 경우가 많다.
'ARM & 펌웨어 분석' 카테고리의 다른 글
공유기 UPNP 로 포트포워딩처럼 열어주는 프로그램 (0) | 2012.12.01 |
---|---|
[펌] upnp 접속 개발 구현 (1) | 2012.11.30 |
CGI 환경 변수 정의 모음 (Group of CGI enviroment) (0) | 2012.11.13 |
[ 펌 ] How to Create a Shellcode on ARM Architecture (0) | 2012.11.13 |
ARM execve NOT NULL 27byte (1) | 2012.11.13 |