tb_token.php 파일과 동일한 내용에 아래 몇가지가 추가되어서 mb_token.php 파일이 생성되어 있어 이게 뭔가보니
echo $token1;
echo $token2;
두가지가 다르더군요
무심코 넘어가기 쉽게 파일이름이나 내용이나 교묘해 보고도 몰랐어요 ㅠ.ㅠ
또다른 위변조 파일이 있나 찾아보니 이거뿐이라 일단 글 올려봅니다.
쉘스크립트이면 아파치에 기록이 남는데 그것도 없는걸 보니 웹페이지를 통한 접근 같은데 이런 개구멍을 만들다니
이걸로 어떻게 데이타폴더에 파일을 심고 그 파일로 디비 mb_id 값을 모두 변형시켜버렸습니다.
참고로 제 아는 친구는 게시판이 초토화되었습니다.
제가 궁금한 건 이걸로 어떻게 데이타폴더/세션폴더에 파일을 심을 수 있는지
그 파일로 디비를 컨트롤해 base64 인코드를 한 건지 그걸 알수가 없네요 ㅠ.ㅠ
3일동안 이거 때문에 골아파 죽갔네요 혹 이와 비슷한 사례가 있으신지요
어찌 처리를 하셨는지 궁금하네요
참고로 데이타폴더에 생성된 파일은 에니XX사이트 이름입니다
<?
include_once("./_common.php");
// 토큰 생성
// 오류는 write_log() 로 잡는다.
include_once("$g4[path]/lib/etc.lib.php");
//write_log("$g4[path]/lib/log/aaa", 1);
if (isset($g4['token_time']) == false)
$g4['token_time'] = 3;
$sql = " delete from $g4[token_table]
where to_datetime < '".date("Y-m-d", $g4[server_time] - 86400 * $g4['token_time'])."' ";
sql_query($sql);
$sql = " select count(*) as cnt from $g4[token_table]
where to_ip = '$_SERVER[REMOTE_ADDR]' ";
$row = sql_fetch($sql);
if ($row[cnt] >= 100)
return;
$i=0;
while(1) {
$token = md5(uniqid(rand(), true));
$sql = " insert into g4_token
set to_token = '$token',
to_datetime = '{$g4['time_ymdhis']}',
to_ip = '$_SERVER[REMOTE_ADDR]' ";
$result = sql_query($sql, FALSE);
if ($result)
break;
// 무한루프방지
if ($i++ >= 10)
break;
}
echo $token;
echo $token1;
echo $token2;
?>
댓글 6개
게시글 목록
| 번호 | 제목 |
|---|---|
| 1717629 | |
| 1717626 | |
| 1717625 | |
| 1717621 | |
| 1717619 | |
| 1717611 | |
| 1717610 | |
| 1717609 | |
| 1717607 | |
| 1717601 | |
| 1717598 | |
| 1717591 | |
| 1717590 | |
| 1717583 | |
| 1717575 | |
| 1717572 | |
| 1717568 | |
| 1717566 | |
| 1717549 | |
| 1717545 | |
| 1717533 | |
| 1717512 | |
| 1717511 | |
| 1717508 | |
| 1717495 | |
| 1717479 | |
| 1717473 | |
| 1717470 | |
| 1717463 | |
| 1717452 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기