해킹 동아리 I.Sly()/기본 트랙 활동_web hacking 12

Dream Hack 개념 정리 - Server-Side Advanced - Command Injection

본 내용은 아이슬리 웹해킹 2기 스터디원들과 함께 작성하였습니다. [2020.11.28] 01 Shell Sehll : 운영 체제(OS)에서 커널과 사용자의 입/출력을 담당하는 시스템 프로그램. -> 사용자가 입력하는 데이터를 해석한 후 커널에 요청하고, 요청에 대한 결과를 사용자에게 반환 * 커널: 소프트웨어와 하드웨어 간의 커뮤니케이션을 관리하는 프로그램 PATH(환경변수): OS입장에서 해당 프로세스를 실행시키기 위해 참조하는 변수 -> PATH변수 외에도 현재 쉘에 대한 정보, 현재 경로, 이전 경로 등 다양한 정보 포함. 메타 문자 1) . pwd: 현재 위치한 경로를 볼 수 있음 . : 현재 디렉토리 / ..: 부모(상위) 디렉토리 => pwd 명령어로 현재 디렉토리와 부모 디렉토리 경로 확인..

Dream Hack 개념 정리 - Server-Side Advanced-NoSQL

본 내용은 아이슬리 웹해킹 2기 스터디원들과 함께 작성하였습니다. [2020.11.21] 01 NoSQL 개요 Memcached, HBase, Cassandra, Hypertable Memcached : 분산 메모리 캐싱 시스템 데이터 베이스의 부하를 줄여 동적 웹 어플리케이션이 속도개선을 위해 사용되기도 한다. Key-value 쌍으로 이뤄진 간단한 데이터 타입을 저장하며, NoSQL 데이터베이스와 유사하지만 NoSQL처럼 영구적이진 않다. 모든 key-value 쌍을 메모리에 저장하므로 서버장애나 오류가 발생했을 때 저장된 데이터가 모두 손실된다. Memcached의 용도는 데이터 요청을 가로채어 가능한 경우 이를 캐시(시스템 메모리)에서 직접 서비스하게 만들고, 백엔드 데이터베이스에 연결된 디스크 ..

Dream Hack 개념 정리- Server-Side Advanced-SQL Injection

본 내용은 아이슬리 웹해킹 2기 스터디원들과 함께 작성하였습니다. [2020.11.14] 01 개요 데이터베이스의 종류 1) 관계형 데이터베이스 (RDB) -가장 많이 사용되는 데이터베이스 -행(Column)과 열(Row)로 표현되는 테이블 간의 관계를 나타낼 때 사용되며, 이렇게 표현된 데이터베이스는 SQL을 통하여 관리 및 접근함. -장점: 다양한 용도로 사용 가능, 데이터의 일관성 보증, 정규화에 따른 갱신 비용 최소화 등 -단점: 컬럼 확장의 어려움, 대량의 데이터 입력 처리 등 2) NoSQL (Not Only SQL) - NoSQL은 RDB의 특성 뿐만 아니라 다른 특성까지도 지원해 주는 데이터베이스라는 의미를 지닌다. - 장점 : 대용량 데이터, 데이터 분산 처리에 용이, 유연한 데이터 모델..

Dream Hack 개념 정리- Client-side-Advanced

본 내용은 아이슬리 웹해킹 2기 스터디원들과 함께 작성하였습니다. [2020.11.07] 2. XSS 활성 하이퍼링크 브라우저들은 URL을 통해 정규화(normalization)를 거치고 이 과정에서 \x01, \x04와 같은 특수 제어 문자들이 제거될 수 있다. HTML 요소 속성에서 엔티티를 사용할 수 있다는 점을 이용하면 다양한 우회 기법을 사용할 수 있게 된다. JavaScript에서는 URL 객체를 통해 직접 정규화할 수 있고, protocol, hostname 등 URL의 각종 정보를 추출할 수 있다. 엔티티(Entitiy) HTML 미리 예약된 문자(reserved characters)가 있다. 이러한 HTML 예약어를 HTML 코드에서 사용하면, 웹 브라우저는 그것을 평소와는 다른 의미로 ..

DreamHack 개념 정리 - Sever-side Basic

본 내용은 아이슬리 웹해킹 2기 스터디원들과 함께 작성하였습니다. [2020.09.26] Server-side Basic (서버 사이드 취약점) 개념: 서버에서 사용자가 요청한 데이터에 의해 발생하는 취약점 목적: 서버를 이용한 서비스 공격 ex) 서버 내에 존재하는 사용자들의 정보 탈취, 서버의 권한 장악 등등 Injection 사용자의 입력 데이터가 어플리케이션의 처리 과정에서 구조나 문법적인 데이터로 해석되어 발생하는 취약점을 의미 -> 변조된 입력을 주입해 의도한 행위를 변질시켜 의도하지 않은 행위를 발생시킴 1. SQL Injection : SQL 요청을 사용할 때 공격자의 입력 값이 정상적인 요청에 영향을 주는 취약점 -> 웹 애플리케이션 사용자 입력 값에 필터링이 제대로 적용돼 있지 않을 때..

DreamHack 개념 정리 - Client-side Basic

본 내용은 아이슬리 웹해킹 2기 스터디원들과 함께 작성하였습니다. [2020.09.19] 1.Client-side Basic - HTTP 웹 서버가 사용자를 식별하기 위해 보편적으로 쿠키와 세션을 사용 (Connectionless와 Stateless 한 특성) [ 목적 ] : 사용자로부터 쿠키나 쿠키에 저장된 세션 아이디를 탈취해 사용자 권한을 얻음 /사용자의 브라우저에서 자바스크립트를 실행하거나 특별한 행위를 수행하도록 함 => 사용자가 보낸 것처럼 요청을 전송 > SOP(Same Origin Policy) :서로 다른 오리진의 문서 또는 스크립트 들의 상호 작용을 제한 - Origin의 구성 : 프로토콜(protocol, scheme), 포트(port), 호스트(host) > Cross Origin ..

[xss game] Level 5

[문제] [답] 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 값을 넣어보고 입력되는 값에 따라 태그의 링크가 변화하..

[xss game] Level 4

[문제] [답] 3(아무 숫자)'); alert(' [풀이] 힌트를 참고하여, startTimer라는 함수와, ‘ 에 집중해보았다. 입력창에 ‘ 을 입력하면 무한히 로딩이 된다. 오류 콘솔창에서 확인한 결과 빈칸에 입력하면 onload=startTimer(‘ (빈칸) ’);가 디폴트값인 것을 알 수 있다. 따라서 ___(빈칸) 안에 숫자를 넣고 alert문을 추가하여 닫지않은 상태로 입력해보았다. ex) 3’) + alert(‘ 닫지않는다 *URL 창에 3');alert(' 나 3')+alert('로 입력하게 되면 결과가 나오지 않는다. 세미콜론 대신, 세미콜론을 URL 인코딩한 %3B로 바꾸어 입력해주어야 결과가 제대로 나온다. *URL에서 ‘+’는 공백문자로 해석된다. [결과]

[xss game] Level 3

[문제] [답] (image 1, 2, 3에 해당하지 않는 숫자)’ onerror=alert();’ [풀이] 소스 확인 시, 해당경로(/static/level3/cloud) + num.jpg’를 사용하고 있었다. > 이미지가 존재하지 않을 때의 onerror속성을 이용 > ‘ 를 이용해 “ “ 을 탈출한다. >1, 2, 3을 제외한 숫자를 입력 후 onerror속성을 삽입하면 이미지가 존재하지 않기 때문에 alert()가 실행된다. [결과]