본문 바로가기

분류 전체보기

(550)
[2020.11.07] File Format Fuzzing & Memory Fuzzing 11월 1주 Web Fuzzer 팀은 취약점 분석을 위한 퍼징 문서(KUCIS) 中 4. File Format Fuzzing과 5. Memory Fuzzing을 학습하고, Fuzzing 관련 논문 Fuzzing: a survey를 읽고 발제하였다. 취약점 분석을 위한 퍼징 4. File Format Fuzzing 1. File Format Fuzzing이란? - 취약점을 유발할 수 있는 쓰레기 코드가 존재할 수 있는지를 검사하는 작업. - 애플리케이션은 파일을 읽고 파싱하고 메모리에 읽어들여서 처리한다. 각 파일들은 자체의 포맷을 가지고 있고 애플리케이션은 그 포맷에 맞추어서 파싱을 한다. 따라서 애플리케이션은 취약점을 가질 수 있다. 포맷만 봐서는 정상적인 파일이지만, 그 내부에 에러를 발생시킬만한 쓰..
[2020.11.07] Dream Hack - Client-side-Advanced 2. XSS 활성 하이퍼링크 브라우저들은 URL을 통해 정규화(normalization)를 거치고 이 과정에서 \x01, \x04와 같은 특수 제어 문자들이 제거될 수 있다. HTML 요소 속성에서 엔티티를 사용할 수 있다는 점을 이용하면 다양한 우회 기법을 사용할 수 있게 된다. JavaScript에서는 URL 객체를 통해 직접 정규화할 수 있고, protocol, hostname 등 URL의 각종 정보를 추출할 수 있다. 엔티티(Entitiy) HTML 미리 예약된 문자(reserved characters)가 있다. 이러한 HTML 예약어를 HTML 코드에서 사용하면, 웹 브라우저는 그것을 평소와는 다른 의미로 해석한다. 따라서 HTML 예약어를 기존에 사용하던 의미 그대로 사용하기 위해 별도로 만든..
[2020.11.07] XSS 게임실습 3 [문제] [답] (image 1, 2, 3에 해당하지 않는 숫자)’ onerror=alert();’ [풀이] 소스 확인 시, 해당경로(/static/level3/cloud) + num.jpg’를 사용하고 있었다. > 이미지가 존재하지 않을 때의 onerror속성을 이용 > ‘ 를 이용해 “ “ 을 탈출한다. >1, 2, 3을 제외한 숫자를 입력 후 onerror속성을 삽입하면 이미지가 존재하지 않기 때문에 alert()가 실행된다. [결과]
[2020.11.07]CodeEngn Challenges Basic RCE L13 ~ L16 라이트업 L13. 정답은 무엇인가 프로그램을 실행시키니 다음과 같은 화면이 출력되었다. 내용을 살펴보니 패스워드를 입력하라는 문자열만 출력되었다. 무작위의 문자열을 입력하니 다시 시도하라며 다시 입력을 기다리고 있었다. 프로그램 분석을 위해 Ollydbg에서 해당 프로그램을 실행해보았다. 위와 같은 오류창이 출력되면서 Ollydbg에서 프로그램을 실행할 수 없었다. PEiD로 해당 프로그램이 어떤 구조로 이루어져 있는지 분석해보았다. 분석한 내용을 확인하니 해당 프로그램은 NET을 이용하는 마이크로소프트 Visual C#으로 작성된 코드인 것을 확인할 수 있었다. Visual C#으로 컴파일 된 파일은 기계어로 되어 있기 때문에 인간이 사용하는 고급언어로 변환하는 과정이 필요하다. 이와 같이 기계어를 고급언어로 ..
[2020.11.07] 4너블4ever - 달고나 문서 44p~57p Null의 제거 문제점 발견 : char 형 배열 (문자열) 에서는 0의 값을 만나면 그것을 문자열의 끝으로 인식 0x00 뒤에 어떤 값이 있더라도 그 이후는 무시 따라서 \x00인 기계어 코드가 생기지 않도록 만들어야 한다. ( 대표적으로 mov, $0xb, %eax) 다음과 같이 NULL을 제거한 쉘을 실행시키는 어셈블리 코드를 작성하였다. 이제 이것을 문자열화 시키는 것만이 남았는데, char 형 배열에 16진수 형태의 바이너리 데이터를 전달할 것이다. 그러기 위해서는 \x90형식으로 바꿔주어야 한다. 기계어 코드를 추출하고, 이를 문자열 배열에 넣기위해 다시가공하면 다른 방법 쉘 코드를 저장할 변수를 int형으로 만들어주면 된다. *유의할점 little endian순서로 정렬, int형이므로 4b..
[2020.10.10]CodeEngn Challenges Basic RCE L09 ~ L12 라이트업 L09. StolenByte를 구하시오 Ex) 75156A0068352040 Upx로 패킹된 것을 확인한다. 언패킹을 해주었다. 언패킹 해주고 올리 디버거로 열었는데 MessageBox를 보면 출력할 값이 없는 것을 확인. 이 부분이 stolenbyte일 것이라고 추측. Stolen byte? 패킹된 바이너리를 언패킹 할 때의 과정을 방해하기 위한 방법으로, 프로그램의 일부 바이트를 별도의 영역에서 실행되게 하여 OEP를 다른 위치로 가장하고 덤프를 쉽게 하지 못하도록 구현한 기법이다. 패커가 패킹을 진행할 때 원본 코드 중 일부를 다른 곳으로 이동 시킨 코드로써, 주로 엔트리 포인트 위의 몇 줄의 코드이다 ★ 올바른 프로그램을 얻기 위해서는 패킹 과정에서 떼어진 StolenByte를 함께 복원해야 덤프..
[2020.09.19] 스틸리언 지원서 작성 저희 팀은 이번주까진 스틸리언 프로그램을 지원하기 위하여 계획서를 작성하였습니다. 위 사진은 지원서의 일부이며 개인 정보가 들어가있어 마스킹 처리하였습니다. ※ 해당 글은 결과 발표 이전까지 비공개 처리하겠습니다.
[2020.09.26] Network Protocol Fuzzing Web Fuzzer 팀은 이번주차에 취약점 분석을 위한 퍼징 및 Microsoft 문서를 학습하였다. 취약점 분석을 위한 퍼징 : 3. Network Protocol Fuzzing Automated Penetration Testing with White-Box Fuzzing : Fuzzing Process ~ Product-Testability Design for Fuzzing [요약] 1. Network Protocol Fuzzing? • 서버의 데몬을 대상으로 하여 조작된 패킷을 전송하는 것 • 서버의 데몬 : 소켓을 통하여 클라이언트와 통신하는 어플리케이션 • Client에서 Server로 보낸 메시지: 데몬 - 받아서 파싱 후 연산처리 • 필요에 따라 다시 Client에게 메시지를 보냄 ☞ 사용자..