본문 바로가기

1. Web hacking (웹 해킹)

(63)
[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.9.26] DreamHack개념 정리 - Sever-side Basic Server-side Basic (서버 사이드 취약점) 개념: 서버에서 사용자가 요청한 데이터에 의해 발생하는 취약점 목적: 서버를 이용한 서비스 공격 ex) 서버 내에 존재하는 사용자들의 정보 탈취, 서버의 권한 장악 등등 Injection 사용자의 입력 데이터가 어플리케이션의 처리 과정에서 구조나 문법적인 데이터로 해석되어 발생하는 취약점을 의미 -> 변조된 입력을 주입해 의도한 행위를 변질시켜 의도하지 않은 행위를 발생시킴 1. SQL Injection : SQL 요청을 사용할 때 공격자의 입력 값이 정상적인 요청에 영향을 주는 취약점 -> 웹 애플리케이션 사용자 입력 값에 필터링이 제대로 적용돼 있지 않을 때 발생 -> 웹사이트 취약점을 찾아, DB를 관리하는 SQL 명령어에 악성코드를 삽입해 해..
[2020.9.26] XSS게임실습 2 ===============================XSS게임실습 2=============================== Persistence is key [문제] Inject a script to pop up an alert() in the context of the application. [답] [풀이] -본 문제에서는 태그를 입력해도 작동되지 않았다. -따라서 태그와 onerror 속성을 이용하여 alert() 가 실행되도록 하였다. *onerror 속성이란? img태그의 소스(src)를 끌어오지 못했을 때 발생하는 속성. none으로 지정하면 아무런 작동을 하지 않는다. [결과]
[2020.9.19] XSS 게임실습 1 ========================== XSS Game 1 ========================== 문제: Inject a script to pop up a JavaScript alert() in the frame below. 자바스크립트는 사용자의 입장에서 발생하는 행위를 동작시킬 수 있기 때문에 XSS 공격 시 많이 사용 자바스크립트를 실행하는 대표적인 방법에는 script 태그를 이용하는 방식이 있으며, XSS Game 1에서도 이러한 방식을 활용하였음 => Search 창에 코드를 입력 XSS Game 1 해결!
[2020.9.19] DreamHack 개념 정리 - Client-side Basic 1.Client-side Basic - HTTP 웹 서버가 사용자를 식별하기 위해 보편적으로 쿠키와 세션을 사용 (Connectionless와 Stateless 한 특성) [ 목적 ] : 사용자로부터 쿠키나 쿠키에 저장된 세션 아이디를 탈취해 사용자 권한을 얻음 /사용자의 브라우저에서 자바스크립트를 실행하거나 특별한 행위를 수행하도록 함 => 사용자가 보낸 것처럼 요청을 전송 > SOP(Same Origin Policy) :서로 다른 오리진의 문서 또는 스크립트 들의 상호 작용을 제한 - Origin의 구성 : 프로토콜(protocol, scheme), 포트(port), 호스트(host) > Cross Origin Resource Sharing(CORS) :SOP가 적용된 상태에서도 리소스 공유 가능 x..
[2020.05.19] XSS Game Level6 문제 설명을 보면, 복잡한 웹 응용 프로그램이 URL 매개 변수 값 또는 location.hash의 일부를 기반으로 JavaScript 라이브러리를 동적으로 로드하는 기능을 소개하고 있다. 스크립트를 로드 할 때 사용자 입력이 URL에 영향을 주거나 XMLHttpRequest와 같은 잠재적으로 위험한 유형의 데이터 (예 : XMLHttpRequest)를 허용하면 심각한 취약점이 발생할 수 있다는 점을 알려주고 있다. 특이한 점은, 응용 프로그램이 외부 파일을 요청하여 alert ()을 실행시킬 것을 요청하고 있다는 것이다. 페이지 화면을 살펴보면, # 뒤에 있는 경로가 화면으로 출력되는 것을 알 수 있다. 힌트를 참조해 보면, 실행화면과 문제설명에서 확인했듯이, #뒤의 경로가 로드된 스크립트의 URL에 ..
[2020.05.19] Dreamhack 개념정리 - 5강 Server-side Advanced - SQLInjection https://dreamhack.io/ 해커들의 놀이터, DreamHack 해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은 개발자, 보안 지식과 실력을 업그레이드 시키고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력 향 dreamhack.io 1. SQL Injection Advanced 이번 강의에서는 MySQL과 SQLite를 중점적으로 다루며, 그 외에도 SQL Server(MSSQL), Oracle, PostgreSQL에 대해서도 다룬다. SQL Injection 공격기법, SQL DML 구문에 대한 이해, Exploit Technique 에 대해서 알아보자. ​ 2. SQL Injection 공격 기법 Logic 논리 연산을 이용한 공격 방법이다. 대표..