리주누
173
2019-08-26 13:41:57
15
1208

회사 홈페이지가 공격당했습니다.


id=999999.9 /**/uNiOn/**/aLl /**/sElEcT 0x393133353134353632312e39,0x393133353134353632322e39,0x393133353134353632332e39,0x393133353134353632342e39,0x393133353134353632352e39,0x393133353134353632362e39,0x393133353134353632372e39,0x393133353134353632382e39,0x393133353134353632392e39,0x39313335313435363231302e39,0x39313335313435363231312e39,0x39313335313435363231322e39,0x39313335313435363231332e39,0x39313335313435363231342e39,0x39313335313435363231352e39,0x39313335313435363231362e39,0x39313335313435363231372e39,0x39313335313435363231382e39,0x39313335313435363231392e39,0x39313335313435363232302e39,0x39313335313435363232312e39,0x39313335313435363232322e39,0x39313335313435363232332e39,0x39313335313435363232342e39,0x39313335313435363232352e39,0x39313335313435363232362e39,0x39313335313435363232372e39,0x39313335313435363232382e39,0x39313335313435363232392e39


지금 자사 홈페이지에는 방문자들의 아이피와 접속정보들을 하나하나 수집해 테이블에 저장해놓고 있습니다.

근데 그테이블에 이러한 URL이 찍혀있는것을 보았고 구글링해본결과 sql injection  공격이 들어온거라고합니다만...

이러한 공격 로그 보는법과 해결방안 아시는분 계신가해서 글을 써봅니다...


홈페이지는 get 파라미터 페이징을 하기도하고 게시물타입을 가지고 옵니다...

 즉 파라미터가 DB 검색조건을 담당하고 있는 부분들이 많습니다 ㅠ  입사한지 6개월 된 신입이라 도저히 모르겟습니다. ㅠ 도와주세요 ㅠ 


0
  • 답변 15

  • 동대
    1k
    2019-08-26 13:46:18

    공격 당해서 피해가 없다면 공격 당하는것도 나쁘진 않습니다. ㅎㅎ

    sql 인젝션 방어에 관련해서 구글링해서 보시고 OWASP도 검색해서 한번보세요. 

  • 김모씨
    3k
    2019-08-26 13:52:09

    보안전문가를 불러야 하는게 아까워서 신입을 시켰습니다.

  • 리주누
    173
    2019-08-26 13:56:08

    제가 할 수 있는게 아무것도 없습니다 ㅠ 

  • 동대
    1k
    2019-08-26 14:02:04

    리주누 // 

    이전에 레거시 PHP  사용하시던데 쿼리문에서 직접 $_GET["variable"] 로 쿼리 날리고 있는지부터 확인해보십시요. 그리고 아래 링크 약간 도움될꺼 같아 첨부합니다.


    https://offbyone.tistory.com/1

  • AI...
    1k
    2019-08-26 14:04:25

    홈페이지요? 그냥 회사 소개정도인가요? 아니면 뭘 팔고 하나요?

  • hhj
    513
    2019-08-26 14:05:20

    걍 상급자한테 쿼리 이상하게 들어온것같다고 얼른 말해주는게좋을듯

  • 리주누
    173
    2019-08-26 14:06:13

     PG가 연결되어있는....홈페이지요 

  • 리주누
    173
    2019-08-26 14:14:01

    동대 //

    회사 소스코드들이 이런식으로 거의 이루어져 있습니다 

    @extract($_GET);

    이 함수를 써서 $_GET 파라미터를 변수처럼 사용합니다 

    $STX가 get파라미터구요... ㅠ 

    $sql = " select  * from  mari_board where bo_table='notice'";
    $bbs_config = sql_fetch($sql, false);
    $sql_common = " from mari_write ";
    $sql_search = " where (1) ";
    
    if ($stx) {
    	$sql_search .= " and ( ";
    	$sql_search .= " (w_subject like '%$stx%') || (w_content2 like '%$stx%') ";
    	$sql_search .= " ) ";
    
    }
  • 동대
    1k
    2019-08-26 14:19:01 작성 2019-08-26 14:22:12 수정됨

    리주누 // 

    ㅎㅎㅎ 좀 난감하겄네요, 간단한 이스케이프 함수 구글링해서 찾으신 다음에 적용해보시는건 어떨까 합니다. 일단 사이트 공격들어온건 윗선에 보고하시구요. 테스트서버, 본서버로 나뉘어져 있을거 같지도 않지만 본서버에서는 에러나 워닝 출력하고 있다면 다 안 뜨게 설정해두세요. 


    OWASP에서 인젝션 부분은 한번 정독하시고 인젝션 자체가 일단 에러 출력하게끔 해뒀을 때 정말 위험한 공격입니다. 

  • 리주누
    173
    2019-08-26 14:35:32

    동대 

    OWASP  10대 어플리케이션 공격 부분 샘플로 돌려봣는데 의도치않은 XSS 공격이되네요....하 ...할말이없습니다... 모든 페이지가 이럴거라고 생각하니 까마득하네요 ㅠ 


    아스키 허 감사합니다 지금 나와있는대로 sql 좀 나두고 그러는데 모든 sql처리를 한곳에 하더라구요... 만이천줄...정도 백단을 고치려니 하... 정말 감사합니다 ㅠㅠ 그래도 빛은 보이네요 ㅠ 

  • 동대
    1k
    2019-08-26 14:45:19

    리주누 // 

    막막하시긴 하겠지만 그러면서 배우는겁니다. ㅎㅎ

    개발하다보면 남이 그렇게 사고친거 수습하는 경우가 많아요. 많이 짜증나긴 하지만 저는 그러면서 배우는게  많더라구요. 처리는 본인이 하셔도 위에 꼭 보고해서 고과라도 좋게 받도록하세요.  

  • 리주누
    173
    2019-08-26 16:45:34

    동대  감사합니다 보안이라곤 하나도 몰랐는데 ㅠㅠ 

  • 동대
    1k
    2019-08-26 16:48:39

    리주누 //

    보안도 계층에 따라 내가 알아야하는 보안도 있고 몰라도 되는 보안도 있습니다. 웹개발자라면 OWASP의 항목정도는 알아야 한다고 생각합니다. 

  • spaceLamb
    945
    2019-08-28 00:45:52

    이거 뽐x도 당한거 ㅋ

    기초적인 공격입니다. 

  • 로그인을 하시면 답변 을 등록할 수 있습니다.