분류 전체보기
XXE, XML eXternal Entity
XXE, XML eXternal Entity
2017.09.21eXternal Entity ATTACKXML에서 동적으로 외부 리소스를 받아오기 위해 external entity를 사용할 때, XML Request를 파싱하는 페이지에서 발생SSRF를 유도할 수 있다.Port Scan을 수행할 수 있다. MitigationXML은 보통 불특정 client와 통신하는데 사용되기 때문에 DTD 요소들을 선택적으로 validate, escape하는 것이 어렵다. 따라서 XML processor가 XML document에 포함된 다른 DTD를 거부하고 local static DTD만 사용하도록 설정해야 한다.```phplibxml_disable_entity_loader(true)libxml_use_internal_errors(true) // 이 것도 해주면 좋다.``` DT..
[PHP] hack
[PHP] hack
2017.09.21이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
Unsafe redirect
Unsafe redirect
2017.09.21Unsafe/Unvalidated/Open Redirect해당 도메인 이외의 phishing site 등 malicious site로 이동할 수 있다는 건데... 사실 이 자체로 취약점이라고 하긴 좀 그렇긴 함...하지만 OWASP에서 말하길 trusted site에서 이동하는거라 눈치채지 못하는 유저도 있다. 고 하네그리고 scheme을 http로 제한하지 않는 경우 location에 `` javascript:alert(1);`` 넣는 식으로 XSS가 가능하기도 하고. ```?url=http://external.malisious.site``````php// PHPheader('Location: '.$_GET['url']);``````java// javaresponse.sendRedirect(reques..
SSRF
SSRF
2017.09.19Server Side Request Forgery웹 어플리케이션이 외부로 request를 보낼 대상을 설정할 때, 뿐만 아니라 외부로 request를 보낼 수 있는 함수를 사용할 때 인자에 user input이 들어간다면 발생할 수 있다. PHP는 http:// Wrapper를 지원하기 때문에, ``php fopen()``, ``php include/require``, cURL등에 인자로 `` http://url`` 형태를 넘겨 외부 도메인에 있는 리소스를 가져올 수 있다. - `` http://`` 이외에도 다양한 Wrapper를 사용할 수 있다. - 위 함수들 뿐만 아니라, user input을 참고해 외부 request를 보내는 상황이면 어디든 발생할 수 있다. 외부 도메인 뿐만 아니라 방화벽 뒤에..
XSS / CSRF
XSS / CSRF
2017.09.19서버에서 받아온 데이터를 그냥 innerHTML로 할당하는 것은 지양해야 한다. XSShttps://github.com/naver/lucy-xss-filter직접 LucyFilter 객체 가져와서 메서드 불러 `` dirty -> escaped``로 만들어야 함.직접 달아줘야 하기 때문에 달아야 하는 곳에 안달거나, 안달아야 하는 곳에 다는 경우가 있을 수 있음.https://github.com/naver/lucy-xss-servlet-filterXSS 체크가 요청 파라미터로 넘어오는 모든 것들에 대해서 일괄 적용됨비즈니스 로직에 XSS 체크가 들어가지 않아도 된다!https://www.npmjs.com/package/sanitize-html 근데 이거 쫌 무겁다.https://www.npmjs.com/..
SQL Filtering Substitution Pattern
SQL Filtering Substitution Pattern
2017.09.19이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[webhacking.kr] 22 : Blind SQL injection : WHERE에서 해결하기 (우선순위+LIMIT 활용)
[webhacking.kr] 22 : Blind SQL injection : WHERE에서 해결하기 (우선순위+LIMIT 활용)
2017.09.18이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[webhacking.kr] 21 : Blind SQL Injection : WHERE에서 해결하기 (LIMIT 대체)
[webhacking.kr] 21 : Blind SQL Injection : WHERE에서 해결하기 (LIMIT 대체)
2017.09.18이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[webhacking.kr] 20 : timer cookie가 설정되어 있는 경우
[webhacking.kr] 20 : timer cookie가 설정되어 있는 경우
2017.09.18이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[webhacking.kr] 8 : sql injection ( user-agent )
[webhacking.kr] 8 : sql injection ( user-agent )
2017.09.18이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[SecuInside 2017] OHCE - x64 SROP
[SecuInside 2017] OHCE - x64 SROP
2017.09.16get_userinput이 제일 소스가 길어서 거기에 취약점이 있을 것 같아 집중적으로 봤는데 정작 다른 곳에 있었음... 시간을 무지 낭비함. 풀고 나서 보니까 NX가 비활성화 되어 있었다 ㅡㅡ; 어쩐지 checksec으로 봤을 때는 disable로 뜨는데 stack에 x권한이 왜 있지? 싶었더라니... 반드시 nxtest를 사용해야겠다. SROP같다.```gdb-peda$ checksecCANARY : disabledFORTIFY : disabledNX : ENABLEDPIE : disabledRELRO : disabled $ ldd ohce not a dynamic executable start addr : 0x4000B0``` Note ) 이런 바이너리는 HexLay가 이상하게 나올 수 있으니 주..
[python] pyplot.matplotlib
[python] pyplot.matplotlib
2017.09.13matplotlib 그래프를 그리는 라이브러리다. matplotlib의 pyplot모듈을 이용한다. 룩이 좀 구리지만 기능 자체는 꽤 쓸만하다. x값 만들기 ```python x = np.arange(1, 7, 1) # 1부터 7까지 1의 간격으로 숫자 생성. [1 2 3 4 5 6] x = np.arange(1, 7, 2) [1 3 5] x = np.linspace(1, 6, 6) # 1부터 6까지를 동일한 간격으로 6개의 값으로 나눈다. [1. 2. 3. 4. 5. 6.] x = np.linspace(1, 6, 5) [1. 2.25 3.5 4.75 6. ] ``` 2차원 좌표평면값 만들기 ```python # (-1,-1) (-1, -0.99)...(-1, 4) (-0.99, -1) ... (4, 4..