Search Results for 'SQL Injection'

ATOM Icon

1 POSTS

  1. 2007/03/16 ZeroBoard 취약점 by 장현준

ZeroBoard 취약점

제로보드 pl8에서 취약점이 발견 되었다.
이상한건.. 이 취약점에 대해서 언급이 전혀 되어 있질 않고 패치 파일 하나만 달랑 있는것이다..

그렇다면 무엇인 문제일까???

우선 패치된 부분을 보자.

기존 소스 (download.php)
mysql_query("update $t_board"."_$id set download".$filenum."=download".$filenum."+1 where no='$no'");


패치된 소스 (download.php)
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'");
}


달라진 부분은 $filenum 을 사용하는 곳인데..
이 변수를 필터링 하지 않는다는 것이다.
(zeroboard의 가장 큰 실수는 get방식을 쓰면서 필터링을 안한다는거..)

내가 사용하고 있는 php + mysql 버전에서는 쿼리를 한번에 2개 이상 날릴 수 없으므로
(기존의 php + mysql 조합에서 한번에 쿼리를 한번씩만 날릴 수 있는걸로 알고 있으며(최소한 내가 알기로는 그렇다), 실제로 시도해봐도 되지 않는다. 아니라면 리플 바람)
보면 그리 큰 문제가 될꺼 같진 않지만..

그렇다면 이제부터 간단한 공격을 시작해보자.

http://victim/zb_path/download.php?id=board_id&no=article_no&............filenum=1=99999 where no=article_no --&HTTP_REFERER=http://victim


filenum에 1또는 2, 그 뒤에 오는 99999는 download 횟수, article_no는 실제 게시물 번호.. 등등이다.
HTTP_REFERER는 zb에서 체크하기 때문에 임의대로 넣어줘야 한다.

이렇게 하면 게시물의 download 횟수가 99999로 바뀐것을 볼 수 있다.

자, 그렇다면 이게 다인가?..
조회수 올리기 위해서 이짓거리를 해야 하는가?
이런 의문이 든다면.. 지금 당장 zb설치 후 mysql에 들어가서..

describe zetyx_board_board_id;


라고 쳐보자.. 아이디어가 떠오르지 않는가..ㅋㅋ
처음에는 큰 문제가 될꺼 같지 않게 보여도 이걸 보면 많은 문제가 된다.
아마도 이런 문제들이 큰 파급효과를 일으키지 않을까 싶어서... 공개를 안한게 아닐까... 하는 생각이다.
(단순히 귀찮아서 안했을지도-_-)
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 장현준

2007/03/16 08:30 2007/03/16 08:30
, , , ,
Response
No Trackback , No Comment
RSS :
http://b4you.net/blog/rss/response/75


블로그 이미지

빗소리를 먹는 사람.

- 장현준

Notices

Archives

Authors

  1. 장현준

Recent Trackbacks

  1. 듀얼클러치의 생각 rsvin28's me2DAY 2009

Calendar

«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Site Stats

Total hits:
158023
Today:
93
Yesterday:
228