파일 업로드 우회 기법
파일 업로드 시 보안 제한을 우회하는 다양한 방법들을 소개합니다. 여기서는 PHP 웹셸을 예시로 사용하겠습니다.
1. 프론트엔드 JS 파일 확장자 제한
웹 페이지에서 JavaScript를 통해 특정 확장자만 업로드할 수 있도록 제한하는 경우:
JS 코드의 파일 확장자 검사를 비활성화합니다.
허용된 형식으로 파일을 업로드한 후, 패킷을 잡아 filename을 스크립트 형식으 ...
7월 4일 21:29에 게시됨
Hyperf HTTP 서버 부팅 과정 분석
Hyperf 프로젝트를 생성한 후 터미널에서 php bin/hyperf.php start 명령을 실행하면, 잠시 후 워커 프로세스가 시작되고 HTTP 서버가 9501 포트에서 대기 중이라는 로그가 출력된다.
[INFO] Worker#3 started.
[INFO] Worker#1 started.
[INFO] Worker#2 started.
[INFO] Worker#0 started.
[INFO] HTTP Server listening at 0.0.0.0:9501
브라우저에서 http:// ...
7월 4일 20:06에 게시됨
PHP CAPTCHA 생성 클래스 구현
이미지 기반 CAPTCHA 생성 클래스를 구현하여 웹 폼 보안을 강화할 수 있습니다. GD 라이브러리를 활용한 PHP 구현 예시입니다.
CAPTCHA 클래스 구조
<?php
session_start();
class CaptchaGenerator {
private $charSet = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789';
private $captchaText;
private $textLength = 4;
private $imgW ...
7월 3일 00:41에 게시됨
PHP와 센서 네트워크를 위한 동적 로드 밸런싱 아키텍처 및 알고리즘 구현
센서 네트워크 로드 밸런싱의 핵심 과제
대규모 무선 센서 네트워크(WSN)에서 노드는 주로 배터리로 구동되며 접근이 어려운 환경에 배치됩니다. 이로 인해 에너지 효율성은 시스템 설계의 최우선 순위가 됩니다. 트래픽이 불균형하게 분배되면 특정 노드의 에너지가 조기에 고갈되어 네트워크 홀(Hole)이 발생하고, 전체 데이터 전송의 연결성과 신뢰성이 저하됩니다.
에 ...
6월 30일 21:29에 게시됨
ThinkPHP 프레임워크 프런트엔드 동적 유효성 검사 통합
웹 애플리케이션에서 사용자 경험을 향상시키고 데이터 무결성을 보장하기 위해 프런트엔드 유효성 검사는 필수적인 부분입니다. ThinkPHP 프레임워크는 강력한 모델 기반의 유효성 검사 기능을 제공하지만, 기본적으로 이 기능은 protected 접근 제어자로 보호되어 있어 컨트롤러나 뷰에서 직접 호출하기 어렵습니다. 이 문서에서는 ThinkPHP의 모델 유효성 검사 로직을 ...
6월 29일 21:02에 게시됨
PHP 약타입 비교 연산의 동작 원리와 보안 우회 기법
서론
PHP 의 동적 타입 특성은 개발 편의성을 제공하지만, 특정 상황에서는 예상치 못한 보안 취약점을 야기할 수 있습니다. 특히 값의 비교 연산 과정에서 일어나는 암묵적인 타입 캐스팅 현상은 웹 애플리케이션에서 인증 우회나 입력값 검증 무효화 등의 문제로 활용되곤 합니다. 본 글에서는 이러한 느슨한 비교(Loose Comparison) 로직이 어떻게 작동하는지 기술적으 ...
6월 28일 20:31에 게시됨
PHP에서 시스템 외부 명령 실행하기: exec(), passthru(), system(), shell_exec()
PHP에서는 시스템 외부 명령을 실행하는 네 가지 방법이 제공됩니다: exec(), passthru(), system(), 그리고 shell_exec(). 시작하기 전에, php.ini 파일에서 이러한 함수가 비활성화되어 있는지 확인해야 합니다. disable_functions 설정을 검사하세요:
disable_functions =
만약 위의 네 가지 함수 중 하나라도 disable_functions 목록에 포함되어 있다면, 이를 제거해 ...
6월 27일 05:24에 게시됨
jQuery를 활용한 비동기 크로스 도메인 폼 데이터 전송
웹 애플리케이션 개발 시, 한 도메인에서 수집한 사용자 정보를 다른 도메인의 서버로 전송해야 하는 경우가 자주 발생합니다. 이처럼 서로 다른 출처 간에 데이터를 주고받는 상황을 '크로스 도메인' 요청이라고 하며, 일반적인 AJAX 호출은 브라우저의 보안 정책으로 인해 제한됩니다. 본 문서에서는 jQuery를 이용해 비동기 방식의 크로스 도메인 폼 데이터 전송을 구 ...
6월 26일 17:15에 게시됨
위챗페이 JSAPI 결제 설정과 OpenID 획득
위챗페이 상품 활성화
먼저 위챗페이에서 위챗페이 판매자로 등록해야 합니다.
구체적인 결제 제품 선택
판매자 계정 생성 후 관리 페이지에서 JSAPI와 같은 구체적인 결제 제품을 선택하고 사용 신청을 해야 합니다.
공식 계정 연동
이 단계는 선택 사항이며, 특정 결제 제품이 공식 계정과의 상호 작용을 필요로 하는지에 따라 다릅니다. 예를 들어 JSAPI는 공식 계정 지 ...
6월 24일 05:43에 게시됨
PHP에서 CSRF 공격 및 중복 폼 제출 방지를 위한 토큰 기반 보안 처리
웹 애플리케이션 개발 시 사용자의 폼 데이터가 의도치 않게 중복 전송되거나, 외부 사이트로부터 위조된 요청이 발생하는 것을 막는 것은 보안 측면에서 매우 중요합니다. PHP에서는 세션 기반의 토큰(Token) 메커니즘을 활용해 이러한 문제를 효과적으로 해결할 수 있습니다.
토큰의 역할과 원리
토큰은 무작위로 생성되는 문자열로, 주로 사용자 세션에 저장되어 ...
6월 24일 03:57에 게시됨