14번 문제를 클릭하면 밑의 사진을 확인 할 수 있다. 검은화면에 입력창과 check로는 알 수 있는 것이 없기 때문에 chrome의 f12기능을 활용해서 script를 확인해 보도록 한다. check를 클릭하면 실행되는 ck() 함수 부분의 script를 확인해 볼 수 있다. 코드를 분석해 보면 function ck(){ var ul=document.URL; //문서의 URL을 ul에 할당 [URL: https://webhacking.kr/challenge/js-1/] ul=ul.indexOf(".kr"); // ul에서 .kr의 위치를 숫자로 변환 -> 19번째 이므로 18의 값을 가짐 ul=ul*30; // 18*30 = 540 if(ul==pw.input_pwd.value) { location.h..
1. Old-06 WriteUp 해당 문제를 클릭하면 밑의 그림과 같은 화면이 나타난다. 문제의 화면에서 view_source의 코드를 확인할 수 있다. 해당 코드는 2부분으로 나누어 설명하도록 한다. (1) 첫번째 부분 첫번째 부분의 코드를 분석해 보면, user 이름의 쿠키 값이 없다면 실행되는 것을 확인 할 수 있다. 이 때, guest와 123qwe값을 각각 20번 base64 인코딩 후 user, password의 쿠키 값에 설정된다. str_replace 함수가 있지만 base64값은 (0~9와 알파벳 대소문자, '+', '/' 그리고 '=') 문자로만 구성되어 있으므로, str_replace 함수를 신경 안써도 문제를 해결 할 수 있다. 실제로 guest를 base65 인코딩 20번한 결과값..
#06,14,17,18,26,38,54,16,24,39 제일 낮은 포인트를 가진 15번 문제를 먼저 해결하도록 하겠다. old.15번을 클릭하면 밑의 그림을 확인할 수 있다. falcon proxy를 실행시키고 burp suite를 사용하여 해당 내용의 패킷을 확인해 보겠다. "[Get Flag]"); 해당 코드를 해석해보면 getFlag의 url로 옮긴다라고 추측할 수 있다. alert을 지우고 forward를 해보면 [GET_Flag]의 하이퍼링크를 타고 들어간 후에 burp suit에서 forward를 재전송 하면 문제가 풀린것을 확인 할 수 있다.
1. burp suit 다운 portswigger.net/burp/ Upgrade your skills with the Web Security Academy - from PortSwigger Take your Burp Suite Community Edition experience to the next level with a free skills upgrade in the Web Security Academy. portswigger.net Intercept is off -> Intercept is on 으로 변경 후 실행 2. chrome app store falcon proxy chrome 만 proxy의 기능을 할 수 있게함 다른 브라우저는 인터넷 ..
1. 루트디렉터리 [ / ] - root디렉터리는 리눅스 시스템에서 가장 최상위 디렉터리, 디렉터리 구조의 시작이다 - 디렉터리를 생성하기 위한 기준이 되는 표시 2. 기본 실행 명령어 디렉터리 [ /bin ] - binaries - 기본 명령어 파일들이 2진수의 형태로 모여있는 디렉터리 - 시스템을 관리하는 명령어를 제외한 대부분의 일반적인 명령어들이 있다 3. 시스템 운영 명령어 디렉터리 [ /sbin ] - system binaries - 시스템 관리 ( 부팅, 복구, 보수 ) 를 위한 명령어들이 모여 있는 디렉터리 - 시스템 운영에 필요한 명령어들을 포함하고 있고, root만이 사용할 수 있는 명령어들로 구성된다 4. 시스템 설정 파일 디렉터리 [ /etc ] - 리눅..
#pwd #cd #mkdir option -p #rm rm -f : 강제 삭제( i:되묻기 옵션 무시 ) rm -r : 하위폴더까지 모두 삭제 ( 디렉토리삭제시 ) #ls option -l : 자세히 출력 -... , l... , d... , b... -a : 숨김파일까지 모두 출력 -d : 자기 자신의 경로에 대한 정보 출력 -R : 하위 디렉터리까지 출력 -F : 파일 타입 정보 출력 파일명/ : 디렉터리파일 파일명* : 실행파일 파일명@ : 링크파일 파일명 : 일반파일 #mv path1을 path2로 이동시킨다. path2가 존재하지 않을 때에는 path1이름을 path2이름으로 변경한다 #cp path1 을 path2로 복사붙여넣기 option -f : 강제로 복사 -r : 하위디렉토리와 파일 모..
명령모드( ESC ) ZZ ( shift + zz ) : 저장 후 종료 커서이동 h왼 / j아래 / k위 / l오른 shift+4($) 행의끝 / shift+6(^) 행의처음 ctrl + f 다음화면 ctrl + b 이전화면 gg 문서의 처음으로 이동 G 문서의 마지막으로 이동 400G 해당 줄번호로 이동 333gg 해당 줄번호로 이동 복사 yy( 커서가 위치한 행 ) 붙여넣기 p 현재 커서로부터 세줄 복사 => 3yy 되돌리기 u : Undo ctrl + r : Redo x 현재 커서가 위치한 글자 삭제 dd 현재 커서한 위치한 라인 삭제 100dd 100줄 삭제 /문자열 해당 문자열 검색(위로) ?문자열 해당 문자열 검색(아래로) n 다음으로 일치하는 단어 N 이전으로 일치하는 단어 i : 그냥 입력..
1. DB관련 php 파일 생성 # vi db.php 2. php를 통해 DB 쿼리 사용해보기 ( 실제 코드를 통해서 데이터를 다뤄보기 ) mysql_query([쿼리 입력]) : query문 실행해주는 함수 (쿼리는 문자열로 전달한다.) 일단 데이터 모두 삭제! mysql> delete from user_info; Query OK, 2 rows affected (0.00 sec) mysql> select * from user_info; Empty set (0.00 sec) 1. 입력 , 수정 , 삭제 쿼리가 실행되었는가/되지않았는가? mysql_query() returns TRUE on success or FALSE on error. 2. 조회 조건에 맞는 조회된 데이터가 없는가/있는가? 즉, 결과가 ..
▶ 데이터 베이스 ( Database ) >> MySQL : DBMS >> 데이터를 관리하는 단위 : DB - 관계형 데이터 베이스 중 MySQL 사용 참조 사이트 : dev.mysql.com -> Documentation -> MySQL Reference Manual 클릭 -> 5.x 참조 1. SQL ( Structured Query Language ) - 구조화된 질의 언어 -> 구조화된 데이터에 대해서 질문을 처리하는 언어 CREATE , DROP , SELECT , INSERT , UPDATE , DELETE [1] DDL ( Data Definition Language ) : 데이터를 정의할 수 있는 구문 -> 생성 및 삭제 기능 CREATE , DROP ( 실제 데이터와는 상관없이 데이터를 ..
ㅋ ▶인증 1) Apache 웹 인증 - 설정파일 : /etc/httpd/conf/httpd.conf -> 317번 라인 # vi /etc/httpd/conf/httpd.conf ... Order allow,deny Allow from all /* 밑의 4줄 추가하기 */ AuthType Basic AuthName "Basic Authentication" AuthUserFile /var/www/html/.htpasswd // 인증을 요구할 때 사용자의 정보가 들어있는 파일의 경로 ( 파일이 없어도 상관없음 -> 인증을 하는지 안하는지만 볼 예정 ) ( 보통은 .을 붙여서 숨김 파일로 만들어 줌 ) ( 지금 상태에서는 파일이 없어 비교할 대상이 없으므로 누구도 인증을 통과할 수 없다. ) Require v..