일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- promise처리
- 비동기배열
- 운정 소바동
- graphql
- graphql 400
- 비동기배열처리방법
- 신촌 소문난집
- 화이트 해커를 위한 웹 해킹의 기술
- apolloclient
- 지보싶 신촌점
- 잠실새내
- graphql with reactnative
- 홍대 카페 장쌤
- 예쁜술집 예술
- typescript
- 도그존
- graphql react native
- 홍대 토라비
- promise메서드
- useMutation error
- 화이트해커를 위한 웹 해킹의 기술
- 홍대 예술
- graphql with RN
- 토라비
- 고르드
- graphql mutation error
- 앙버터마카롱
- 잠실새내 도그존
- 금별맥주
- apollo react native
- Today
- Total
목록웹/웹 해킹 (16)
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
XML (extensible markup language) :기존에 없던 새로운 마크업 언어를 개발하기 위한 수단으로 사용되는 언어 마크업 언어: 문서에 마크업을 붙여서 추가적인 정보를 표시하는 언어 XML은 데이터 전달에 유리한 마크업 언어 XML을 작성할 때는 반드시 DTD가 명시되어 있어야 함 DTD :데이터 작성 방법을 정의한 문서 형식 정의 태그를 통해 선언할 수 있으며 외부에서 파일을 읽어올 수도 있다. DTD의 엔티티(entity) 특정 문자열을 손쉽게 사용할 수 있는 사용구 같은 역할을 함 데이터 항목을 참조하기 위한 XML의 방법 보통 텍스트 (이진 데이터로도 구성 가능) 엔티티의 이름과 확장할 문자열을 미리 정의해 놓으면 XML문서나 DTD에서 사용되는 엔티티 이름은 모두 미리 정의한 ..
접근 통제 취약점 :인증된 사용자가 수행할 수 있는 작업에 대한 제한이 제대로 적용되어 있지 않을 때 접근 통제 취약점이 존재한다. 다른 사용자의 계정에 접근하거나, 중요한 파일을 보거나, 다른 사용자의 데이터를 수정하거나, 접근 권한을 변경하는 등 권한 없는 기능과 데이터에 접근할 수 있다. URL이나 파라미터를 조작하여 다른 사용자의 리소스에 접근하거나 허용되지 않은 기능을 실행할 수 있는 경우 적절한 인증 및 인가 과정을 거치지 않고 관리자 페이지에 접근할 수 있는 경우 디렉터리 트래버설 취약점과 같이 웹 디렉터리 경로를 벗어난 호스트 내부 경로의 리소스에 접근할 수 있는 경우 안전하지 않은 직접 객체 참조 (IDOR 공격) :공격자가 요청 메시지의 URL이나 파라미터를 변경하여 정상적으로는 허용되..
민감한 데이터 개인정보(주민등록번호, 카드 정보, 사생활 관련 정보 등) 로그인에 사용되는 정보 (패스워드, 세션 ID, 세션 토큰 등) 비공개로 관리되는 정보 (업무상 기밀 등) 민감한 데이터 노출 :데이터가 적절하게 암호화되어 있지 않거나 평문으로 저장되어 노출되는 경우 HTTP 프로토콜을 사용하여 민감한 데이터가 전송되는 경우 민감한 데이터가 평문으로 저장되는 경우 안전하지 않은 암호화 방식을 사용하는 경우 HTTP 프로토콜에 의한 노출 :HTTP 프로토콜로 전달되는 요청과 응답 메시지들이 네트워크 스니핑에 의해 도청됨 네트워크 스니핑 :네트워크에 전송되는 데이터들을 모니터링하는 기술, 일종의 도청 ex) tcpdump, 와이어샤크 -HTTPS 프로토콜을 이용하여 데이터가 암호화되어 전송되도록 구현..
파일 업로드 공격 :파일 업로드 기능에 적절한 보안 대책이 적용되어 있지 않을 때 파일 업로드 취약점이 발생한다. 만약, 이러한 파일 업로드 기능을 구현할 때 아무 파일이나 업로드 할 수 있게 허용된다면, 공격자는 '웹 쉘'이라고 불리는 악성 파일을 업로드할 수 있게 된다. 파일 업로드 기능의 예 게시판에 파일 첨부 사용자 프로필에 사진 업로드 소셜 네트워크 사이트에서 사진이나 파일 업로드 웹 쉘 (Web shell) ? 웹을 통해 시스템 명령어를 실행할 수 있는 웹 페이지의 일종 터미널을 열고 쉘에서 명령어를 실행할 수 있는 것과 같이 웹 페이지를 통해 시스템 명령어를 내릴 수 있기 때문에 웹 쉘이라고 이름이 지어졌다. 간단한 웹 쉘 코드 (webshell.php) 파일 업로드 공격 대응 꼭 필요한 파..
파일 인클루전 (File inclusion) :include 함수를 이용해 include 할 파일을 웹 요청을 통해 지정할 수 있는 경우, 값을 조작하여 원하는 파일을 처리한다. -php 어플리케이션에서 주로 발생하는 공격 include 함수 :다른 파일을 소스코드에 직접 포함시킬 수 있다. 지정된 파이르이 모든 텍스트를 가져와 include 함수를 사용하는 파일에 복사한다. 리모트 파일 인클루전 (Remote File inclusion) :공격자가 인클루드할 수 있는 파일이 호스트 외부의 파일일 때 외부에 있는 파일도 원격으로 인클루드할 수 있어서 더욱 심각한 공격 정상적인 상항에서 애플리케이션이 file.php를 인클루드한다. file.php가 웹 요청의 page 파라미터를 통해 지정된다. 이때 공격..
실습환경: DVWA-XSS(Stored), kali 리눅스 Stored XSS 실습에는 방명록이 있다. 이름과 메시지를 남길 수 있는 입력란이 있다. Reflected XSS와 마찬가지로 팝업창에 쿠키를 띄우도록 해보자 메시지를 남길 수 있는 칸에 다음과 같은 자바스크립트를 입력해보자 reflected XSS 처럼 팝업창에 쿠키가 나타난다. 하지만 stored XSS에서는 다른 페이지에 갔다가 돌아와도 팝업은 계속해서 띄워진다. 세션 쿠키를 공격자 호스트로 전달하기 Reflected XSS 실습처럼 칼리 리눅스 apache2 서버를 열어 access.log를 모니터링 하는 방식을 사용한다. (tail 명령어 사용) apache2 서버 여는 법은 reflected XSS 에 자세히 나옴 - 2020/10/..
실습 환경: DVWA-XSS(Reflected), kali 리눅스 Reflected XSS 공격 실습 입력창에 yehey를 쳐서 보냈더니 Hello yehey라고 출력되고 있다. 사용자가 입력한 값이 그대로 다시 출력되었음 = reflected XSS 취약점이 존재할 가능성 ↑ 추가적으로 다음과 같은 간단한 스크립트를 입력해 실행되는지 확인해보자 다음과 같이 1이라는 팝업창이 뜬 것을 확인할 수 있다. 이 페이지는 Reflected XSS 취약점이 존재한다! 이제 쿠키 값을 가져와보자 다음과 같이 PHPSESSED라는 세션 ID 쿠키를 알아낼 수 있다. 세션 쿠키를 공격자의 호스트로 전달하기 칼리 리눅스를 공격자의 호스트라고 가정 세션 쿠키를 공격자의 호스트의 웹 서버를 통해 전달받을 것이기 때문에 칼리..
실습 환경: DVWA-Command injection, kali 리눅스 Command injection 공격 실습 다음과 같은 페이지에서 실습을 한다! 입력창에 IP 주소를 입력하면 해당 IP 주소로 ping 명령어를 실행한 후 그 결과를 출력해주는 페이지다. 한번 127.0.0.1을 입력하고 결과를 확인해보자 (127.0.0.1은 local IP 주소) 다음과 같이 ping 명령어를 실행한 결과가 출력된다. view source를 눌러 해당 페이지의 소스코드를 보자
실습환경 DVWA-SQL injection (Blind), kali 리눅스 Blind SQL injection 실습 이번에는 SQL syntax error가 출력되는 것이 아니라 사용자가 존재하는지 여부만 알려주고 있다. '를 입력해도 별 다른 에러가 발생하지 않아서 이 폼이 SQL 쿼리문을 사용하는지 사용하지 않는지도 알 수 없다. 그래서 우선 SQL 쿼리문을 사용하는지 사용하지 않는지를 먼저 알아보자 항상 참인 쿼리문 입력하기 1' AND 1=1# 이렇게 입력하면 User ID가 1인 사용자뿐만 아니라 1=1이라는 항상 참이 되는 조건이 추가되었기 때문에 id='1'인 사용자도 존재하고 1=1도 참이기 때문에 만약 폼이 SQL 쿼리문을 사용한다면 사용자가 존재한다는 결과가 나올 것이고 SQL 쿼리문을..
실습 환경: DVWA-SQL injection, kali 리눅스 UNION 구문을 이용한 공격 실습 UNION을 이용하려면 원래 쿼리문이 조회하는 SELECT 문의 칼럼 개수와 UNION 뒤의 SELECT 문에서 요청하는 칼럼의 개수가 같아야한다. (같지 않으면 syntax error 발생) 따라서 원래 쿼리문이 몇 개의 칼럼을 조회하고 반환하는지 알아야한다. 그래서 사용하는 것이 ORDER BY! ORDER BY? 지정된 칼럼을 기준으로 결과를 정렬할 때 사용하는 키워드 ex. ORDER BY 2 = 두번째 칼럼을 기준으로 정렬 ORDER BY 숫자를 증가시키다가 에러가 발생하면 그 전의 값이 칼럼의 개수가 된다. 입력창에 1' ORDER BY n #에서 n을 1씩 증가시켜가며 칼럼 개수를 파악해보자 ..