목록전체 글 (173)
Iriton's log
패스워드로 인증하는 실행파일이 손상되어 실행이 안 되는 문제가 생겼다. 패스워드가 무엇인지 분석하시오. 필요 개념 정리 HxD: 헥스 에디터 프로그램. 평균적으로 16진술 표현된 이진파일을 읽을 수 있게 보여주는 프로그램. 주로 파일 및 프로그램의 내부 데이터 값을 분석, 수정, 복구, 삭제 등을 할 때 사용. 풀이 프로그램을 실행시키면 위와 같은 사진이 뜬다. 올리디버거로도 열리지 않아서 검색해 보니 HxD라는 헥스 에디터 프로그램을 사용해야 된다는 것을 알았다. 헥스 에디터 다운로드 링크 Downloads | mh-nexus Downloads I am looking for new translators, if you want to help, here is a list of unmaintained tra..
HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가 풀이 프로그램을 실행하자, HDD를 CD-Rom으로 인식하게 만들라고 뜬다. 올리디버거로 열어보았다. EAX와 ESI를 비교하여 일치하면, 즉 EAX - ESI 값이 0이면 점프문이 실행된다. GetDriveTypeA 함수가 실행되고 나면 EAX 값이 3으로 바뀌는데 CMP 코드로 인해 점프문이 실행되지 않았다. EAX 값은 3이 아니라는 뜻이다. CMP 코드 전에 ESI 증가 코드가 세 번, EAX 감소 코드가 두 번이 나왔다. EAX가 ESI 값인 3이 되기 위해서 리턴값이 5가 되어야 한다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
/admin/notice_flag에서 userid 값이 admin이 아니면 Access Denied 2를 띄우며 리턴되지만 admin이라면 memo_text에 플래그 값을 추가한다. 이 memo_text는 어디에 쓰일까? 전역 변수 memo_text는 메모 페이지에 들어갈 때 파라미터값을 전달 받아서 html에 작성하고 그 값을 띄운다. 즉, /admin/notice_flag 에 admin으로 접근하면 된다. flag 페이지에서 값을 입력 받고 check_csrf 함수를 호출한다. 해당 함수에서는 csrf 인지 판별하기 위해 /vuln를 거쳐서 온다. /vuln에서는 (사진에선 안보이지만) frame, script, on을 필터링 한다. sscript 와 같이 문자 사이에 문자열을 넣어도 되는데 이번엔 ..
alert(1)을 띄우면 되는 문제이다. 일단 문자열 아무거나 입력해서 어떤 방식으로 작동되는 건지 확인해 보자. 두 글자 이상 입력하면 no hack이라고 뜬다. 두 글자 이상의 문자를 검열하여 아예 아무런 코드도 작성하지 못하게 하려는 거 같다. 숫자나 기호는 무난하게 실행이 된다. 그럼 문자 사이마다 NULL 값을 넣어서 검열 우회를 해보는 건? ?code=a%00l%00e%00r%00t(1); 가능!
코드 상단에서 flag.txt 를 읽어서 FLAG의 값으로 넣는다. users 정보에는 guest의 비밀번호는 guest, admin의 비밀번호는 flag로 매칭되어 있다. 기본 페이지에서 username이 admin이라면, 즉, admin으로 로그인 했다면 FLAG 값을 띄워 준다. guest가 아닌 admin으로 로그인 해야 한다. (+ /login 페이지에서 로그인 성공 시에 입력된 id와 pw를 세션 값으로 넣는 절차를 진행하기 때문이다.) WEB에 보여지지 않은 비밀번호 변경 페이지 발견. 파라미터 값을 세션 아이디의 username에 매칭되는 pw로 넣음. 이때 username의 원래 pw를 체크하는 등의 코드는 존재하지 않음! 또한, flag 페이지 자체에서 세션 아이디 값을 admin으로 ..
제목만 봐도 XSS 문제인 걸 알 수 있다. 필터링이 존재하는데 이를 우회하는 것인가 보다. app.py부터 살펴보자. xss_filter 함수가 존재한다. 여기서는 script, on, javascript: 라는 문자열 세 개 중 하나라도 존재하면 공백으로 처리한다. lower() 함수를 사용해서 입력된 문자열을 소문자로 변경하기 때문에 대문자로 작성하여 우회하는 방법도 먹히지 않는다. 보통은 XSS 필터링 우회할 때 아래와 같은 방법을 사용한다. 1. 대문자로 쓰기 (SCRIPT) 2. onerror 사용 ( 3. javascript: ( alert!) 근데 이 코드에서는 3가지 방법을 모두 막으려는 것이다. 코드를 자세히 보고 생각해 보면 _filter에서 해당하는 문자열이 있으면 그것만 공백으로 ..