본문 바로가기

1. Web hacking (웹 해킹)

(62)
[2021.03.13] Introduction of Web Hacking && Client-side Basic 2021.03.13 I.Sly() 드림팀-dreamhack의 Web Hacking 강의를 통한 개념 스터디 웹이란 무엇인가? 해킹: 본래의 의도와는 다른 행위를 발생시키는 것 web: world wide web, www, w3 인터넷 상의 서비스 중 HTTP를 이용하여 정보를 공유하는 통신 서비스 ➡ 웹 서비스를 제공하는 대상 ➡ 웹 서버 서비스를 받는 사용자 ➡ 웹 클라이언트 웹 기초 지식 ⭐ KEYWORD Web Browser(웹 브라우저): 웹에 접속하기 위해 사용하는 소프트웨어 Web Resource: 웹 상에 존재하는 모든 콘텐츠 ex) HTML, CSS, JS, PDF, PNG 등 URI(URL): Uniform Resource Identifier의 약자. 리소스를 식별하기 위한 식별자 HTT..
[2020.11.28] XSS 게임실습 5 XSS Game - 5 [문제] [Hints] [답] https://xss-game.appspot.com/level5/frame/signup?next=javascript:alert('1') [풀이] 힌트 1: 이 5레벨의 제목(breaking protocol) 힌트 2: signup 프레임의 소스를 보아 URL인수들이 어떻게 사용되는지를 보는 것이 유용할 것이다. 힌트 3: (onclick 속성을 사용하지 않고) Javascript를 실행시키는 링크를 클릭하는 것을 만들고 싶을 때, 어떻게 할 것인가? >> 여기서 a태그를 사용해야겠다는 결론을 도출했다. 풀이를 참고하여 문제를 풀었습니다. url을 보면 next변수에 confirm 값이 들어가는 것을 확인할 수 있다. 이곳에 hello 값을 넣어보고 입..
[2020.11.28] Dream Hack - Server-Side Advanced - Command Injection 01 Shell Sehll : 운영 체제(OS)에서 커널과 사용자의 입/출력을 담당하는 시스템 프로그램. -> 사용자가 입력하는 데이터를 해석한 후 커널에 요청하고, 요청에 대한 결과를 사용자에게 반환 * 커널: 소프트웨어와 하드웨어 간의 커뮤니케이션을 관리하는 프로그램 PATH(환경변수): OS입장에서 해당 프로세스를 실행시키기 위해 참조하는 변수 -> PATH변수 외에도 현재 쉘에 대한 정보, 현재 경로, 이전 경로 등 다양한 정보 포함. 메타 문자 1) . pwd: 현재 위치한 경로를 볼 수 있음 . : 현재 디렉토리 / ..: 부모(상위) 디렉토리 => pwd 명령어로 현재 디렉토리와 부모 디렉토리 경로 확인 ..: {1..10} 1에서 10까지 연속적인 표현 2) > cat : 파일 내용을 보여..
[2020.11.21] XSS 게임실습 5 XSS Game - 5 [문제] [Hints] [풀이] 힌트 1: 이 5레벨의 제목(breaking protocol) 힌트 2: signup 프레임의 소스를 보아 URL인수들이 어떻게 사용되는지를 보는 것이 유용할 것이다. 힌트 3: (onclick 속성을 사용하지 않고) Javascript를 실행시키는 링크를 클릭하는 것을 만들고 싶을 때, 어떻게 할 것인가? >> 여기서 a태그를 사용해야겠다는 결론을 도출했다. 나머지는 다음 시간에...
[2020.11.21] Dream Hack - Server-Side Advanced-NoSQL 01 NoSQL 개요 Memcached, HBase, Cassandra, Hypertable Memcached : 분산 메모리 캐싱 시스템 데이터 베이스의 부하를 줄여 동적 웹 어플리케이션이 속도개선을 위해 사용되기도 한다. Key-value 쌍으로 이뤄진 간단한 데이터 타입을 저장하며, NoSQL 데이터베이스와 유사하지만 NoSQL처럼 영구적이진 않다. 모든 key-value 쌍을 메모리에 저장하므로 서버장애나 오류가 발생했을 때 저장된 데이터가 모두 손실된다. Memcached의 용도는 데이터 요청을 가로채어 가능한 경우 이를 캐시(시스템 메모리)에서 직접 서비스하게 만들고, 백엔드 데이터베이스에 연결된 디스크 스토리지 access를 줄이는 것이 목적이다. 미리 계산된 값을 캐시에서 저장하고 조회하게..
[2020.11.14] XSS 게임실습 4 [문제] [답] 3(아무 숫자)'); alert(' [풀이] 힌트를 참고하여, startTimer라는 함수와, ‘ 에 집중해보았다. 입력창에 ‘ 을 입력하면 무한히 로딩이 된다. 오류 콘솔창에서 확인한 결과 빈칸에 입력하면 onload=startTimer(‘ (빈칸) ’);가 디폴트값인 것을 알 수 있다. 따라서 ___(빈칸) 안에 숫자를 넣고 alert문을 추가하여 닫지않은 상태로 입력해보았다. ex) 3’) + alert(‘ 닫지않는다 *URL 창에 3');alert(' 나 3')+alert('로 입력하게 되면 결과가 나오지 않는다. 세미콜론 대신, 세미콜론을 URL 인코딩한 %3B로 바꾸어 입력해주어야 결과가 제대로 나온다. *URL에서 ‘+’는 공백문자로 해석된다. [결과]
[2020.11.14] Dream Hack - Server-Side Advanced-SQL Injection 01 개요 데이터베이스의 종류 1) 관계형 데이터베이스 (RDB) -가장 많이 사용되는 데이터베이스 -행(Column)과 열(Row)로 표현되는 테이블 간의 관계를 나타낼 때 사용되며, 이렇게 표현된 데이터베이스는 SQL을 통하여 관리 및 접근함. -장점: 다양한 용도로 사용 가능, 데이터의 일관성 보증, 정규화에 따른 갱신 비용 최소화 등 -단점: 컬럼 확장의 어려움, 대량의 데이터 입력 처리 등 2) NoSQL (Not Only SQL) - NoSQL은 RDB의 특성 뿐만 아니라 다른 특성까지도 지원해 주는 데이터베이스라는 의미를 지닌다. - 장점 : 대용량 데이터, 데이터 분산 처리에 용이, 유연한 데이터 모델링 가능, Cloud Computing에 적합 [NoSQL 종류] Document 방식 -..
[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 예약어를 기존에 사용하던 의미 그대로 사용하기 위해 별도로 만든..