modsecurity unicode sql injection

웹사이트를 만들고, 한글을 post로 넘길 때, 유니코드로 넘어가게됩니다.

이 과정에서 modsecurity가 설치 되어 있는 경우 유니코드를 sql injection으로 탐지하는 경우가 있는데요.

아래와 같이 탐지 룰을 조정하면 해결 가능합니다.

기존

"(^[\"'`´’‘;]+|[\"'`´’‘;]+$)"

변경

"(^(?:(?&QC)|;)+|(?:(?&QC)|;)+$)(?(DEFINE)(?'QC'(?:[\"'`]|\xC2?\xB4|\xE2\x80(?:\x99|\0x98))))"

 

출처 : https://github.com/SpiderLabs/owasp-modsecurity-crs/issues/21

PHP에서 POWERSHELL SCRIPT 실행하기

환경 :  WINDOWS 2012 R2 + PHP + IIS

윈도우에서 사용하는 POWERSHELL(PS1) 스크립트를 PHP가 실행하여 해당 결과를 리턴받아 사용자에게 표시하는 기능이 필요했습니다.

일반적으로 리눅스에서는 exec(), shell_exec(), system()과 같은 함수를 사용하셔 bash script를 손쉽게 호출했고, 결과 값을 받아서 사용했었는데요.

윈도우에 해당 사항을 적용해보니 제대로 결과 값을 리턴하지 못하는 현상을 확인했습니다.

해당 스크립트 뒤에 2>&1 만 추가하면 파워쉘 실행후 파워쉘에서 결과를 리턴받아 웹에 출력이 가능합니다.

$output = shell_exec(‘powershell “get-user “testing” 2>&1“‘);

$fp = shell_exec(“$command 2>&1“);

 

출처 : http://stackoverflow.com/questions/2360228/php-to-powershell-using-shell-exec