XXE, XML eXternal Entity
eXternal Entity ATTACK XML에서 동적으로 외부 리소스를 받아오기 위해 external entity를 사용할 때, XML Request를 파싱하는 페이지에서 발생 SSRF를 유도할 수 있다. Port Scan을 수행할 수 있다. Mitigation XML은 보통 불특정 client와 통신하는데 사용되기 때문에 DTD 요소...
eXternal Entity ATTACK XML에서 동적으로 외부 리소스를 받아오기 위해 external entity를 사용할 때, XML Request를 파싱하는 페이지에서 발생 SSRF를 유도할 수 있다. Port Scan을 수행할 수 있다. Mitigation XML은 보통 불특정 client와 통신하는데 사용되기 때문에 DTD 요소...
Unsafe/Unvalidated/Open Redirect 해당 도메인 이외의 phishing site 등 malicious site로 이동할 수 있다는 건데… 사실 이 자체로 취약점이라고 하긴 좀 그렇긴 함… 하지만 OWASP에서 말하길 trusted site에서 이동하는거라 눈치채지 못하는 유저도 있다. 고 하네 그리고 scheme을...
Server Side Request Forgery 웹 어플리케이션이 외부로 request를 보낼 대상을 설정할 때, 뿐만 아니라 외부로 request를 보낼 수 있는 함수를 사용할 때 인자에 user input이 들어간다면 발생할 수 있다. PHP는http:// Wrapper 를 지원하기 때문에, fopen(), include/require,cUR...
서버에서 받아온 데이터를 그냥 innerHTML로 할당하는 것은 지양해야 한다. XSS https://github.com/naver/lucy-xss-filter 직접 LucyFilter 객체 가져와서 메서드 불러 dirty -> escaped로 만들어야 함. 직접 달아줘야 하기 때문에 달아야 하는 곳에 안달거나, 안달아야 하는 곳...
get_userinput이 제일 소스가 길어서 거기에 취약점이 있을 것 같아 집중적으로 봤는데 정작 다른 곳에 있었음… 시간을 무지 낭비함. 풀고 나서 보니까 NX가 비활성화 되어 있었다 ㅡㅡ; 어쩐지 checksec으로 봤을 때는 disable로 뜨는데 stack에 x권한이 왜 있지? 싶었더라니… 반드시 nxtest를 사용해야겠다. SRO...
matplotlib 그래프를 그리는 라이브러리다. matplotlib의 pyplot모듈을 이용한다. 룩이 좀 구리지만 기능 자체는 꽤 쓸만하다. x값 만들기 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.linspa...
<stdint.h>를 사용하도록 하자. int보다 uint8_t 같은 고정 크기 타입을 사용하는 것이 좋다. char보다 TCHAR를 사용하는 것이 좋다. 윈도우인 경우 컴파일 옵션에 따라 리눅스 등에서도 호환 가능하기 때문. Types uintptr\_t 포인터를 대상으로 덧셈, XOR 등 수치 연산이 필요한 경우 포인터를 숫자값으...
#define의 쓰임 #define은 옵션이나 flag를 지정할 때만 사용 하고, 다른 용도일 경우 inline이나 static const를 사용하는 편이 좋다. 이렇게 할 경우 1. type-safe하고, 2. 어디에 쓰느냐에 따라 scope도 지정 가능하며, 3. 디버깅 심볼이 생성되어 디버깅이 편하다는 장점이 있다. 간단한 함수 차원의 #def...
http://v0ids3curity.blogspot.kr/2014/12/return-to-vdso-using-elf-auxiliary.html 2016/11/21 - [System/etc] - Memory Layout, Segment / Stack layout Linux Stack Layout with Auxiliary Vectors 0x7fff...
파이썬의 코루틴과 태스크 API 파이썬의 이벤트 루프 API asyncio 실행 흐름 import asyncio async def sub(n): await asyncio.sleep(n) print("sub{}".format(n)) async def comain(): times = [1, 2, 2] fts = ...