본문 바로가기

1. Web hacking (웹 해킹)

(62)
[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 논리 연산을 이용한 공격 방법이다. 대표..
[2020.05.19] Dreamhack 개념정리 - 4강 Client-side Advanced https://dreamhack.io/ 해커들의 놀이터, DreamHack 해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은 개발자, 보안 지식과 실력을 업그레이드 시키고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력 향 dreamhack.io 1. Client-side Advanced Client-side에서 발생하는 취약점들을 잘못 방어한 사례에 대해 알아보고 이를 공격하는 방법들을 다룬다. 이 외에도 XSS와 연계하여 HTML(DOM)과 자바스크립트 간에 객체 이름이 겹치는 것을 이용해 공격하는 DOM Clobbering에 대해 알아보고, 더불어 RPO(Relative Path Overwrite) 공격기법과 이를 방어하는 법에 대해서도 알아본다. ​ 2. X..