본문 바로가기

전체 글847

ereg / eregi / ereg_replace / eregi_replace 함수 1. ereg() 함수 - 문자열중에 찾는값이 있으면 TRUE 를 반환, 아니면 FALSE를 반환 - ereg("찾는값","문자열",array[matches]) 3번째 인자를 사용할 경우에는 값을 찾아낸 문자열을 matches에 저장 2. eregi() 함수 - ereg와 같으나 대소문자를 구별 - eregi("찾는값","문자열",array[matches]) 3. ereg_replace() 함수 - 문자열을 찾는값이 나오면 치환값으로 치환 - ereg_replace("찾는값","치환값","문자열") 4. eregi_replace() 함수 - ereg_replace와 같으나 대소문자를 구분 - eregi_replace("찾는값","치환값","문자열") 2014. 5. 4.
PHP 정규표현식 1) eregi 함수 eregi("검사할문자", "검사대상문자열"); - 검사대상문자열에 검사할 문자가 있으면 TRUE(1), 검사대상문자열에 검사할 문자가 없으면 FALSE(null) 가 결과로 나오게 된다 - ereg함수는 대소문자 구별을하며 eregi함수는 대소문자 구별을 하지 않는다 ex) 2) 정규표현식 ^ / $ / . / * / + / ? 연산자 설명 ^ 문자열의 시작을 의미 $ 문자열의 끝을 의미 . 임의의 한 문자 * 바로 앞의 문자가 없거나 하나 이상 + 바로 앞의 문자가 하나이상 ? 바로 앞의 한 문자가 없거나 있음 ex) ^a ==> a로 시작하는 모든 문자열 (a, ab, abc, abcd, ....) a$ ==> a로 끝나는 모든 문자열 (a, ba, cba, ....) a.b .. 2014. 5. 4.
기본적인 MySQL 문법 0. 데이터베이스 조회 - SHOW DATABASES; 1. 데이터베이스 생성 - CREATE DATABASE DB네임; 2. 테이블명 수정 - ALTER TABLE 기존테이블명 RENAME 바꿀테이블명 3. 데이터베이스 삭제 - DROP DATABASE DB네임; 4. 테이블 조회 - SHOW TABLES; 5. 테이블 생성 - CREATE TABLE 테이블명( 컬럼명 TYPE NULL/NOT NULL 컬럼명 TYPE, 컬럼명 TYPE) 6. 테이블 삭제 - DELETE FROM 테이블명 (WHERE 조건) - DROP TABLE 테이블명 7. 컬럼추가 - ALTER TABLE 테이블명 ADD 컬럼명 TYPE NOT NULL DEFAULT '기본값'; 8. 컬럼에 내용삽입 - INSERT INTO 테이.. 2014. 5. 2.
HttpOnly를 이용한 쿠키 하이재킹 방지 쿠키의 httponly 옵션에 대해서 1. 언제 개발되었나? -2002년 MS IE6.0 SP1 에서 최초 지원 2. 어떤 동작을 하는가? -클라이언트 브라우저에서 쿠키가 생성될때 httponly 옵션이 있으면 클라이언트 스크립트의 쿠키 요청에 대해서 브라우저는 응답을 하지 않습니다. -예를 들어 쿠키 생성시 httponly 옵션이 있다면 javascript 의 document.cookie 메소드를 통해 쿠키정보를 브라우저로 부터 획득할 수 없습니다. 3. 왜 만들어 졌는가? -XSS 를 이용한 쿠키 하이재킹에 대응하기 위해 개발된 기술입니다. 4. 지원하는 브라우저 -Microsoft Internet Explorer 6.0 SP1 이상 -Mozilla Firefox 3.0.0.6+ 이상 -Netscap.. 2014. 4. 28.
Webhacking.kr 7번 Auth 를 누르니 Access_Denied! 라고 뜬다. 소스를 확인해보았다. val이 2가 되어야 조건에 만족하나보다. phps 로 들어가여 소스를 확인해보았다. union 이라는 힌트를 얻었다. if(eregi("--|2|50|\+|substring|from|infor|mation|lv|%20|=|!||sysM|and|or|table|column",$ck)) exit("Access Denied!"); 상당히 많은 부분을 필터링 해놨다. 해당 소스를 통하여 쿼리문을 추측해보면 union select (3-1 정도로 추측할 수 있다. 하지만 공백을 필터링하므로 인코딩값인 %0A를 통하여 넣어줬다. union%0Aselect%0A(3-1 좋은 시도라고 한다. val 값에 아무런 값이 없어서 그런것같다. .. 2014. 4. 13.
Webhacking.kr 5번 나는 웹 문제를 풀 때 무조건 Directory Listing 취약점이 있는지 확인한다. 문제에 접속하니 Login 버튼과 Join 버튼이 존재한다. Join 버튼을 누르니 Access Denied 라고 뜬다. http://webhacking.kr/challenge/web/web-05/mem/ 로 접속한 후 join.php 파일을 다운로드 후 소스를 확인해보았다. 자바스크립트 난독화 사이트를 통해 줄바꿈 및 알아보기 쉽게 바꿔주었다. (http://jsbeautifier.org/ 참고) 그 다음 lllll 이런식으로 되어있는 부분을 읽기쉽게 하나의 알파벳으로 바꿔준 후 소스를 분석해보니 쿠키에 oldzombie 가 들어있어야 하며 URL에 mode=1 이라는 부분이 있어야 된다고 한다. 해당 요건을 충족.. 2014. 4. 13.