p1n9
'분류 전체보기' 카테고리의 글 목록 (2 Page)

분류 전체보기

Programming/HTML

[HTML] 메타 데이터

메타 데이터 HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 메타 태그는 웹사이트의 추가적인 정보를 명시해주는 태그이다. 태그 안에 위치하여있으며 빈 태그(내용이 없음)이다. 속성 속성 설명 charset , 인코딩 방식을 지정 http-equiv , HTTP header의 이름을 값으로 가질 수 있음 name , 메타 데이터의 정보를 정의 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta

Programming/Javascript

[Javascript] Expression, Statement

Expression , Statement HTML 삽입 미리보기할 수 없는 소스 Expression HTML 삽입 미리보기할 수 없는 소스 Expression은 값이 될 수 있는 것들을 의미한다. '5' , 5 , true , "Hello" , 5+4+3+2와 같이 값이 될 수 있는 것들은 모두 Expression(표현식)이라고 한다. Statement HTML 삽입 미리보기할 수 없는 소스 Statement는 하나의 문장을 의미한다. Expression도 Statement의 일부이다. 반복문, 조건문도 Statement이다. let variable = "Hello"; ❗ 저작권 및 참고 더보기 https://icons8.com/icon/TZ69zUw6d3Lu/right Right icon in Flat..

Algorithm & Data Structure/Problem

[Problem] 최대값

최대값 HTML 삽입 미리보기할 수 없는 소스 Problem HTML 삽입 미리보기할 수 없는 소스 정수 두 개를 입력받아서 더 큰 값을 출력하는 프로그램을 작성하시오. 이를 위해 getMax(a, b)함수를 완성하시오. getMax함수는 두 개의 정수 a, b를 입력받아 더 큰 수를 반환하는 함수다 입력 형식 32비트 int형 정수 두 개가 공백으로 구분되어 한 줄에 주어진다. 출력 형식 두 정수 중 큰 정수를 한 줄에 공백없이 출력한다. Solve HTML 삽입 미리보기할 수 없는 소스 import java.lang.*; import java.util.*; import java.io.*; public class Main { public static final Scanner sc = new Scanne..

CTF/Web

[LINE CTF] double check

보호되어 있는 글입니다.

Hacking/Web

[Web Hacking] Thymeleaf SSTI

Thymeleaf SSTI HTML 삽입 미리보기할 수 없는 소스 Thymeleaf HTML 삽입 미리보기할 수 없는 소스 타임리프(Thymeleaf)는 Spring의 뷰 템플릿이다. 컨트롤러가 데이터를 전달하면 동적으로 화면을 구성할 수 있게 도와준다. SSTI를 알아보기 전에 Thymeleaf에 대해 알아보자 사용법 Thymeleaf를 사용할려면 xormdp th:text , th:fragment, th:block 등 과 같이 속성과 비슷하게 생긴 것이 온다. 표현식 변수 표현식 : ${} 선택 변수 표현식 : *{} 메시지 표현식 : #{} URL 표현식 : @{} 단편(Fragment) 표현식 : ~{} Thymeleaf SSTI HTML 삽입 미리보기할 수 없는 소스 Thymeleaf뿐만 아니라..

Hacking/Web

[Web Hacking] Java Reflection(feat. SSTI)

Reflection HTML 삽입 미리보기할 수 없는 소스 Reflection이란? HTML 삽입 미리보기할 수 없는 소스 Reflection은 구체적인 클래스 타입을 알지 못해도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있는 java의 API이다. Java는 컴파일 언어라서 런타임 도중 클래스나 메소드를메서드를 가져오지 못하는데 Reflection을 이용하면 클래스나 메서드를 호출할 수 있다. SSTI CTF를 풀다가 나와서 정리를 해본다. 임의의 클래스 가져오기 "".getClass(); // 임의의 클래스를 가져온다. 클래스 로드 Class.forName("java.util.Scanner"); "".getClass().forName("java.util.Scanner"); 생성자 설정 Clas..

Hacking/Web

[Web Hacking] URL 구조

URL 구조 HTML 삽입 미리보기할 수 없는 소스 URL HTML 삽입 미리보기할 수 없는 소스 Scheme scheme은 Protocol을 의미한다(ftp, ssh, http, https..) file scheme도 있는데 file scheme은 소유자의 file을 찾기 위한 구조이다. file://host:port/path와 같은 형식으로 이루어져 있다. host:port를 생략하면 file:///path(local을 의미)와 같이 사용할 수 있다. User:Pass ssh를 접속할 때 @를 사용하여 사용자:[패스워드]@host 형식으로 주소를 지정한다. @앞의 부분을 username : password로 인식하고 @뒷 부분을 host로 인식한다. 이러한 특징으로 URL 필터링을 우회할 때도 사용된..

Hacking/Web

[Web Hacking] Flask Debugger PIN Exploit

Flask Debugger PIN Exploit HTML 삽입 미리보기할 수 없는 소스 Debugger PIN HTML 삽입 미리보기할 수 없는 소스 Flask에서 Debugger모드가 활성화되어 있을 때 어떠한 에러가 발생하면 에러를 보여주는 페이지가 나온다. 해당 페이지에서 콘솔을 실행시킬 수 있는데 콘솔을 실행시키려면 PIN이 필요하다. app.run(host='0.0.0.0', port=80, threaded=True, debug=True) Generate PIN PIN은 __init__.py에서 만들어지는데 machine-id , mac address 등 각각 컴퓨터마다 다른 값들을 이용해서 PIN을 만들기 때문에 예측하기는 불가능하다. __init__.py는 /usr/local/lib/pyth..