기본적으로 핸드폰에 발생하는 이벤트는 대부분 터치이벤트이다. 터치이벤트가 발생하면 어떤 과정을 통해서 어떤 View에서 발생한 이벤트인지 찾고 그에 해당되는 이벤트가 발생되는지 아래 과정을 통해 간단하게 소개하겠다. 터치된 영역의 최상위 루트뷰부터 하위로 dispatchEvent를 호출하며 찾아가고, onTouchEvent를 호출하면서 해당 View에 대한 이벤트인지 확인한다. 해당 View에 대한 이벤트라면 반환값이 TRUE이 되고, 아니라면 FALSE를 반환해 다음 View로 넘어간다. ( 당연히 TRUE가 반환되게 되면 그에 해당하는 이벤트 효과가 발생된다. ) public boolean dispatchTouhEvent(MotionEvent e); public boolean onTouchEvent(..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
파일업로드 기능을 구현할 때 개발자는 취약점 방지를 위해 확장자에대한 제한을 거는 경우가 많다. 예를 들면, php, jsp, asp 확장자는 업로드할 수 없게 블랙리스트 필터링을 건다던지 jpg, jpeg, png 등의 이미지 파일만 업로드할 수 있게 화이트리스트 필터링을 건다던지 한다. 이 때 이 확장자를 우회하는 방법에 대해 몇가지 적어보겠다. 1. NULL Byte Bypass 예를 들면 webshell.php%00.jpg 와 같이 중간에 NULL Byte를 넣어주게 되면, NULL Byte는 문자열의 끝을 의미하므로 처리되는 파일명은 webshell.php가 되게된다. 2. HTML Encoding 잘 안되는 경우가 많은데 간단한 방법으로 webshell.ph%70 와 같이 HTML Encodi..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bvIpfM/btqwQWfT0N2/OW5Xgu6OmGKKni2sNKITm1/img.png)
PHP에서는 변수에 따로 Data Type을 지정하지 않는다. 그래서 위와같은 비교구문에서 취약점이 발생하기도 하는데, gen_key()는 항상 다른 문자열 Key를 반환해주는 함수이다. 근데 내가 입력한 값과 그 반환된 Key가 같게 할 수 있을리가 없다. 무작위로 반환해주는 것을 무슨수로 맞춰..? 이 표를 보면 PHP에서 == 으로 비교를 했을 때 "php" 문자열과 TRUE 불린값을 비교하면 TRUE가 나온다. 또한 "php" 문자열과 정수 0을 비교해도 TRUE가 나온다. 여기서 "php"는 임의의 문자열이고 어떤 문자열이와도 TRUE, 0 둘중하나로 비교하게되면 결과값은 TRUE가 나온다는 말이다. 진짜 말도안되는 일이 벌어지는 것이다.... 그래서 내가 $json->key에 TRUE 혹은 0..