사이트 내 전체검색
PHP
[제로보드] download.php 보안패치+ SQL 인젝션 패치 (2007.05.09)
로빈아빠
https://cmd.kr/php/636 URL이 복사되었습니다.

본문

제로보드 홈페이지에 등록된 내용입니다.  ########################

일전 download.php의 sql injection 문제에 대해 패치를 하면서 띄워쓰기를 잘못하여 다운로드 동작이 정상적으로 되지 않던 문제가 발생하였습니다.
많은 분들이 통보를 해주셨는데 제가 미처 확인하지 못하고 있다가 이제야 수정된 파일을 올립니다.
너무 죄송합니다.

그리고 zboard.php, _head.php, member_memo3.php 파일에서 $s_que변수가 별도의 초기화 없이 사용되어 역시 SQL injection 보안 버그가 있음을 알려주셔서 lib.php 에서 $s_que변수를 초기화하도록 수정하였습니다.

첨부된 20070509.patch.zip 파일의 압축을 풀면  download.php, lib.php 2개의 파일이 나오는데 이를 기존 사용하시던 제로보드에 덮어써주시면 됩니다.

다운로드 패치 오류 신고해주신 이동하님과 $s_que변수를 이용한 취약점을 알려주신 조주봉님, 그리고 관련된 모든 분들께 감사하다는 말씀드립니다.

 

==================== 해피정닷컴 작성 ====================

lib.php 파일에 39번 줄부터 41번 줄까지 추가되었습니다.
/*******************************************************************************
  * 기본 변수 초기화. (php의 오류같지 않은 오류 때문에;; ㅡㅡ+) *****************************************************************************/
unset($member);
unset($group);
unset($setup);
unset($s_que);  // 2007. 5. 9 패치
    $select_arrange = str_replace(array("'",'"','\\'),'',$select_arrange);  // 2007. 5. 9 패치
    if(!in_array($desc,array('desc','asc'))) unset($desc);  // 2007. 5. 9 패치
/*******************************************************************************


download.php
// 패치전 내용
// 현재글의 Download 수를 올림;;
mysql_query("update $t_board"."_$id set download".$filenum."=download".$filenum."+1 where no='$no'");

$data=mysql_fetch_array(mysql_query("select * from  $t_board"."_$id  where no='$no'"));


// 2007. 5. 9 패치
// 현재글의 Download 수를 올림;;
    if($filenum==1) {
        mysql_query("update `$t_board"."_$id` set download1=download1+1 where no='$no'");
    } else {
        mysql_query("update `$t_board"."_$id` set download2=download2+1 where no='$no'");
    }

$data=mysql_fetch_array(mysql_query("select * from  `$t_board"."_$id` where no='$no'"));

댓글목록

등록된 댓글이 없습니다.

PHP
871 (7/18P)

Search

Copyright © Cmd 명령어 18.189.188.36