프로그래밍

 3198, 1/160 회원가입  로그인  
   bigshott
   php 취약한 소스 질문 드립니다.

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3067 [복사]


안녕하세요~

날씨도 더워지는데 다들 잘 계시는지요 ^^

다름이 아니라 php 간단한 소스인데요~

외국사이트 다니다가 보니 취약하다고 나와 있어서 궁금해서 질문드립니다.

system("echo 'hello $var'");

바로 위 소스인데요~

$var 안에 어떤 문자를 넣는다고 해도 결과는 그냥 echo에 의해 화면에 출력 되어 버리구요~

system 명령은 실행이 되지 않습니다.

먼가 취약한것 같기는 한대요~

고수님들 보시고 참조 할만한 페이지나  조언 좀 부탁드립니다. ^^

수고하세요~!


  Hit : 3825     Date : 2011/06/17 10:46



    
nsh009 변수 2011/06/17  
kjwon15 $var="some text ; cat /etc/passwd >> /var/www/passwd.txt";

이런식으로 한다면 문제가 발생하죠
2011/06/17  
늅늅 var가 사용자 입력을 받는변수가 아니라면야
;cat /etc/passwd >> /var/www/passwd.txt
같은것이 뭐 통하리라고는 생각되지않는데
hello $var 로 봐서는 사용자의 이름을 입력받고 hello 이름
이런식으로 하실 것같네요 그런경우에는 kjwon15님이 말씀하신것과 같은 취약점이 존재합니다
이름에는 특수문자가 들어갈 확률이 거의 없으므로 (중국에서 예전에 이름을 @ 로 지은사례있음)
addslashes 함수로 대비해놓으시면 될듯싶습니다
2011/06/17  
bigshott 그렇게는 해봤지만 안됩니다. kjwon15님 처럼 넣는다고 해도
system("echo 'hello some text ; cat /etc/passwd >> /var/www/passwd.txt'");

이런식으로 ' ' 안에 들어가기 때문에 그대로 화면에

hello some text ; cat /etc/passwd >> /var/www/passwd.txt
이렇게 찍혀서 나오게 됩니다.

취약점이 없는거 같기도 한대요~ 구글링 몇일째 하고 있어도 답이 안나오네요 ㅜㅠ

바쁘신데 답변 주셔서 정말 감사드립니다.
좋은 하루 되세요~
2011/06/21