![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR67R2%2FbtrEh8LS2tY%2FEAvIDkYgXwBkpyEke3YUX0%2Fimg.png)
이번 포스트에서는 Lord of SQLInjection의 green_dragon문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., ', "를 필터링하고 있다는 것을 알 수 있다. 또한 id의 값이 admin일때만 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 우선 "\"문자가 필터링 처리되지 않았으므로 "\"를 활용하여 공격을 시도해보겠다. ### 사용할 공격문 : id=\&pw= union select 0x61646d696e %23 ### 실행 결과 : "\"문자를 통해 id 파라미터의 값을 '\' and pw='로 만든 다음에 union문을 활용하여 s..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwGPZD%2FbtrD5S5hbz9%2FdehWeCexuSdrLeKjiu6xb1%2Fimg.png)
이번 포스트에서는 Lord of SQLInjection의 evil_wizard문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., proc, union, sleep, benchmark를 필터링하고 있다는 것을 알 수 있다. 또한 email의 값을 알아내야만 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 우선 아무런 값을 넣어서 공격을 실행해보겠다. ### 사용할 공격문 : order=1 ### 실행 결과 : id값 admin의 email값이 *****로 출력된 것을 확인할 수 있다. email의 값을 알아내야 하기 때문에 Blind SQL Injection ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkGnwM%2FbtrD6yRR0zG%2F2KHsyM5Abqu9C54D1mS7b1%2Fimg.png)
이번 포스트에서는 TCP의 혼잡 제어에 대해 다루겠다. 먼저 TCP의 재전송에 대해 간단히 정리하고 넘어가겠다, TCP의 재전송 시나리오 : 호스트 A가 시퀀스 넘버 92, 100이라는 세그먼트를 호스트 B로 전송한다. 호스트 B는 해당 세그먼트에 대한 ACK 세그먼트 100, 120을 보냈으나 타임아웃 되기 전에 도착하지 못했다. 타임아웃이 가장 오래된 세그먼트에 걸려 있기 때문에 호스트 A는 시퀀스 넘버 92에 대한 세그먼트를 재전송한다. 호스트 B는 Seq 92를 이미 받았으므로 ACK 120을 재전송한다. 호스트 A는 ACK 120을 받고 Seq 120번부터 전송한다. 혼잡 제어(Congestion Control)란? : 라우터가 버퍼 오버플로우가 발생하지 않게끔 윈도우 사이즈를 조절하는 기법이다..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4OYnL%2FbtrD5Thohwy%2FaNrSlTzSyUa0sYmE9vZKk0%2Fimg.png)
이번 포스트에서는 TCP의 연결 관리 및 흐름 제어에 대해 다루겠다. RTT : 패킷 하나를 보내고 나서 ACK이 올때까지 걸리는 시간(Queueing 딜레이에 의해 변동) 흐름제어(Flow Control)란? : Sender가 세그먼트를 보낼 때 Reciever의 버퍼 정보를 확인하여 버퍼 오버플로우가 발생하지 않는 만큼만 보내는 기법이다. 흐름제어: Basic Idea Receiver의 여유 버퍼 크기를 receive window 필드를 통해 Sender에게 알려준다. Sender는 RW의 크기에 맞게 세그먼트를 전송한다. 그럼 만약 세그먼트 하나를 보냈는데 Receiver 버퍼가 꽉 차면 Sender는 언제 세그먼트 전송을 재개할까? Receiver가 먼저 Sender에게 RW 사이즈가 담긴 세그먼..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtRkhu%2FbtrD1gqSB2o%2FW6PxJVXtMvIrWF9yHEmnX1%2Fimg.png)
이번 포스트에서는 Lord of SQLInjection의 hell_fire문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., proc, union을 필터링하고 있다는 것을 알 수 있다. 또한 email의 값을 알아내야만 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 우선 아무런 값을 넣어서 공격을 실행해보겠다. ### 사용할 공격문 : order=1 ### 실행 결과 : id값 admin의 email값이 *****로 출력된 것을 확인할 수 있다. email의 값을 알아내야 하기 때문에 Blind SQL Injection 기법을 활용해보겠다. 먼저 email..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7EFxY%2FbtrDWKk0Lno%2FXeXSEK7X4IjwEONlVnKYp0%2Fimg.png)
이번 포스트에서는 Lord of SQLInjection의 dark_eyes문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., (, ), col, if, cast, when, sleep, benchmark를 필터링하고 있다는 것과 "Hello {id}"와 같이 쿼리의 참과 거짓을 알려주는 문구를 출력해주지 않다는 것을 알 수 있다. 또한 pw의 값을 알아내야만 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 참과 거짓을 구분해주는 문구가 사라졌지만 mysqli_error() 함수를 통해 우리가 입력한 쿼리가 참을 반환했는지, 거짓을 반환했는지를 알 수 있다. ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclE3Fu%2FbtrD1g4Gb5n%2FKEMzNWaNAOvE3XEbpfp6S0%2Fimg.png)
이번 포스트에서는 TCP에 대해 다루겠다. TCP의 특징 : Point-to-point (점대점): 데이터의 시작점과 끝점 사이의 연결을 관리한다. Reliable, in-order byte stream: 신뢰성 보장, 순서대로 온 것만 애플리케이션 레이어로 올려준다. Full duplex data: 양방향 통신, 최대로 보낼 수 있는 세그먼트가 사이즈(MSS)가 정해져 있다. Cumulative ACKs: ACK(10) - 9번까지 잘 받았으니 이제 10번 보내달라는 뜻이다. 페이로드 없고 헤드(20바이트) 부분만 존재한다. Pipelining: 파이프라이닝 방식 사용한다. Connection-oriented (연결 지향): 3-way handshaking으로 연결하고 4-way handshaking으..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5REyj%2FbtrDYMaXXz3%2FDWR2EzqDykSt8KDe97HQAk%2Fimg.png)
이번 포스트에서는 Lord of SQLInjection의 iron_golem문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., (, ), sleep, benchmark를 필터링하고 있다는 것과 "Hello {id}"와 같이 쿼리의 참과 거짓을 알려주는 문구를 출력해주지 않다는 것을 알 수 있다. 또한 pw의 값을 알아내야만 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 참과 거짓을 구분해주는 문구가 사라졌지만 mysqli_error() 함수를 통해 우리가 입력한 쿼리가 참을 반환했는지, 거짓을 반환했는지를 알 수 있다. ### 사용할 공격문 : pw=' o..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA9tAX%2FbtrDUvVwiXB%2FtXDSXxtVoaoxdjRf2acm8K%2Fimg.png)
이번 포스트에서는 Lord of SQLInjection의 dragon문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., (, )를 필터링하고 있다는 것과 guest뒤에 #(주석문자)이 붙어 있다는 것을 알 수 있다. 또한 id의 값이 "admin"일때만 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 해당 문자는 #(주석)을 통해 뒤에 오는 값을 무효화처리 하고 있다. ### 사용할 공격문 : pw=' or id='admin ### 실행 결과 : 출력된 값이 변경되지 않는 것을 확인할 수 있다. 그러나 "#"문자는 "1 Line", 즉 한줄 주석 처리이기 때..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1PGRF%2FbtrDHHnMqfZ%2FbnBy8lxRBdVgK43Kkowt1k%2Fimg.png)
이번 포스트에서는 Texture Mapping에 대해 다루겠다. Texture Mapping이란? : 세부 사항이 미세하고 복잡해질수록 다각형이나 다른 기하학적 원형을 사용한 명시적 모델링은 덜 실용적이다. 따라서 디지털화되거나 합성된 이미지를 표면에 매핑을 한다. 이것을 Texture Mapping이라고 부른다. Bump Mapping : Texture Mapping 기법 중의 하나로써 사실감을 표현하는 데 유용함. 위쪽으로 기울어진 표면은 밝은 빛을 띠는 경향이 있다. 아래쪽으로 기울어진 표면은 어두운 경향이 있다. 밝은 비트는 위쪽을 향한다. 어두운 비트는 아래쪽을 향한다.