Linux Ubuntu OpenSSL Source Code. 다운로드.# wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz 기존 버전 제거.# apt-get --purge remove openssl# apt-get update# apt-get install gcc # tar xvfz openssl-1.0.1g.tar.gz# cd openssl-1.0.1g/# make# make test# make install 심볼릭 링크 생성.# ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl# openssl version 취약버전 : 1.0.1 ~ 1.0.1f , 1.0.2-beta, 1.0.2-beta1
분류 전체보기
Openssl heartbleed. #History.2014년 4월은 보안 쪽에서는 많은 이슈가 많았다.4월 8일, 13년 동안 Windows 운영체제 중 하나인 XP의 업데이트 지원이 종료되었고, 9일 HeartBleed, 즉 (CVE-2014-0160)라고 이름 붙이진 Openssl 버그가 발견되었다. #Vulnerability information.시스템 메모리 정보 노출 취약점. => CVE-2014-0160(2014.04.07).영향을 받게 되는 버전 => OpenSSL 1.0.1 ~ OpenSSL 1.0.1f. OpenSSL 1.0.2-beta, OpenSSL 1.0.2-beta1.영향을 받게 되는 시스템 => OpenSSL 버전이 탑재된 시스템. Ex) 서버[다양한 시스템].영향을 받지 않는..
Dirty Cow. 참고 => https://dirtycow.ninja/ , https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=24653 . #History. Red Hat 보안 연구원인 Phil Oester가 레이스 컨디션 기법을 이용해서 리눅스 커널의 Read-only 영역 메모리에 쓰기 권한을줄 수 있는 취약점[CVE-2016-5195 test.txt# chmod 0404 test.txt #-3 dirtycow 실행.$./dirtyc0w test.txt "color is black" #-4 확인.$ cat test.txt Cf) User id로 root 권한을 갖는 root로 변경하는 명령어.1.sudo su and s..
21.Iron_golem 풀이. if(preg_match('/sleep|benchmark/i', $_GET[pw])) exit("HeHe");Sleep이랑 benchmark가 필터링 되어 있다.Sleep은 쿼리를 초 단위로 지연 시킬 수 O.Select * from [테이블명] WHERE SLEEP(5)=0; 참조 => https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_sleep http://BENCHMARK(count,expr) https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_benchmark 즉, Sleep과 Benchmark..
Output. 간단한 예제를 통해 Hello World 출력 확인. #" "(큰 따옴표). 출력 가능. #' '(작은 따옴표). #""" """ (큰 따옴표 3개). ''' '''(작은 따옴표 3개). 출력 원활하게 가능. #" " (큰 따옴표) print 사용. #' ' (작은 따옴표) print 사용. #""" """ print 사용. ''' ''' print 사용. Cf) """ """ , ''' ''', " ", ' ' ==> 결과는 다 동일.
20.Dragon 풀이. $query = "select id from prob_dragon where id='guest'# and pw = '{$_GET[pw]}'";쿼리를 보게 되면 id ='guest'# 주석이 달려있다.guest 뒤에 # 주석 처리가 있어서 무엇을 get으로 어떤 것을 보내든 다 무시된다.주석을 벗어나는 방법은 line feed(%0a) 이용.id가 guest로 되어있어서 거짓 조건을 줘서 없앤 다음에 id='admin'을 입력.%0a==> 줄바꿈 문자를 사용하여 우회.일단 pw의 값에 %0A 입력 ==> ?pw=%0A. 다음 줄로 넘어가게 되고, 그럼 이제 #, 주석으로 인해 쓰지 못했던 부분 입력.?pw='%0a and 0=1 || id='admin'%23 입력. Cf) 주석을 ..
Filter Bypass. #Ord(), Chr().Ord(string string) => 문자의 ASCII 코드 값을 추출해내는 함수.Chr(int ASCII) => ASCII 코드 값에 해당되면 문자를 반환하는 함수.즉 ASCII Code 값을 얻어오거나, 해당 ASCII Code 값을 문자로 변환시켜주는 함수.Ex) echo '문자 a를 아스키 코드를 변환 => ord('a')echo '아스키 코드를 97을 문자로 변환 => chr('97') #Tab => %09.no=1%09or%09id='admin'#Line Feed (\n) => %0a.no=1%0aor%0aid='admin'#Carrage Return(\r) => %0d.no=1%0dor%0did='admin'#Comment => /**/...
Unicode. 알아야 될 것만 적도록 한다.일단 유니 코드란 간단히 말해 숫자와 글자, 즉 키와 값이 1:1로 매핑된 형태의 코드.즉 아스키 코드로 0x41 = A로 매핑된 것처럼, 아스키 코드로 표현할 수 없는 문자들을 유니 코드라는 이름 아래 전 세계의 모든 문자를 특정 숫자(키)와 1:1로 매핑한 것.유니 코드는 현재 웬만큼은 다 담겨있다.유니 코드는 모든 문자에 index를 준 것이고, index를 code point라고 한다.Ex)'A' => 0x0041 'a' => 0x0061 '가' => 0xac00 #Unicode Block.유니 코드는 너무 많기에 아스키 코드표처럼 한 눈에 들어오는 테이블은 만들기 어렵다.블록으로만 나누어놓은 테이블도 상당하다.U+라는 것이 붙어 있으면 유니 코드란 의..