전체 글

rm -rf /
· 공부/JSP
JSP 태그 JSP는 html 문서를 기반으로 해서 JSP 프로그래밍을 하기 위한 각종 태그가 추가된 형태 JSP도 태그 형태 JSP는 각종 태그를 이용해 고유 문법을 기술하는 서버 프로그램 방식 스크립트 태그(Script Tag) 액션 태그(Action Tag) 커스텀 태그(Custom Tag) 스크립트 태그 사용 HTML 코드에 자바 코드를 넣어 프로그램이 수행하는 기능을 구현 JSP 웹 페이즈를 어떻게 처리할 것인지에 대한 페이지 정보를 설정하여 웹 컨테이너인 아파치 톰캣에게 보낼 때 선언 용도에 따라 5가지 유형. 모두 사 - _jspService() 안에서 변수가 선언되기 때문에 실행 될때 마다 선언된다. 선언문에서 변수 선언 시 전역변수표현문 뒤에는 세미클론이 안들어감 - _..
· 공부/JSP
인터넷과 웹의 개요 인터넷 : 컴퓨터가 서로 연결되어 TCP/IP라는 통신 프로토콜을 이용하여 정보를 주고받는 전 세계의 컴퓨터 네트워크 웹 : 많은 사람들이 정보를 쉽게 공유하고 접근할 수 있도록 하는 것을 목적 월드 와이드 웹(World Wide web) 의 줄임말, 인터넷 서비스 중 하나 웹의 동작 원리 웹은 기본적으로 클라이언트/서버 방식으로 동작 가장 널리 쓰이는 웹 서버 아파치(Apache) 톰캣(Tomcat) : 작은 웹 서버 기능 + 자바 서블릿(Servlet)과 JSP(Java Server Page) 지원 IIS(Internet Information Server) : 윈도우 전용 웹 서버 - asp 윈도우전용 Nginx : 최근 인기 있는 웹 서버 정적 웹 페이지와 동적 웹 페이지 정적 ..
Database(DB) : 데이터의 저장소 데이터베이스는 무조건 하드디스크에 저장될 수 밖에 없음 DBMS(Database Management System) : 데이터베이스 관리 시스템 관계형DB : 데이터의 종속성을 관계로 표현하는 것이 특징 관계형 DB = 2차원 DB → 테이블로 이루어짐 Column(열) = 필드 = 속성 : 데이터의 제목(분류) , 유일한 이름을 가진다 Row(행) = 튜플 = 레코드 : 관계된 데이터들의 묶음 DB의 모델링에 따라서 사용하는 DBMS도 바뀐다. 관계형DB는 RDBMS를 사용하여 관리함 datetime을 사용하면 YYYY-MM-DD HH:mm:ss 형태로 저장되고 데이터 값을 입력해 주어야 한다. timestamp는 1970/1/1의 기준으로 몇 초가 지났는지 기..
view-source GET요청으로 id값이 admin 이면 문제가 풀림 하지만 preg_match 함수로 “admin” 이라는 문자열이 있으면 필터링되어서 no! 라는 문자가 뜸 preg_match 필터링 우회 admin 을 URL Encoding 하여서 시도해봄 admin → %61%64%6D%69%6E → ?id=%61%64%6D%69%6E URL을 Encoding 하였는데 값을 넣고 요청을 보내면 URL이 admin 으로 바뀌고 가 뜨는것이 확인됨 php문 내부에 GET[′id′]=urldecode(_GET['id'] = urldecode(G​ET[′id′]=urldecode(_GET['id']); 를 확인하였는데 이 코드때문에 만약 %61%64%6D%69%6E 를 한번 더 URL Encoding..
source code login form태그의 pw input태그에 값이 unlock과 똑같다면 function sub() 가 실행된다 계산은 js에서 풀어보았음 답 : 7809297.1
index.php PHPreg Step 1 Step 2 Step 1 : Open the door & Go to Step 2 !! step2.php PHPreg Step 1 Step 2
Page 문제 소스코드 FLAG는 flag.py 에 있다고 힌트가 있었음 /ping 에 들어가면 해당하는 Host로 Ping 테스트를 할수 있는 기능이 있음 Ping! 버튼을 눌러보면 리눅스의 셸에서 실행된 결과값이 사이트상에 렌더링되어 출력된다. 다시 한번 코드를 살며보면 host = request.form.get('host') cmd = f'ping -c 3 "{host}"' 이 쪽부분에서 host는 ping값을 보낼 host를 form태그상에서 불러오고 cmd는 미리 짜여진 명령어안에 host의 ip만 대입하여 실행시키는것을 확인할 수 있다. POST 요청의 패킷을 한번 살펴보면 host=8.8.8.8 와 같은 요청으로 서버에 보내지는것을 확인 리눅스의 셸에서 다중 명령어를 사용할때는 ; (세미클론..
소스코드를 확인해보면 입력된 $val_id, $val_pw 를 base64 인코딩 방식으로 20번 인코딩 한 후 id와 pw의 값에서 1~8까지 해당 하는 숫자를 특수문자로 대치 하는 방식으로 코드가 작성되어져있다. 대치가 완료되면 $val_id값과 $val_pw 값은 user, password 라는 이름으로 쿠키에 저장된다 base64 : 바이너리 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 문자로 표현하기 위해 만들어진 인코딩 decode_id가 admin, decode_pw가 nimda 이면 문제가 풀림 소스코드에서 주어진 base64로 인코딩하는 부분을 긁어와 $val_id와 $val_pw를 admin, nimda로 지정 후 인코딩하고 출력되게 코드를 수정하고 개인 서버에서 php를 돌..
Future0_
Luna Developer Blog