Filtering 발견 및 우회 테크닉
·
프로젝트 관련 조사/모의 해킹
출처: http://hyunmini.tistory.com/22 웹 점검을 하다 보면, 웹 방화벽 혹은 소스상에서 특정 키워드를 필터링 하는 경우를 볼 수 있다. 이러한 경우 우회를 하기 위해선 먼저 어떤 문자열들이 필터링 당하는지 확인을 할 필요가 있다. 중요한 것은 먼저 필터링을 "발견" 하는 것이다. 필터링이 적용된 페이지 혹은 사이트의 경우 반응은 여러가지이다. 특정 문자열이 포함될 시 웹사이트의 반응은 아래와 같이 여러가지일 수 있다. 1) 500 에러 발생2) 200 이지만 에러 페이지로 리다이렉트3) 그냥 치환4) 에러 메시지를 통한 자세한 정보 노출5) 기타.. 가장 편한 경우는 4) 의 경우이고, 다른 몇가지 경우에도 간단히 필터링되는 문자열을 찾아낼 수 있다. 1) 정상적인 페이지 vie..
SQL Injection(MySQL) - procedure analyze()
·
프로젝트 관련 조사/모의 해킹
출처: http://hyunmini.tistory.com/46 MySQL 에서 발생할 수 있는 특이한 인젝션 기법을 알게 되어서 포스팅 합니다. 워게임 사이트 문제 풀다 알게 된 것이고...어느정도 웹해킹에 대해선 자신있어 했던게 부끄럽네요. ^^; 더욱 열심히 공부해야 겠습니다. 요지는 select 키워드가 필터링 될때, 어떻게 필드명을 알아낼 수 있을까 라는 것에 대한 것입니다. select 가 필터링 되면 information_schema.tables 나 columns 에서 쿼리를 할 수 없습니다. 이 문제에선 ","(콤마) 와 작은 따옴표까지 필터링 되고 있어서 더욱 쉽지 않습니다. 삽질을 좀 하다가 구글링을 통해 mysql 함수중 하나인 procedure analyze() 함수를 알게 되었습니다..
mysql 우회 기법 정리
·
프로젝트 관련 조사/모의 해킹
출처: http://hyunmini.tistory.com/47 # 공백 우회- /**/- %09, %0d, %0a- select`id`from`user` # ' 우회- concat(char(49),char(50)) = '12'- char(0x31,0x32,0x33) = '123'- 0x41424344 = 'abcd'- x'41424344' = 'abcd'- true + true =2- where '1'=0 / False Injection, 1=1 과 동일함 # 함수 정리unix_timestamp() -> '135461123'inet_ntoa(2108797737) -> '125.177.179.41' # insert injection "a1','a2','a3'), ('b1','b2','b3'), ('c1"i..
[javascript] 문자열 자르기 (split, substring, substr)
·
프로젝트 관련 조사/웹
출처: http://squll1.tistory.com/48 문자열의 일부만 잘라 사용할 경우가 있다. 예제를 보면서 바로 해보자 var string='2013-06-11'; 위 문자열을 잘라보겠다. 문자열에 있는 '-'를 기준으로 자를려면 다시 만하면 특정 문자를 기준으로 문자열을 자를려면 split을 사용하면 된다. var strArray=string.split('-'); 이렇게 split함수에 잘라내는데 기준이 될 문자열을 넣으로 문자열을 잘라 배열로 넘겨준다. console.log(strArray[0]+', '+strArray[1]+', '+strArray[2]); 출력해보면 각 배열에 2013, 06, 11이 담겨진걸 확인 할 수 있다. 다음으로 문자열에서 기준없이 사용하고 싶은 문자열만 골라 가..
[MySQL] MySQL 에서 IF문 사용하기
·
프로젝트 관련 조사/DB
출처: http://www.webmadang.net/database/database.do?action=read&boardid=4003&seq=27 [MySQL] IF문 사용예제 MySQL에서는 IF문 자체를 프로시져 도움없이도 SQL문에 바로 삽입하는 것이 가능해서 무척 편리합니다. 물론 제어부분이 계속 중첩된다면 CASE문을 사용하셔야 합니다. 형식) if (조건,참일때 결과,거짓일때 결과) 예1) 쉬운 예mysql> SELECT if( 2 > 1, '참', '거짓' );결과 : 2가 1보다 크므로 당연히 참을 출력합니다. 예2) WHERE절에서 사용SELECT * FROM join_table WHERE if( CHAR_LENGTH(name) = 2, 'Y', 'N' ) = 'Y';결과 : join_t..
워드프레스 접속 주소 변경하기
·
프로젝트 관련 조사/웹
출처: http://webdir.tistory.com/100 워드프레스 접속 주소 변경하기3년 전 by 흉내쟁이워드프레스를 서브폴더를 이용해 설치했다면 접속주소가 http://도메인주소/wordpress 와 같을 것입니다. 간단히 도메인 주소만 입력하면 워드프레스에 접속할 수 있게 변경해 보도록 합시다.고유주소 설정워드프레스에 접속하고 로그인을 한다.로그인하면 알림판(dashborad) 화면으로 이동된다. 설정 > 고유주소로 이동하여 일반 설정에서 아무거나 변경 후에 저장한다. 저장한 후에 FTP에 접속해서 wordpress 폴더를 보면 .htaccess 파일이 생성되어 있다.index.php 파일과 .htaccess 파일을 복사해서 루트 디렉토리에 붙여 넣는다.index.php 수정index.php 파..
워드프레스 설치하기
·
프로젝트 관련 조사/웹
출처: http://webdir.tistory.com/99 워드프레스 설치하기3년 전 by 흉내쟁이워드프레스를 직접 서버에 업로드하여 설치하는 방법을 다룹니다.워드프레스 다운로드아래의 사이트에서 원하는 버전으로 다운로드 받아 압축을 푼다.http://wordpress.org/ (영문 버전)http://ko.wordpress.org/ (한국어 버전)업로드압축을 풀면 wordpress라는 디렉토리를 발견할 수 있을텐데 이 폴더의 이름을 변경해야 한다. 이는 보안적인 측면에서 도움이 된다.FTP를 사용해서 계정에 업로드한다. (FTP 프로그램 - 파일질라 https://filezilla-project.org/download.php?type=client)디렉토리 구조는 아래와 같게wordpress(폴더명은 변경..
워드프레스 준비물 - DB 생성
·
프로젝트 관련 조사/웹
출처: http://webdir.tistory.com/98워드프레스 준비물 - DB 생성 워드프레스를 본격적으로 설치하기에 앞서, 데이터베이스를 사용할 유저의 생성, 데이터베이스의 생성에 관한 이야기입니다.준비사항워드프레스를 설치하기에 앞서 몇가지 준비사항이 있다. 자신이 사용하려는 APM(Apache,PHP,MySQL)의 버전 선택이 필요하다. 워드프레스의 플러그인중에는 PHP의 버전에 따라 설치할 수 없는 경우가 생기기 때문이다. 이는 자체 웹서버를 구축하는 경우와 웹 호스팅 업체들을 이용할 경우로 나눌 수 있겠다. wordpress.com의 무료 블로깅 서비스는 다루지 않는다.웹 호스팅웹 호스팅 업체를 이용할 경우에는 각각의 업체가 제공하는 서비스를 입맛에 따라 선택할 수 있을텐데, PHP와 MyS..
Log Injection
·
프로젝트 관련 조사/웹
출처: http://www.hides.kr/46 Log Injection log injection이란 sql injection처럼 파라미터를 통해 로깅을 조절하는 방법을 말합니다 보통 웹 어플리케이션에서 log4j 등을 이용해 파일에 로깅을 합니다일반적으로는 장애 발생시 에러 추적을 위해 사용됩니다하지만 데이터 유실시 복구 방침으로 로깅을 하기도 하고요, 그냥 말 그대로 그냥 로깅을 하기도 하지요 또한 로그 파일을 파싱하여 무언가 통계를 내기도 합니다(웹CRM) 일반적으로 로그인에 대한 로깅을 파일에 다음과 같이 합니다 (로그인예가 아니더라도..)String userid = request.getParameter("userid");...if (로그인성공) log.write("User login succee..
[PHP] 문자열 필터링 함수(ereg, eregi...) 취약점을 이용한 우회
·
프로젝트 관련 조사/웹
출처: http://hackability.kr/entry/PHP-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%95%84%ED%84%B0%EB%A7%81-%ED%95%A8%EC%88%98ereg-eregi-%EC%B7%A8%EC%95%BD%EC%A0%90%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9A%B0%ED%9A%8C 오늘 포스팅 할 내용은 PHP 에서 입력 문자열 필터링 함수의 취약점을 이용한 우회 기법에 대한 내용입니다. PHP 에서는 HTTP 메소드를 통해 들어 오는 사용자의 입력 검증 또는 필터링을 위해 eregi 와 같은 함수를 사용해 왔습니다. (POSIX Regex) 예를들어, 간단히 다음과 같이 id 입력에 대해 필터링하는 PHP 코드가 있다고..