목록분류 전체보기 (37)
kaka09
[사진]2-1 Keygen 이라는 이름의 프로그램을 봐서 이름에 따라 특정한 시리얼 값이 생성되는 프로그램으로 보인다. ReadMe.txt를 읽어보면 시리얼 값이 5B134977135E7D13 일경우 대응되는 Name 을 찾으라는 문제인것 같다. 일단 시리얼 값이 어떻게 생성되는지 디버깅을 통하여 알고리즘을 분석해보자 [사진]2-2 일단 이름에 "1111"을 입력한후 키를 생성하는 코드를 찾아보았다. 키를 생성하는 코드는 사진에서 보이다 싶이 004010C6에 존재한다. REP 반복 명령을 통해 입력한 Name의 한 글자씩 특정한 아스키 코드 값으로 치환한다. 즉, "1111"->"21110121" 이라는 시리얼값이 도출된다.좀더 상세한 분석을 위해 여러가지 값을 넣어보고 일정한 규칙을 발견하였다. [사..
[사진]1-1 정확한 키(시리얼)을 찾아야 하는 문제임을 알 수있다. Ollydbg를 이용하여 해당 파일을 디스어셈블 후 문자열을 찾아보자 [사진]1-2 문자열을 살펴본 결과 Congratulation 과 Incorrect Password가 존재하는것을 알 수 있는데 이는 분기문을 통해 출력될 메세지를 지정하는 구조라고 할 수있다. 일단 Congaratulation이라는 문자열이 PUSH되는 지점으로 가서 코드를 살펴보자 [사진]1-3 사진을 보면 조건문을 통해 00401135로 분기를 할지 말지를 정하는것을 알 수 있다. 정확한 키값을 역추적하기 위해 코드를 살펴본 결과 다음 4개의 조건문과 반복문, 서브루틴에서 키값을 검증하는것을 알아내었다. 1. 004010B0 |. 807C24 05 61 CMP ..
http://blog.infobytesec.com/2012/09/bypassing-wafs-with-non-alphanumeric-xss.html document['cookie'] document['\x63\x6f\x6f\x6b\x69\x65'] 등등
걍 생각나는거 10가지.. 1-0 boolean 기법1-1 일반 문자열(쿼터)1-2 char()기법1-3 hex값 기법1-4 binary 기법1-5 cast 기법1-6 if 기법1-7 case when 기법1-8 coleasce기법1-9 비트연산 기법1-10 @a 변수 기법 ----boolean 기법-----select id from login where id=''
SELECT version FROM v$instance;select banner from v$version where rownum=1#버전명 출력 SELECT USER FROM DUAL;#현재 DB를 사용하는 사용자명 출력 SELECT SYS.DATABASE_NAME FROM DUAL;orSELECT INSTANCE_NAME FROM v$instance;#현재 사용중인 DB의 SID명 출력 SELECT * FROM USER_SYS_PRIVS;SELECT * FROM session_privsSELECT * FROM dba_role_privsSELECT * FROM dba_sys_privsSELECT * FROM user_tab_privs#사용자에게 주어진 권한 확인 SELECT * FROM ALL_TABL..
사용법 ..... implements InitializingBean, DisposableBean{...} InitializingBean= 빈 초기화 과정에 호출( ctx.refresh() 과정에서 호출됨) @Overridepublic void afterPropertiesSet() thorws Exception {} DisposableBean= 빈 소멸과정에 호출( ctx.close() 과정에서 호출됨) @overridepublic void destroy() throws Exception{} 다른 사용법 @PostConstruct # 빈 초기화 과정에 호출 ( ctx.refresh() 과정에서 호출됨)public void initMethod(){} @PreDestroy # 빈 소멸과정에 호출 ( ctx.c..
(level17.py)download1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #!/usr/bin/python import os import pickle import time import socket import signal signal.signal(signal.SIGCHLD, signal.SIG_IGN) def server(skt): line = skt.recv(1024) obj = pickle.loads(line) for i in obj: clnt.send("why did you send me " + i + "?\n") skt = socket.socket(socket.AF_INET, socket.SOCK_..
(level17.py)download1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #!/usr/bin/python import os import pickle import time import socket import signal signal.signal(signal.SIGCHLD, signal.SIG_IGN) def server(skt): line = skt.recv(1024) obj = pickle.loads(line) for i in obj: clnt.send("why did you send me " + i + "?\n") skt = socket.socket(socket.AF_INET, socket.SOCK_..
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(..