KR102433386B1 - Apparatus and method for analyzing vulnerabilities - Google Patents

Apparatus and method for analyzing vulnerabilities Download PDF

Info

Publication number
KR102433386B1
KR102433386B1 KR1020200126210A KR20200126210A KR102433386B1 KR 102433386 B1 KR102433386 B1 KR 102433386B1 KR 1020200126210 A KR1020200126210 A KR 1020200126210A KR 20200126210 A KR20200126210 A KR 20200126210A KR 102433386 B1 KR102433386 B1 KR 102433386B1
Authority
KR
South Korea
Prior art keywords
url address
response data
server
vulnerability
diagnosis
Prior art date
Application number
KR1020200126210A
Other languages
Korean (ko)
Other versions
KR20220042861A (en
Inventor
강봉구
이민섭
장원태
안준
윤지환
Original Assignee
네이버클라우드 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네이버클라우드 주식회사 filed Critical 네이버클라우드 주식회사
Priority to KR1020200126210A priority Critical patent/KR102433386B1/en
Publication of KR20220042861A publication Critical patent/KR20220042861A/en
Application granted granted Critical
Publication of KR102433386B1 publication Critical patent/KR102433386B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 출원은 취약점 진단을 위한 취약점 진단방법 및 이를 위한 진단장치에 관한 것으로서, 본 발명의 일 실시예에 의한 취약점 진단방법은, 진단대상 서버로부터 추출한 진단대상 URL(Uniform Resource Locator) 주소를 수신하는 단계; 상기 진단대상 URL 주소에 대한 응답을 상기 진단대상 서버에게 요청하여, 기준 응답데이터로 저장하는 단계; 상기 진단대상 URL 주소 내 포함된 파라미터를 변조하여, 동일한 경로를 나타내는 상대경로(relative path) 형식의 제1 변조 URL 주소를 생성하는 단계; 상기 제1 변조 URL 주소에 대한 응답을 상기 진단대상 서버에게 요청하여, 제1 응답데이터로 저장하는 단계; 및 상기 기준 응답데이터와 제1 응답데이터가 불일치하면, 상기 진단대상 서버는 상기 LFI 취약점이 없는 것으로 판별하는 단계를 포함할 수 있다. The present application relates to a method for diagnosing a vulnerability for diagnosing a vulnerability and a diagnostic apparatus for the same. The method for diagnosing a vulnerability according to an embodiment of the present invention comprises the steps of receiving a URL (Uniform Resource Locator) address for diagnosis extracted from a server for diagnosis. ; requesting a response to the diagnosis target URL address from the diagnosis target server and storing it as reference response data; generating a first modulated URL address in the form of a relative path indicating the same path by modulating parameters included in the diagnosis target URL address; requesting a response to the first forged URL address from the server to be diagnosed and storing it as first response data; and when the reference response data and the first response data do not match, determining that the server to be diagnosed does not have the LFI vulnerability.

Description

취약점 진단방법 및 이를 위한 진단장치 {Apparatus and method for analyzing vulnerabilities}{Apparatus and method for analyzing vulnerabilities}

본 출원은 LFI(Local File Inclusion) 취약점을 진단할 수 있는 취약점 진단방법 및 이를 위한 진단장치에 관한 것이다. The present application relates to a method for diagnosing a vulnerability capable of diagnosing a Local File Inclusion (LFI) vulnerability, and a diagnostic apparatus for the same.

최근 웹 서비스가 범람하고 웹 인터페이스가 사용자에게 친숙해짐에 따라 전통적 응용프로그램이 웹 기반 시스템으로 통합이 가속화되고 있다. 이러한, 웹 서비스의 발전 속에 웹 어플리케이션 자체의 문제점, 프로그래머의 보안에 대한 무지, 방화벽에서의 차단 불능, 침입탐지 회피 그리고 해킹 도구의 다양화와 같은 역기능이 심각한 문제점으로 부각되고 있다.With the recent proliferation of web services and user-friendly web interfaces, the integration of traditional applications into web-based systems is accelerating. In the development of web services, the problems of web applications themselves, programmers' ignorance of security, inability to block in firewalls, intrusion detection evasion, and adverse functions such as diversification of hacking tools are emerging as serious problems.

웹 어플리케이션에 대한 다양한 형태의 공격을 방지하기 위해서는 URL(Uniform Resource Locator)에 포함되어 있는 각 파라미터 별로 공격 코드가 침입하는 것을 차단하여야 하며, 각 파라미터 별로 공격 코드의 침입을 원천적으로 차단하기 위해서는 무엇보다도 각 URL에 포함된 모든 파라미터에 대해 각 공격 유형별로 취약성이 존재하는지 여부의 판단이 선행되어야 한다.In order to prevent various types of attacks on web applications, it is necessary to block the intrusion of the attack code by each parameter included in the URL (Uniform Resource Locator). For all parameters included in each URL, it is necessary to first determine whether vulnerabilities exist for each attack type.

본 출원은, 진단대상 URL 주소를 실질적으로 동일한 상대경로를 포함하는 변조 URL 주소로 변환하여, LFI 취약점을 진단할 수 있는 취약점 진단방법 및 이를 위한 진단장치를 제공하고자 한다.An object of the present application is to provide a method for diagnosing a vulnerability capable of diagnosing an LFI vulnerability by converting a diagnostic target URL address into a forged URL address including substantially the same relative path, and a diagnostic apparatus for the same.

본 출원은, 기존의 보안 솔루션 등을 우회하여 LFI 취약점을 진단할 수 있는 취약점 진단방법 및 이를 위한 진단장치를 제공하고자 한다. An object of the present application is to provide a method for diagnosing a vulnerability capable of diagnosing an LFI vulnerability by bypassing an existing security solution, and a diagnostic apparatus for the same.

본 발명의 일 실시예에 의한 취약점 진단방법은, LFI(Local File Inclusion) 취약점을 진단하는 진단장치의 취약점 진단방법에 관한 것으로, 진단대상 서버로부터 추출한 진단대상 URL(Uniform Resource Locator) 주소를 수신하는 단계; 상기 진단대상 URL 주소에 대한 응답을 상기 진단대상 서버에게 요청하여, 기준 응답데이터로 저장하는 단계; 상기 진단대상 URL 주소 내 포함된 파라미터를 변조하여, 동일한 경로를 나타내는 상대경로(relative path) 형식의 제1 변조 URL 주소를 생성하는 단계; 상기 제1 변조 URL 주소에 대한 응답을 상기 진단대상 서버에게 요청하여, 제1 응답데이터로 저장하는 단계; 및 상기 기준 응답데이터와 제1 응답데이터가 불일치하면, 상기 진단대상 서버는 상기 LFI 취약점이 없는 것으로 판별하는 단계를 포함할 수 있다. A vulnerability diagnosis method according to an embodiment of the present invention relates to a vulnerability diagnosis method of a diagnosis apparatus for diagnosing LFI (Local File Inclusion) vulnerabilities, and comprises receiving a diagnosis target URL (Uniform Resource Locator) address extracted from a diagnosis target server. step; requesting a response to the diagnosis target URL address from the diagnosis target server and storing it as reference response data; generating a first modulated URL address in the form of a relative path indicating the same path by modulating parameters included in the diagnosis target URL address; requesting a response to the first forged URL address from the server to be diagnosed and storing it as first response data; and when the reference response data and the first response data do not match, determining that the server to be diagnosed does not have the LFI vulnerability.

본 발명의 일 실시예에 의한 진단장치는, 진단대상 서버에 대한 LFI(Local File Inclusion) 취약점을 진단하는 진단장치에 관한 것으로, 진단대상 서버로부터 추출한 진단대상 URL(Uniform Resource Locator) 주소를 수신하는 URL 수집부; 상기 진단대상 URL 주소 내 포함된 파라미터를 변조하여, 동일한 경로를 나타내는 상대경로(relative path) 형식의 제1 변조 URL 주소를 생성하는 URL 변조부; 및 상기 진단대상 서버로 상기 진단대상 URL 주소와, 상기 제1 변조 URL 주소에 대한 응답을 각각 요청하고, 상기 응답이 서로 불일치하면 상기 진단대상 서버는 상기 LFI 취약점이 없는 것으로 판별하는 진단부를 포함할 수 있다. A diagnostic apparatus according to an embodiment of the present invention relates to a diagnostic apparatus for diagnosing LFI (Local File Inclusion) vulnerabilities for a diagnostic target server, and is configured to receive a diagnostic target URL (Uniform Resource Locator) address extracted from a diagnostic target server. URL collection unit; a URL modulator for generating a first modulated URL address in a relative path format indicating the same path by modulating parameters included in the diagnosis target URL address; and a diagnosis unit that requests a response to the diagnosis target URL address and the first forged URL address from the diagnosis target server, and determines that the diagnosis target server does not have the LFI vulnerability if the responses do not match can

덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.Incidentally, the means for solving the above problems do not enumerate all the features of the present invention. Various features of the present invention and its advantages and effects may be understood in more detail with reference to the following specific embodiments.

본 발명의 일 실시예에 의한 취약점 진단방법 및 이를 위한 진단장치는, 진단시 별도의 경로 이동을 수행하지 않으므로, 경로 이동을 의미하는 문자열에 대한 필터링을 우회할 수 있으며, 웹루트 경로 차단에 영향을 받지 않고 LFI 취약점을 진단할 수 있다. Since the method for diagnosing vulnerabilities and the diagnostic apparatus therefor according to an embodiment of the present invention does not perform a separate path movement during diagnosis, it is possible to bypass the filtering of the character string indicating the path movement and affect blocking of the web root path. You can diagnose LFI vulnerabilities without receiving

본 발명의 일 실시예에 의한 취약점 진단방법 및 이를 위한 진단장치는, LFI 취약점 진단을 위한 공격시, 진단대상 URL 주소와 실질적으로 동일한 페이지를 요청하므로, 진단대상 서버의 보안솔루션 등에 의해 공격이 용이하게 차단되는 것을 방지할 수 있다. 따라서, 보다 효과적으로 LFI 취약점에 대한 진단을 수행하는 것이 가능하다. In the case of an attack for diagnosing an LFI vulnerability, the method for diagnosing a vulnerability and a diagnostic device for the same according to an embodiment of the present invention request a page substantially identical to the URL address to be diagnosed, so that the attack is easy by the security solution of the server to be diagnosed. blockage can be prevented. Therefore, it is possible to more effectively perform the diagnosis of the LFI vulnerability.

다만, 본 발명의 실시예들에 따른 취약점 진단방법 및 이를 위한 진단장치가 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the effects that can be achieved by the method for diagnosing vulnerabilities and the diagnostic apparatus therefor according to the embodiments of the present invention are not limited to those mentioned above, and other effects not mentioned above are derived from the description below. It will be clearly understood by those of ordinary skill in the art.

도1은 본 발명의 일 실시예에 의한 취약점 진단 시스템을 나타내는 개략도이다.
도2는 본 발명의 일 실시예에 의한 진단장치를 나타내는 블록도이다.
도3은 본 발명의 일 실시예에 의한 취약점 진단 방법을 나타내는 순서도이다.
도4 내지 도6은 본 발명의 일 실시예에 의한 취약점 진단 방법에서, LFI 취약점의 정탐여부를 검증하는 방법을 나타내는 순서도이다.
1 is a schematic diagram illustrating a vulnerability diagnosis system according to an embodiment of the present invention.
2 is a block diagram illustrating a diagnostic apparatus according to an embodiment of the present invention.
3 is a flowchart illustrating a vulnerability diagnosis method according to an embodiment of the present invention.
4 to 6 are flowcharts illustrating a method of verifying whether an LFI vulnerability is scouted in the vulnerability diagnosis method according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 즉, 본 발명에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.Hereinafter, the embodiments disclosed in the present specification will be described in detail with reference to the accompanying drawings, but the same or similar components are assigned the same reference numbers regardless of reference numerals, and redundant description thereof will be omitted. The suffixes "module" and "part" for components used in the following description are given or mixed in consideration of only the ease of writing the specification, and do not have distinct meanings or roles by themselves. That is, the term 'unit' used in the present invention means a hardware component such as software, FPGA, or ASIC, and 'unit' performs certain roles. However, 'part' is not limited to software or hardware. The 'unit' may be configured to reside on an addressable storage medium or it may be configured to refresh one or more processors. Thus, as an example, 'part' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. Functions provided within components and 'units' may be combined into a smaller number of components and 'units' or further divided into additional components and 'units'.

또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.In addition, in describing the embodiments disclosed in the present specification, if it is determined that detailed descriptions of related known technologies may obscure the gist of the embodiments disclosed in the present specification, the detailed description thereof will be omitted. In addition, the accompanying drawings are only for easy understanding of the embodiments disclosed in the present specification, and the technical spirit disclosed herein is not limited by the accompanying drawings, and all changes included in the spirit and scope of the present invention , should be understood to include equivalents or substitutes.

도1은 본 발명의 일 실시예에 의한 취약점 진단 시스템을 나타내는 개략도이다. 1 is a schematic diagram illustrating a vulnerability diagnosis system according to an embodiment of the present invention.

도1을 참조하면, 본 발명의 일 실시예에 의한 취약점 진단 시스템은, 진단장치(100) 및 진단대상서버(200)를 포함할 수 있다.Referring to FIG. 1 , the vulnerability diagnosis system according to an embodiment of the present invention may include a diagnosis apparatus 100 and a diagnosis target server 200 .

이하, 도1을 참조하여 본 발명의 일 실시예에 의한 취약점 진단시스템을 설명한다. Hereinafter, a vulnerability diagnosis system according to an embodiment of the present invention will be described with reference to FIG. 1 .

진단장치(100)는 진단대상 서버(200)를 진단하여, 진단대상 서버(200)가 제공하는 웹 페이지, 웹 어플리케이션 등의 취약점을 추출할 수 있다. 즉, 진단대상 서버(200)의 하드웨어 또는 소프트웨어의 결함이나 설계상의 허점으로 인하여, 단말장치(1)의 사용자에게 허용된 권한 이상의 동작이나 허용된 범위 이상의 정보 열람, 변조, 유출을 가능하게 하는 약점에 대한 점검을 수행할 수 있다.The diagnosis apparatus 100 may diagnose the diagnosis target server 200 and extract vulnerabilities such as web pages and web applications provided by the diagnosis target server 200 . That is, due to defects in hardware or software of the diagnosis target server 200 or flaws in design, the user of the terminal device 1 operates more than the permitted authority, or a weakness that enables the reading, falsification, and leakage of information beyond the permitted range. can be checked for.

진단장치(100)는 복수의 진단모듈들을 포함할 수 있으며, 각각의 진단모듈들을 통하여 LFI(Local File Inclusion), SQL(Structured Query Language) Injection, XSS(Cross Site Scripting), SSRF(Server Side Request Forgery) 등 다양한 종류의 취약점에 대한 진단을 수행할 수 있다. 여기서 각각의 진단모듈들은 진단대상 서버(200)에 대한 모의공격 등을 수행하여, 진단대상 서버(200)의 취약점을 진단할 수 있다.The diagnostic apparatus 100 may include a plurality of diagnostic modules, and through each diagnostic module, LFI (Local File Inclusion), SQL (Structured Query Language) Injection, XSS (Cross Site Scripting), SSRF (Server Side Request Forgery) ) and other types of vulnerabilities can be diagnosed. Here, each of the diagnostic modules may perform a simulated attack on the server 200 to be diagnosed, and the like to diagnose the vulnerability of the server 200 to be diagnosed.

진단대상 서버(200)는 네트워크를 통하여 다양한 종류의 단말장치(1)들과 연결될 수 있으며, 각각의 단말장치(1)들에게 웹 서비스 등을 제공하는 웹 서버일 수 있다. 진단대상 서버(200)는 웹 서비스 제공을 위한 복수의 웹 페이지들을 포함할 수 있으며, 진단대상 서버(10)에는 각각의 웹 페이지를 제공하기 위한 복수의 URL(Uniform Resource Locator) 주소들이 포함될 수 있다. The diagnosis target server 200 may be connected to various types of terminal devices 1 through a network, and may be a web server that provides a web service to each terminal device 1 . The diagnosis target server 200 may include a plurality of web pages for providing web services, and the diagnosis target server 10 may include a plurality of URL (Uniform Resource Locator) addresses for providing each web page. .

진단대상 서버(200)는 도1에 도시한 바와 같이 하드웨어와 소프트웨어 구성을 포함하는 별도의 물리적 구성으로 구현할 수 있다. 다만, 실시예에 따라서는 클라우드 서버 내의 가상머신으로 구현하는 것도 가능하다. The diagnosis target server 200 may be implemented as a separate physical configuration including hardware and software configurations as shown in FIG. 1 . However, depending on the embodiment, it is also possible to implement as a virtual machine in the cloud server.

클라우드 서버는 클라우드 컴퓨팅(Cloud Computing)을 제공하는 서버일 수 있다. 클라우드 컴퓨팅은 인터넷 기술을 활용하여 IT 자원을 서비스로 제공하는 컴퓨팅 기술로서, 소프트웨어, 스토리지, 서버, 네트워크 장비 등의 IT 자원을 필요한 만큼 빌려서 사용하고, 서비스 부하에 따라서 실시간 확장성을 지원받으면서 사용한 만큼 비용을 지불하는 기술에 해당한다. 즉, 클라우딩 컴퓨팅은 가상화 기술을 이용하여 물리적 서버에 복수의 가상머신(VM: Virtual Machine)들을 실행할 수 있으며, 각각의 가상머신들은 상이한 운영체제, 서비스 등을 제공하는 가상 데스크탑, 스토리지, 서버들을 각각 구현할 수 있다. The cloud server may be a server that provides cloud computing. Cloud computing is a computing technology that provides IT resources as a service by utilizing Internet technology. It borrows and uses IT resources such as software, storage, servers, and network equipment as much as necessary, and supports real-time scalability according to the service load. It is the technology that pays for it. That is, cloud computing can run a plurality of virtual machines (VMs) on a physical server using virtualization technology, and each virtual machine is a virtual desktop, storage, and server that provide different operating systems and services, respectively. can be implemented

클라우드 서버는 내부에 복수의 진단대상 서버(100) 서버들을 포함할 수 있으며, 각각의 진단대상 서버(100)는 상이한 웹 서비스 등을 제공하는 웹 서버로 동작할 수 있다. 나아가, 실시예에 따라서는, 진단장치(100)를 클라우드 서버 내의 가상머신으로 구현하는 것도 가능하다.The cloud server may include a plurality of servers for diagnosis target server 100 therein, and each server for diagnosis target 100 may operate as a web server that provides different web services and the like. Furthermore, according to an embodiment, the diagnosis apparatus 100 may be implemented as a virtual machine in a cloud server.

한편, LFI 취약점은 권한없는 사용자가 웹 서버 내부에 있는 파일을 임의로 로드(load)하여 실행하도록 허용하는 취약점에 해당한다. 즉, LFI 취약점은 웹 페이지 개발자가 개발해 둔 각각의 페이지들을 하나의 페이지에 로드하여 사용자에게 해당 페이지를 보여주는 과정에서 발생할 수 있다. 예를들어, 웹 서버 내부의 /web/이라는 경로에 board.php, menu.php, rank.php 등 다양한 페이지가 존재할 수 있으며, 개발자는 /web/이라는 경로 내의 main.php라는 페이지에 각각의 페이지들을 로드하여 사용자들에게 노출시킬 수 있다. 그러나, 개발자가 의도한 페이지가 아니라, 웹 서버 내부에 있는 별도의 파일을 파라미터의 인자로 전달하는 경우, 해당 파일이 노출될 수 있으며, 이 경우 LFI 취약점이 발생한 것으로 볼 수 있다.On the other hand, the LFI vulnerability corresponds to a vulnerability that allows an unauthorized user to arbitrarily load and execute a file in the web server. That is, the LFI vulnerability can occur in the process of loading each page developed by a web page developer into one page and displaying the corresponding page to the user. For example, various pages such as board.php, menu.php, rank.php, etc. may exist in the path of /web/ inside the web server, and the developer puts each page in the page called main.php in the path of /web/ You can load them and expose them to users. However, if a separate file inside the web server is passed as a parameter argument, not the page intended by the developer, the file may be exposed, and in this case, it can be considered that an LFI vulnerability has occurred.

예를들어, 정상적인 URL 주소가 "http://domian.com/main.php?page=board.php"인 경우, "board.php"가 사용자에게 노출된다. 다만, 공격자들은 파라미터를 변경하여, "http://domian.com/main.php?page=/etc/passwd" 와 같이 "/etc/passwd" 파일을 요청할 수 있다. 공격자들은 "http://domian.com/main.php?page=../../../../etc/passwd" 와 같이, 상위 디렉토리(directory)에 위치하는 "/etc/passwd" 파일에 접근하기 위한 상대경로 형식으로 요청할 수도 있다. 여기서, "/etc/passwd"는 사용자의 아이디, 패스워드 등 민감한 정보가 저장된 중요 파일에 해당하므로, LFI 취약점이 존재하는 웹 서버의 경우, "/etc/passwd" 파일을 로드하여 공격자에게 노출시키는 등의 문제점이 발생할 수 있다. For example, if the normal URL address is "http://domian.com/main.php?page=board.php", "board.php" is exposed to the user. However, attackers can change the parameters and request the "/etc/passwd" file like "http://domian.com/main.php?page=/etc/passwd". Attackers can use "/etc/passwd" located in the parent directory, such as "http://domian.com/main.php?page=../../../../etc/passwd". You can also request in the form of a relative path to access the file. Here, "/etc/passwd" corresponds to an important file that stores sensitive information such as user ID and password, so in the case of a web server with LFI vulnerability, it loads the "/etc/passwd" file and exposes it to attackers, etc. problems may arise.

종래에는 진단대상에 대한 LFI 취약점을 탐지하기 위해, 공격용 URL 주소를 생성하여 진단대상 서버(200)에게 응답을 요청한 후, 응답결과로부터 LFI 취약점의 존재여부를 판별하였다. 여기서, 공격용 URL 주소에는 웹 서버의 OS(Operating System)가 설치될 때 필수로 존재하는 중요 파일들의 이름과, 해당 중요 파일에 접근하기 위한 경로이동을 수행하도록 하는 "../../../" 등과 같은 상대경로(relative path)가 포함될 수 있다. Conventionally, in order to detect an LFI vulnerability for a diagnosis target, an attack URL address is generated, a response is requested from the diagnosis target server 200, and the existence of an LFI vulnerability is determined from the response result. Here, the attack URL address includes the names of important files that are essential when the OS (Operating System) of the web server is installed, and “../../.. Relative paths such as /" may be included.

다만, 중요 파일의 이름이나 상대경로 등을 포함하는 공격용 URL 주소들은, 기존의 보안 솔루션이나 보안 방화벽 등에서 용이하게 패턴화하여 감지될 수 있다. 즉, LFI 취약점 진단을 위한 공격이 쉽게 차단될 수 있으므로, 진단대상 서버(200)에 대한 효과적인 LFI 취약점 진단이 어려운 문제점이 존재한다. However, the URL addresses for attack including the name or relative path of an important file can be easily patterned and detected in an existing security solution or a security firewall. That is, since an attack for diagnosing the LFI vulnerability can be easily blocked, there is a problem in that it is difficult to effectively diagnose the LFI vulnerability for the server 200 to be diagnosed.

반면에, 본 발명의 일 실시예에 의한 진단장치(100)에 의하면, 기존의 보안 솔루션이나 보안 방화벽 등의 차단 방식을 우회하여 효과적으로 LFI 취약점을 진단하는 것이 가능하다. 이하 본 발명의 일 실시예에 의한 진단장치(100)를 설명한다. On the other hand, according to the diagnosis apparatus 100 according to an embodiment of the present invention, it is possible to effectively diagnose an LFI vulnerability by bypassing a blocking method such as an existing security solution or a security firewall. Hereinafter, a diagnosis apparatus 100 according to an embodiment of the present invention will be described.

도2는 본 발명의 일 실시예에 의한 진단장치를 나타내는 블록도이다. 2 is a block diagram illustrating a diagnostic apparatus according to an embodiment of the present invention.

도2를 참조하면, 본 발명의 일 실시예에 의한 진단장치는 URL 수집부(110), URL 변조부(120) 및 진단부(130)를 포함할 수 있다. Referring to FIG. 2 , the diagnosis apparatus according to an embodiment of the present invention may include a URL collection unit 110 , a URL modulator 120 , and a diagnosis unit 130 .

URL 수집부(110)는 진단대상 서버(200)로부터 추출한 진단대상 URL(Uniform Resource Locator) 주소를 수신할 수 있다. 진단대상 서버(200)에는 복수의 진단대상 URL 주소들이 포함될 수 있으며, URL 수집부(110)는 진단대상 서버(200)로부터 각각의 진단대상 URL 주소들을 수집할 수 있다. 실시예에 따라서는, 웹 크롤러(web crawler)를 이용하여 진단대상 URL 주소를 수집하는 것도 가능하다.The URL collection unit 110 may receive a diagnosis target uniform resource locator (URL) address extracted from the diagnosis target server 200 . The diagnosis target server 200 may include a plurality of diagnosis target URL addresses, and the URL collection unit 110 may collect respective diagnosis target URL addresses from the diagnosis target server 200 . According to an embodiment, it is also possible to collect the diagnosis target URL address using a web crawler.

URL 변조부(120)는 진단대상 URL 주소 내 포함된 파라미터를 변조하여, 동일한 경로를 나타내는 상대경로 형식의 제1 변조 URL 주소를 생성할 수 있다. 즉, URL 변조부(120)는 진단대상 서버(200)에 대한 LFI 취약점을 진단하기 위하여, 해당 파라미터가 위치하는 현재 디렉토리를 지시하는 식별자를 추가하는 방식으로 상대경로를 설정할 수 있다. The URL modulator 120 may modulate a parameter included in the diagnosis target URL address to generate a first modulated URL address in the form of a relative path indicating the same path. That is, the URL modulator 120 may set the relative path by adding an identifier indicating the current directory in which the corresponding parameter is located in order to diagnose the LFI vulnerability of the server 200 to be diagnosed.

구체적으로, URL 변조부(120)는 진단대상 URL 주소를 파싱할 수 있으며, 이를 통해 진단대상 URL 주소 내에 포함된 파라미터의 키(key)값과 밸류(value)값을 각각 추출할 수 있다. 여기서 추출한 해당 파라미터의 키값과 밸류값은 키-밸류 쌍으로 저장할 수 있다. 예를들어, 진단대상 URL 주소가 "http://test.com/test.php?menu=board" 일 때, 파라미터의 키값은 "menu"이고, 밸류값은 "board"에 해당한다. 따라서, {"menu":"board"}와 같이 키-밸류 쌍을 생성하여 저장할 수 있다. Specifically, the URL modulator 120 may parse the diagnosis target URL address, and through this, extract a key value and a value value of a parameter included in the diagnosis target URL address, respectively. The key value and value value of the corresponding parameter extracted here can be stored as a key-value pair. For example, when the diagnosis target URL address is "http://test.com/test.php?menu=board", the key value of the parameter is "menu" and the value corresponds to "board". Therefore, you can create and store a key-value pair like {"menu":"board"}.

이후, URL 변조부(120)는 키-밸류 쌍 중에서 밸류값에 현재 디렉토리를 지시하는 식별자를 추가하여 제1 변조 키-밸류 쌍을 생성할 수 있다. 즉, 앞선 예와 같이, {"menu":"board"}를 키-밸류 쌍으로 생성한 경우, 밸류값인 "board"에 현재 디렉토리를 지시하는 식별자인 "./"를 추가할 수 있다. 이 경우, 제1 변조 키-밸류 쌍은 {"menu":"./board"}와 같이 생성될 수 있다. Thereafter, the URL modulator 120 may generate the first modulation key-value pair by adding an identifier indicating the current directory to the value of the key-value pair. That is, as in the previous example, when {"menu":"board"} is created as a key-value pair, "./", an identifier indicating the current directory, may be added to the value "board". In this case, the first modulation key-value pair may be generated as {"menu":"./board"}.

제1 변조 키-밸류 쌍이 생성되면, URL 변조부(120)는 제1 변조 키-밸류 쌍으로 진단대상 URL 주소 내 파라미터를 치환하여, 제1 변조 URL 주소를 생성할 수 있다. 즉, 진단대상 URL 주소인 "http://test.com/test.php?menu=board"에서, {"menu":"board"}를 {"menu":"./board"}로 치환하는 것이므로, 제1 변조 URL 주소는 "http://test.com/test.php?menu=./board"와 같이 생성될 수 있다. When the first modulation key-value pair is generated, the URL modulator 120 may generate the first modulation URL address by substituting a parameter in the diagnosis target URL address with the first modulation key-value pair. In other words, in "http://test.com/test.php?menu=board", which is the URL address for diagnosis, {"menu":"board"} is replaced with {"menu":"./board"} Therefore, the first tampered URL address may be generated as "http://test.com/test.php?menu=./board".

일반적으로, URL 주소는 파라미터의 밸류값으로 로드할 페이지의 파일명을 직접 전달하여 페이지를 로드하도록 구성될 수 있다. 동일한 디렉토리 내에서는 파일명만 기재하면 로드가 가능하므로, 별도의 상대경로 등을 입력할 필요가 없는 것이다.In general, the URL address may be configured to load the page by directly passing the file name of the page to be loaded as a parameter value. In the same directory, it is possible to load only by writing the file name, so there is no need to input a separate relative path.

그러나, URL 변조부(120)는 로드할 페이지의 파일명이 아닌 상대경로를 포함하도록 변조하여 제1 변조 URL 주소를 생성할 수 있다. 즉, 현재 디렉토리를 지정하는 식별자인 "./"를 추가하여 상대경로 양식으로 수정하는 것이다. 이 경우, 동일한 디렉토리 내에서 위치하는 페이지를 로드하는 점에서 실질적으로 동일하지만, 상대경로 양식으로 수정된 점에서 차이점이 존재한다. However, the URL modulator 120 may generate the first modulated URL address by modulating it to include a relative path rather than a file name of a page to be loaded. In other words, by adding "./", which is an identifier that designates the current directory, it is modified in a relative path form. In this case, it is practically the same in that it loads a page located in the same directory, but there is a difference in that it is modified in the form of a relative path.

이 경우, 진단대상 서버(200)는 제1 변조 URL 주소의 경우에도 진단대상 URL 주소와 동일한 응답 결과를 제공할 수 있으나, 이는 곧 진단대상 서버(200)가 해당 진단대상 URL 주소에 대한 변조를 감지하지 못하는 것으로 볼 수 있다. 즉, LFI 취약점을 방지하기 위해서는, 진단대상 URL 주소를 상대경로 형식 등으로 변경하는 등의 변조를 허용해서는 안되므로, 이를 이용하여 LFI 취약점의 존재여부를 판별하는 것이다.In this case, the diagnosis target server 200 may provide the same response result as the diagnosis target URL address even in the case of the first forged URL address. It appears to be undetectable. That is, in order to prevent the LFI vulnerability, it is not allowed to change the URL address to be diagnosed to a relative path format, etc., so it is used to determine the existence of the LFI vulnerability.

이와 같은 방식으로 LFI 취약점을 진단하는 경우, 실제 경로이동은 없으므로, 경로이동을 의미하는 식별자인 "../" 문자열에 대한 진단대상 서버의 필터링을 우회하는 것이 가능하다. 또한, 경로이동이 없기 때문에 웹루트(webroot) 경로 차단에 영향을 받지 않을 수 있다. 나아가, 제1 변조 URL 주소는 진단대상 URL 주소와 동일한 페이지를 로드하는 것이므로, 해당 페이지에 대응하는 파일은 항상 디렉토리 내에 존재하며, 각각의 파일들은 탐지솔루션에서 일반화할 수 없기 때문에, 진단대상 서버의 탐지솔루션에 의한 탐지가능성을 낮출 수 있다. 따라서, 본 발명에 의한 LFI 취약점 진단에 의하면, 보다 효과적으로 LFI 취약점 진단을 수행하는 것이 가능하다. When diagnosing an LFI vulnerability in this way, there is no actual path movement, so it is possible to bypass the filtering of the server to be diagnosed for the string "../", which is an identifier indicating path movement. In addition, since there is no path movement, it may not be affected by blocking the webroot path. Furthermore, since the first forged URL address loads the same page as the diagnostic target URL address, the file corresponding to the page always exists in the directory, and since each file cannot be generalized in the detection solution, the Detectability by detection solutions can be lowered. Therefore, according to the LFI vulnerability diagnosis according to the present invention, it is possible to more effectively perform the LFI vulnerability diagnosis.

한편, 실시예에 따라서는, 진단대상 URL 주소 내에 파라미터가 포함되지 않는 경우가 존재할 수 있다. 이 경우, URL 변조부(120)는 진단대상 URL 주소가 POST 방식에 해당하는지를 확인할 수 있으며, POST 방식에 해당하면 바디(body)부 내에 데이터가 존재하는 지 확인할 수 있다. 즉, 진단대상 URL 주소 내에 파라미터가 직접적으로 존재하지 않는 경우, POST body data가 존재하는지 확인할 수 있으며, 바디부에 데이터가 존재하는 경우에는, 바디부에 포함된 파라미터를 파싱하여 각각 키값과 밸류값으로 추출하고, 키-밸류 쌍으로 저장하도록 할 수 있다. 이후, 생성된 키-밸류 쌍을 이용한 제1 변조 URL 주소 생성 등은 앞서 설명한 바와 동일하다.Meanwhile, depending on the embodiment, there may be a case where the parameter is not included in the diagnosis target URL address. In this case, the URL modulator 120 may determine whether the diagnosis target URL address corresponds to the POST method, and if the POST method corresponds to the POST method, the URL modulator 120 may determine whether data exists in the body. That is, if the parameter does not directly exist in the URL address to be diagnosed, it is possible to check whether the POST body data exists. can be extracted and stored as a key-value pair. Thereafter, the generation of the first forged URL address using the generated key-value pair is the same as described above.

다만, 해당 진단대상 URL 주소에 파라미터가 존재하지 않지만 POST 방식이 아닌 경우나, POST 방식이지만 바디부에 데이터가 존재하지 않는 경우에는, 해당 진단대상 URL 주소에 대한 LFI 취약점 진단을 종료할 수 있다.However, when the parameter does not exist in the corresponding diagnostic target URL address but is not the POST method, or when the POST method but no data exists in the body part, the LFI vulnerability diagnosis for the diagnostic target URL address can be terminated.

진단부(130)는 진단대상 서버(200)로 진단대상 URL 주소와, 제1 변조 URL 주소에 대한 응답을 각각 요청할 수 있으며, 응답의 일치여부를 확인할 수 있다. 이후, 응답의 일치여부에 따라 진단대상 서버(200)에 LFI 취약점이 존재하는지 여부를 판별할 수 있다. The diagnosis unit 130 may request the diagnosis target server 200 for responses to the diagnosis target URL address and the first forged URL address, respectively, and may check whether the responses match. Thereafter, it may be determined whether the LFI vulnerability exists in the server 200 to be diagnosed according to whether the responses match.

구체적으로, 진단부(130)는 각각의 진단대상 URL 주소에 대한 응답을 미리 진단대상 서버(200)에게 요청하여 기준 응답데이터로 저장하고 있을 수 있다. 또한, 제1 변조 URL 주소가 생성되면, 진단대상 서버(200)로 이에 대한 응답을 요청하여 제1 응답 데이터로 저장할 수 있다. 이후, 기준 응답데이터와 제1 응답 데이터를 비교하여, 일치 여부를 확인할 수 있다.Specifically, the diagnosis unit 130 may request a response to each diagnosis target URL address from the diagnosis target server 200 in advance and store it as reference response data. Also, when the first forged URL address is generated, a response may be requested from the diagnosis target server 200 and stored as the first response data. Thereafter, by comparing the reference response data and the first response data, it is possible to check whether they match.

여기서, 기준 응답데이터와 제1 응답 데이터가 일치하는 경우는, 진단대상 서버(200)가 진단대상 URL 주소를 제1 변조 URL 주소로 변조한 것을 인식하지 못한 것으로 볼 수 있다. 즉, 진단대상 서버(200)가 파라미터를 다른 상대경로로 변경하여 공격하는 것을 탐지하지 못한 것이므로, 진단부(130)는 진단대상 서버(200)에 LFI 취약점이 존재하는 것으로 판별할 수 있다. Here, when the reference response data and the first response data match, it can be seen that the diagnosis target server 200 does not recognize that the diagnosis target URL address has been altered into the first forged URL address. That is, since the diagnosis target server 200 did not detect an attack by changing the parameter to a different relative path, the diagnosis unit 130 may determine that the diagnosis target server 200 has an LFI vulnerability.

반면에, 기준 응답데이터와 제1 응답 데이터가 상이한 경우는, 진단대상 서버(200)가 제1 변조 URL 주소로 변조되었음을 인식하고, 경고 페이지를 출력하거나 차단하는 등 별도의 처리를 수행한 것으로 볼 수 있다. 따라서, 기준 응답데이터와 제1 응답 데이터가 상이한 경우에는, 진단대상 서버(200)에 LFI 취약점이 존재하지 않는 것으로 판별할 수 있다.On the other hand, when the reference response data and the first response data are different, the diagnosis target server 200 recognizes that the first forged URL address has been tampered with, and outputs or blocks a warning page. can Accordingly, when the reference response data and the first response data are different from each other, it may be determined that the LFI vulnerability does not exist in the diagnosis target server 200 .

여기서, 진단부(130)는 각각의 진단대상 URL 주소 별로 LFI 취약점이 존재하는지 여부를 판별할 수 있다. Here, the diagnosis unit 130 may determine whether an LFI vulnerability exists for each diagnosis target URL address.

한편, 실시예에 따라서는, 실제 LFI 취약점이 없는 경우에도 기준 응답데이터와 제1 응답 데이터가 일치하는 경우가 존재할 수 있다. 따라서, 진단부(130)는 LFI 취약점에 대한 정탐률을 높이기 위하여, 추가적인 검증을 더 수행할 수 있다. Meanwhile, according to an embodiment, even when there is no actual LFI vulnerability, there may exist a case in which the reference response data and the first response data match. Accordingly, the diagnosis unit 130 may further perform additional verification in order to increase the reconnaissance rate for the LFI vulnerability.

구체적으로, 진단부(130)는 기준 응답데이터와 제1 응답 데이터가 일치하는 경우, 키-밸류 쌍에 포함된 밸류값 내에 적어도 2개의 식별자를 추가하여 제2 변조 키-밸류 쌍을 생성할 수 있다. 예를들어, 키-밸류 쌍이 {"menu":"board"}인 경우, {"menu":"./bo./ard"}와 같이 제2 변조 키-밸류 쌍을 생성할 수 있다. 제1 변조 키-밸류 쌍의 경우, 진단대상 URL 주소 내에 포함되어 있는 밸류값의 문자열은 그대로 유지하면서, 해당 문자열 앞에 "./" 등의 식별자를 추가하였으나, 제2 변조 키-밸류 쌍의 경우 밸류값에 포함된 문자열 사이에 "./" 식별자를 더 포함하는 형식으로 형성할 수 있다. 즉, 진단부(130)는 해당 페이지 내에 존재하지 않는 밸류값을 요청하여 진단대상 서버(200)로 하여금 에러를 유발시키도록 제2 변조 키-밸류 쌍을 생성할 수 있다. Specifically, when the reference response data and the first response data match, the diagnosis unit 130 may generate a second modulation key-value pair by adding at least two identifiers to the value values included in the key-value pair. have. For example, if the key-value pair is {"menu":"board"}, a second modulation key-value pair may be generated as {"menu":"./bo./ard"}. In the case of the first tampered key-value pair, an identifier such as "./" was added in front of the string while maintaining the string of the value value included in the diagnosis target URL address, but in the case of the second tampered key-value pair It can be formed in a format that further includes "./" identifiers between strings included in the value value. That is, the diagnosis unit 130 may generate a second modulation key-value pair to cause the diagnosis target server 200 to cause an error by requesting a value value that does not exist in the corresponding page.

이후, 진단부(130)는 제2 변조 키-밸류 쌍으로 진단대상 URL 주소 내 파라미터를 치환하여 제2 변조 URL 주소를 생성할 수 있으며, 제2 변조 URL 주소에 대한 응답을 진단대상 서버(200)에게 요청할 수 있다. 예를들어, 진단대상 URL 주소인 "http://test.com/test.php?menu=board"에 제2 변조 키-밸류 쌍인 {"menu":"./bo./ard"}를 치환시킬 수 있으며, 이 경우 제2 변조 URL 주소는 "http://test.com/test.php?menu=./bo./ard"로 생성할 수 있다. 생성된 제2 변조 URL 주소를 진단대상 서버(200)로 전송하여 응답을 요청할 수 있으며, 이후, 진단대상 서버(200)로부터 받은 응답을 제2 응답데이터로 저장할 수 있다.Thereafter, the diagnostic unit 130 may generate a second forged URL address by substituting a parameter in the diagnostic target URL address with the second forged key-value pair, and returns a response to the second forged URL address to the diagnostic target server 200 ) can be requested. For example, replace the second tampered key-value pair {"menu":"./bo./ard"} with "http://test.com/test.php?menu=board", which is the URL address for diagnosis. In this case, the second forged URL address may be generated as "http://test.com/test.php?menu=./bo./ard". A response may be requested by transmitting the generated second forged URL address to the diagnosis target server 200 , and thereafter, the response received from the diagnosis target server 200 may be stored as second response data.

진단부(130)는 제1 응답데이터와 제2 응답데이터가 일치하는지 확인할 수 있으며, 서로 일치하는 경우에는 진단대상 서버(200)에 LFI 취약점이 없는 것으로 판별할 수 있다. 즉, 제2 변조 URL 주소의 경우, 실제 진단대상 서버(200) 내에 없는 파일을 요청하는 동작에 해당하므로, 진단대상 서버(200)는 오류 메시지를 포함하는 오류 페이지를 출력할 것으로 예상된다. 예를들어, "파일이 존재하지 않습니다", "웹 페이지를 호출하는데 실패했습니다" 등의 오류 메시지가 표시될 수 있다. The diagnosis unit 130 may check whether the first response data and the second response data match, and when they match, the diagnosis target server 200 may determine that there is no LFI vulnerability. That is, in the case of the second forged URL address, since it corresponds to an operation of requesting a file that is not in the actual diagnosis target server 200 , the diagnosis target server 200 is expected to output an error page including an error message. For example, you may see error messages such as "The file does not exist" or "Failed to invoke the web page".

그러나, 제1 응답데이터와 제2 응답데이터가 일치한다면, 이는 진단대상 서버(200)가 자체적으로 진단대상 URL 주소에 추가된 식별자("./")를 인식하여 모두 제거한 것으로 볼 수 있다. 즉, 진단대상 서버(200)가 식별자를 제거하여 동일한 응답 데이터를 제공한 경우에 해당하므로, 진단대상 서버(200)에 LFI 취약점이 없는 것으로 판별할 수 있다. However, if the first response data and the second response data match, it can be seen that the diagnosis target server 200 recognizes the identifier (“./”) added to the diagnosis target URL address and removes them altogether. That is, since it corresponds to a case where the server 200 to be diagnosed removes the identifier and provides the same response data, it can be determined that the server 200 to be diagnosed does not have an LFI vulnerability.

반면에, 제1 응답 데이터와 제2 응답 데이터가 불일치하는 경우는, 진단대상 서버(200)가 진단대상 URL 주소의 변조를 감지하지 못하고, 각각의 제1 변조 URL 주소와 제2 변조 URL 주소에 따른 동작을 수행한 것으로 볼 수 있다. 즉, 제1 변조 URL 주소에 대하여는 "board"에 대응하는 페이지를 출력하는 응답을 수행하고, 제2 변조 URL 주소에 대하여는 현재 디렉토리 내에 "bo"에 해당하는 파일이 없어 오류 페이지를 출력한 경우에 해당한다. 이 경우, 제1 응답 데이터와 제2 응답 데이터가 불일치하게 되므로, LFI 취약점이 존재하는 것으로 판별할 수 있다. On the other hand, when the first response data and the second response data do not match, the diagnosis target server 200 does not detect the tampering of the diagnosis target URL address, and the first and second tampered URL addresses It can be seen that the following operation was performed. That is, when a response of outputting a page corresponding to "board" is performed for the first forged URL address, and an error page is output because there is no file corresponding to "bo" in the current directory for the second forged URL address corresponds to In this case, since the first response data and the second response data do not match, it can be determined that the LFI vulnerability exists.

다만, LFI 취약점에 대한 정탐률을 높이기 위하여, 제1 응답 데이터와 제2 응답 데이터가 불일치하는 경우에 대한 추가적인 검증을 더 수행하는 실시예도 가능하다. However, in order to increase the reconnaissance rate for the LFI vulnerability, an embodiment in which additional verification is further performed for a case where the first response data and the second response data do not match is also possible.

구체적으로, 진단부(130)는 제1 응답데이터와 제2 응답데이터가 불일치하면, 키-밸류 쌍에 포함된 밸류값을, 식별자와 결합한 제1 문자열로 치환하는 방식으로 제3 변조 키-밸류 쌍을 생성할 수 있다. 여기서, 제1 문자열은 임의의 문자나 숫자, 기호 등을 포함할 수 있으며, 실시예에 따라서는 특정한 문자열로 미리 설정되어 있을 수 있다. 또한, 제1 문자열에는 현재 디렉토리를 지시하는 "./" 등의 식별자를 추가할 수 있다. 예를들어, 제1 문자열을 "WebSecurityChecker7979" 등과 같이 임의로 설정할 수 있으며, 여기에 식별자 "./"를 포함하여 {"menu":"./ WebSecurityChecker7979"}로 제3 변조 키-밸류 쌍을 생성할 수 있다. 여기서, 제3 변조 키-밸류 쌍은 해당 페이지 내에 존재하지 않는 밸류값을 요청하여 진단대상 서버(200)로 하여금 에러를 유발시키도록 하는 것에 해당한다. 즉, 현재 디렉토리에 포함되지 않은 임의의 밸류값을 참조하도록 요청할 수 있다. Specifically, when the first response data and the second response data do not match, the diagnosis unit 130 replaces the value included in the key-value pair with the first string combined with the identifier, and the third modulation key-value You can create pairs. Here, the first character string may include arbitrary letters, numbers, symbols, and the like, and may be preset to a specific character string according to an embodiment. Also, an identifier such as “./” indicating the current directory may be added to the first string. For example, the first string can be set arbitrarily, such as "WebSecurityChecker7979", etc., including the identifier "./" to generate a third tampered key-value pair with {"menu":"./ WebSecurityChecker7979"}. can Here, the third modulation key-value pair corresponds to requesting a value value that does not exist in the corresponding page to cause the diagnosis target server 200 to cause an error. That is, you can request to refer to an arbitrary value that is not included in the current directory.

이후, 진단부(130)는 제3 변조 키-밸류 쌍으로 진단대상 URL 주소 내 파라미터를 치환하여 제3 변조 URL 주소를 생성할 수 있으며, 제3 변조 URL 주소에 대한 응답을 진단대상 서버(200)에게 요청하여 제3 응답데이터로 저장할 수 있다. 이 경우, 제3 변조 URL 주소는 "http://test.com/test.php?menu=./ WebSecurityChecker7979"로 생성할 수 있다. Thereafter, the diagnostic unit 130 may generate a third forged URL address by substituting a parameter in the diagnostic target URL address with the third forged key-value pair, and returns a response to the third forged URL address to the diagnostic target server 200 ) and can be saved as the third response data. In this case, the third forged URL address may be generated as "http://test.com/test.php?menu=./WebSecurityChecker7979".

여기서, 제1 응답데이터와 제3 응답데이터가 일치하는 경우에는, 진단대상 서버에 LFI 취약점이 없는 것으로 판별할 수 있다. 제1 응답데이터와 제3 응답데이터가 일치하는 경우는, 제1 응답데이터가 실제 요청한 파일에 대한 응답을 한 것이 아니라 식별자 추가에 따른 경고 메시지를 출력한 것으로 볼 수 있다. 예를들어, 밸류값에 식별자("./")가 추가된 경우에는 진단대상 서버(200)가 경고 페이지를 출력하도록 설정되어 있을 수 있으며, 이 경우 진단대상 서버(200)에는 LFI 취약점이 없는 것으로 판별할 수 있다. Here, when the first response data and the third response data match, it may be determined that there is no LFI vulnerability in the server to be diagnosed. When the first response data and the third response data match, the first response data can be regarded as outputting a warning message according to the addition of the identifier, rather than responding to the file actually requested. For example, when an identifier ("./") is added to the value, the server 200 to be diagnosed may be set to output a warning page. In this case, the server 200 to be diagnosed does not have an LFI vulnerability. can be identified as

반면에, 제1 응답 데이터와 제3 응답 데이터가 불일치하는 경우는, 진단대상 서버(200)가 식별자의 추가에 따른 상대경로로 이동하여 실행한 경우로 볼 수 있다. 즉, 진단대상 서버(200)의 제1 응답데이터에는 밸류값 "board"에 대응하는 페이지가 출력되고, 제3 응답데이터에는 밸류값 "WebSecurityChecker7979"에 따른 잘못된 변수 참조를 나타내는 오류 페이지가 출력될 수 있다. 이 경우, 제1 응답 데이터와 제3 응답데이터가 불일치하게 되므로, 진단부(130)는 진단대상 서버(200)에 LFI 취약점이 존재하는 것으로 판별할 수 있다. On the other hand, when the first response data and the third response data do not match, it can be considered that the diagnosis target server 200 moves to a relative path according to the addition of the identifier and executes it. That is, a page corresponding to the value "board" is output to the first response data of the server 200 to be diagnosed, and an error page indicating an incorrect variable reference according to the value "WebSecurityChecker7979" can be output to the third response data. have. In this case, since the first response data and the third response data do not match, the diagnosis unit 130 may determine that the LFI vulnerability exists in the diagnosis target server 200 .

나아가, LFI 취약점에 대한 정탐률을 높이기 위하여, 제1 응답 데이터와 제3 응답 데이터가 불일치하는 경우에 대한 추가적인 검증을 더 수행하는 것도 가능하다. 구체적으로, 진단부(130)는 제1 응답데이터와 제3 응답데이터가 불일치하면, 키-밸류 쌍에 포함된 상기 밸류값을, 식별자와 결합한 제2 문자열로 치환하여 제4 변조 키-밸류 쌍을 생성할 수 있다. 여기서, 제2 문자열은 제1 문자열과 상이한 것으로, 임의의 문자나 숫자, 기호 등이 포함될 수 있다. 예를들어, 제2 문자열을 "WebSecurityChecker1234" 등과 같이 임의로 설정할 수 있으며, 여기에 식별자 "./"를 더 포함하여 {"menu":"./ WebSecurityChecker1234"}로 제4 변조 키-밸류 쌍을 생성할 수 있다.Furthermore, in order to increase the reconnaissance rate for LFI vulnerabilities, it is possible to further perform additional verification for a case where the first response data and the third response data do not match. Specifically, when the first response data and the third response data do not match, the diagnosis unit 130 replaces the value included in the key-value pair with a second string combined with the identifier to modulate the fourth key-value pair. can create Here, the second character string is different from the first character string, and may include arbitrary letters, numbers, symbols, or the like. For example, the second string can be set arbitrarily, such as "WebSecurityChecker1234", etc., further including an identifier "./" to generate a fourth tampered key-value pair with {"menu":"./ WebSecurityChecker1234"} can do.

이후, 진단부(130)는 제4 변조 키-밸류 쌍으로 진단대상 URL 주소 내 파라미터를 치환하여 제4 변조 URL 주소를 생성할 수 있으며, 제4 변조 URL 주소에 대한 응답을 진단대상 서버(200)에게 요청할 수 있다. 이 경우, 제4 변조 URL 주소는 "http://test.com/test.php?menu=./ WebSecurityChecker1234"로 생성할 수 있다. Thereafter, the diagnostic unit 130 may generate a fourth forged URL address by substituting a parameter in the diagnostic target URL address with the fourth forged key-value pair, and returns a response to the fourth forged URL address to the diagnostic target server 200 ) can be requested. In this case, the fourth forged URL address may be generated as "http://test.com/test.php?menu=./WebSecurityChecker1234".

여기서, 제3 응답데이터와 제4 응답데이터가 일치하는 경우는, 진단대상 서버가 식별자 추가에 의해 상대경로로 이동하여 실행한 경우에 해당한다. 즉, 진단대상 서버(200)의 제3 응답데이터와 제4 응답데이터에는 각각 잘못된 변수 참조에 따른 오류 페이지가 동일하게 나타나므로, 제3 응답데이터와 제4 응답데이터는 일치하게 된다. 따라서, 진단부(130)는 이 경우 진단대상 서버(200)에 LFI 취약점이 존재하는 것으로 판별할 수 있다.Here, the case where the third response data and the fourth response data match corresponds to a case in which the diagnosis target server moves to a relative path by adding an identifier and executes it. That is, the third response data and the fourth response data of the server 200 for diagnosis have the same error page according to the wrong variable reference, respectively, so that the third response data and the fourth response data match. Accordingly, in this case, the diagnosis unit 130 may determine that the LFI vulnerability exists in the diagnosis target server 200 .

반면에, 제3 응답데이터와 제4 응답데이터가 불일치하는 경우에는, 진단대상 서버(200)가 각각에 대한 변조를 감지하여 별도의 조치를 취한 것으로 볼 수 있다. 즉, 앞서 제1 응답 데이터와 제3 응답데이터가 불일치한 경우, 진단대상 서버(200)에 LFI 취약점이 존재하여, 제1 응답 데이터에는 밸류값 "board"에 대응하는 페이지가 포함되고, 제3 응답 데이터에는 밸류값 "WebSecurityChecker7979"에 따른 잘못된 변수 참조를 나타내는 오류 페이지가 나타나는 것으로 판단하였다. 그러나, 여기서 제3 응답 데이터와 제4 응답데이터도 불일치한다는 것은, 결국 진단대상 서버(200)가 실제 식별자에 따른 상대경로로 이동하여 실행하는 것이 아니라, 자체의 방화벽이나 설정, 개발 코드 등 제3의 요소에 의하여, 각각 상이한 방식으로 차단한 경우에 해당한다. 따라서, 제3 응답데이터와 제4 응답데이터가 불일치하는 경우에는, 최종적으로 진단대상 서버(200)에 LFI 취약점이 존재하지 않는 것으로 판별할 수 있다.On the other hand, when the third response data and the fourth response data do not match, it can be seen that the diagnosis target server 200 detects tampering with respect to each and takes a separate action. That is, when the first response data and the third response data do not match, the LFI vulnerability exists in the diagnosis target server 200, and the first response data includes a page corresponding to the value “board”, and the third response data It was determined that an error page indicating an invalid variable reference according to the value "WebSecurityChecker7979" appeared in the response data. However, here, the fact that the third response data and the fourth response data are also inconsistent means that the diagnosis target server 200 does not move and execute the relative path according to the actual identifier, but rather the third response data such as its own firewall, settings, and development code. It corresponds to the case of blocking in a different way by the element of . Accordingly, when the third response data and the fourth response data do not match, it may be determined that the LFI vulnerability does not exist in the diagnosis target server 200 .

도3은 본 발명의 일 실시예에 의한 취약점 진단방법을 나타내는 순서도이다. 여기서, 취약점 진단방법은 LFI 취약점을 진단하는 진단장치에 의하여 수행될 수 있다. 3 is a flowchart illustrating a vulnerability diagnosis method according to an embodiment of the present invention. Here, the vulnerability diagnosis method may be performed by a diagnosis apparatus for diagnosing the LFI vulnerability.

진단장치는 진단대상 서버로부터 추출한 진단대상 URL 주소를 수신할 수 있다(S110). 진단대상 서버에는 복수의 진단대상 URL 주소들이 포함될 수 있으므로, 진단장치는 진단대상 서버로부터 각각의 진단대상 URL 주소들을 수집할 수 있다. 실시예에 따라서는, 웹 크롤러(web crawler)를 이용하여 진단대상 URL 주소를 수집하는 것도 가능하다.The diagnosis apparatus may receive the diagnosis target URL address extracted from the diagnosis target server (S110). Since the diagnosis target server may include a plurality of diagnosis target URL addresses, the diagnosis apparatus may collect respective diagnosis target URL addresses from the diagnosis target server. According to an embodiment, it is also possible to collect the diagnosis target URL address using a web crawler.

이후, 진단장치는 진단대상 URL 주소 내 파라미터가 포함되는지를 확인할 수 있다(S121). LFI 취약점 진단을 위하여 파라미터에 대한 변조를 수행하므로, 진단대상 URL 주소 내에 파라미터가 존재하는지 여부를 미리 확인할 수 있다. 여기서, 진단대상 URL 주소 내에 파라미터가 포함되지 않으면, 진단장치는 진단대상 URL 주소가 POST 방식에 해당하는지를 확인할 수 있으며, POST 방식에 해당하면 바디(body)부 내에 데이터가 존재하는 지 확인할 수 있다(S122). 즉, POST 방식의 URL 주소의 경우, 바디부 내에 파라미터가 포함될 수 있으므로, 진단대상 URL 주소가 POST 방식에 해당하지 여부와, POST 방식에 해당하면 바디부에 데이터가 존재하는지 여부를 확인할 수 있다. Thereafter, the diagnosis apparatus may check whether a parameter is included in the diagnosis target URL address (S121). Since the parameter is altered to diagnose the LFI vulnerability, it can be checked in advance whether the parameter exists in the URL address to be diagnosed. Here, if the parameter is not included in the diagnostic target URL address, the diagnostic apparatus may check whether the diagnostic target URL address corresponds to the POST method, and if the diagnostic target URL address corresponds to the POST method, it may check whether data exists in the body ( S122). That is, in the case of a URL address of the POST method, parameters may be included in the body part, so it is possible to check whether the diagnostic target URL address corresponds to the POST method and whether data exists in the body part if it corresponds to the POST method.

다만, 해당 진단대상 URL 주소에 파라미터가 존재하지 않지만 POST 방식이 아닌 경우나, POST 방식이지만 바디부에 데이터가 존재하지 않는 경우에는, 해당 진단대상 URL 주소에 대한 LFI 취약점 진단을 종료할 수 있다(S122).However, if the parameter does not exist in the target URL address for diagnosis but is not the POST method, or if there is no data in the body part despite the POST method, the LFI vulnerability diagnosis for the diagnosis target URL address can be terminated ( S122).

진단대상 URL 주소 내에 파라미터가 포함되거나, POST body data가 존재하는 경우에는, 진단장치가 진단대상 URL 주소에 대한 응답을 진단대상 서버에게 요청하여, 기준 응답데이터로 저장할 수 있다(S130). 이후 변조 URL 주소에 대한 응답데이터와 비교를 위하여, 미리 각각의 진단대상 URL 주소에 대한 응답을 기준 응답데이터로 저장해둘 수 있다. When a parameter is included in the diagnosis target URL address or there is POST body data, the diagnosis apparatus may request a response to the diagnosis target URL address from the diagnosis target server and store it as reference response data ( S130 ). Thereafter, for comparison with the response data for the forged URL address, the response to each diagnostic target URL address may be stored as reference response data in advance.

기준 응답 데이터 저장 후, 진단장치는 진단대상 URL 주소 내 포함된 파라미터를 변조하여, 동일한 경로를 나타내는 상대경로(relative path) 형식의 제1 변조 URL 주소를 생성할 수 있다(S140). 여기서, 상대경로는 파라미터가 위치하는 현재 디렉토리를 지시하는 식별자를 추가하는 방식으로 설정할 수 있다. After storing the reference response data, the diagnostic apparatus modulates parameters included in the diagnostic target URL address to generate a first modified URL address in the form of a relative path indicating the same path (S140). Here, the relative path can be set by adding an identifier indicating the current directory in which the parameter is located.

구체적으로, 진단장치는 진단대상 URL 주소를 파싱하여, 진단대상 URL 주소 내에 포함된 파라미터의 키값과 밸류값을 각각 추출할 수 있으며, 추출한 키값과 밸류값은 키-밸류 쌍으로 저장할 수 있다. 여기서, 진단대상 URL 주소가 POST 방식에 해당하고, 바디부에 데이터가 존재하는 경우에는, 바디부에 포함된 파라미터를 파싱하여 각각 키값과 밸류값으로 추출할 수 있으며, 추출한 키값과 밸류값을 키-밸류 쌍으로 저장할 수 있다. Specifically, the diagnosis apparatus may parse the diagnosis target URL address, extract a key value and a value value of a parameter included in the diagnosis target URL address, respectively, and store the extracted key value and value value as a key-value pair. Here, when the diagnostic target URL address corresponds to the POST method and data exists in the body part, the parameters included in the body part can be parsed to extract the key value and the value value, respectively, and the extracted key value and value value can be used as a key -Can be stored as value pairs.

이후, 키-밸류 쌍에 포함된 밸류값을 추출할 수 있으며, 해당 밸류값에 현재 디렉토리를 지시하는 식별자를 추가하여 제1 변조 키-밸류 쌍을 생성할 수 있다. 제1 변조 키-밸류 쌍이 생성되면, 진단장치는 제1 변조 키-밸류 쌍으로 진단대상 URL 주소 또는 바디부 내의 파라미터를 치환하여, 제1 변조 URL 주소를 생성할 수 있다. Thereafter, the value included in the key-value pair may be extracted, and an identifier indicating the current directory may be added to the corresponding value to generate the first modulation key-value pair. When the first tampered key-value pair is generated, the diagnostic apparatus may generate the first tampered URL address by substituting the diagnostic target URL address or a parameter in the body unit with the first tampered key-value pair.

진단장치는 제1 변조 URL 주소에 대한 응답을 진단대상 서버에게 요청할 수 있으며, 이에 대한 응답을 제1 응답데이터로 저장할 수 있다(S150). 즉, 제1 변조 URL 주소로 진단대상 서버를 공격할 수 있으며, 공격결과를 제1 응답데이터로 저장할 수 있다. The diagnosis apparatus may request a response to the first forged URL address from the diagnosis target server, and may store the response as the first response data (S150). That is, the diagnosis target server may be attacked with the first forged URL address, and the attack result may be stored as the first response data.

이후 진단장치는 기준 응답데이터와 제1 응답데이터가 일치하는지 비교할 수 있으며(S161), 기준 응답데이터와 제1 응답데이터가 불일치하는 경우에는 진단대상 서버에 LFI 취약점이 없는 것으로 판별할 수 있다(S162). 즉, 불일치하는 경우는, 진단대상 서버가 제1 변조 URL 주소로 변조되었음을 인식하고, LFI 취약점에 대한 경고 페이지를 출력하는 등 별도의 처리를 수행한 것으로 볼 수 있다. 따라서, 기준 응답데이터와 제1 응답 데이터가 상이한 경우에는, 진단대상 서버(200)에 LFI 취약점이 존재하지 않는 것으로 판별할 수 있다.Thereafter, the diagnosis apparatus may compare whether the reference response data and the first response data match (S161), and when the reference response data and the first response data do not match, it may determine that the server to be diagnosed has no LFI vulnerability (S162). ). That is, in the case of inconsistency, it can be considered that the diagnosis target server recognizes that the first forged URL address has been tampered with, and performs separate processing such as outputting a warning page for the LFI vulnerability. Accordingly, when the reference response data and the first response data are different from each other, it may be determined that the LFI vulnerability does not exist in the diagnosis target server 200 .

반면에, 기준 응답데이터와 제1 응답 데이터가 일치하는 경우는, 진단대상 서버가 진단대상 URL 주소를 제1 변조 URL 주소로 변조한 것을 인식하지 못한 것으로 볼 수 있다. 즉, 진단대상 서버가 파라미터를 다른 상대경로로 변경하여 공격하는 것을 탐지하지 못한 것이므로, 진단대상 서버에 LFI 취약점이 존재하는 것으로 판별할 수 있다. On the other hand, when the reference response data and the first response data match, it may be considered that the diagnosis target server does not recognize that the diagnosis target URL has been altered into the first forged URL address. That is, since the target server did not detect an attack by changing the parameter to a different relative path, it can be determined that the LFI vulnerability exists in the target server.

다만, 실제 LFI 취약점이 없는 경우에도 기준 응답데이터와 제1 응답 데이터가 일치하는 경우가 존재할 수 있으므로, 실시예에 따라서는, 도3의 "A"로 진행하여, LFI 취약점의 존재여부를 추가적으로 검증할 수 있다.However, even if there is no actual LFI vulnerability, there may exist a case where the reference response data and the first response data match. Therefore, depending on the embodiment, proceeding to “A” in FIG. 3 , further verifying the existence of the LFI vulnerability. can do.

구체적으로, 도4를 참조하면, 기준 응답데이터와 제1 응답 데이터가 일치하는 경우, 키-밸류 쌍에 포함된 밸류값 내에 적어도 2개의 식별자를 추가하여 제2 변조 키-밸류 쌍을 생성할 수 있다(S210). 즉, 진단 장치는 해당 페이지 내에 존재하지 않는 밸류값을 요청하여 진단대상 서버로 하여금 에러를 유발시키도록 제2 변조 키-밸류 쌍을 생성할 수 있다Specifically, referring to FIG. 4 , when the reference response data and the first response data match, the second modulation key-value pair can be generated by adding at least two identifiers to the value values included in the key-value pair. There is (S210). That is, the diagnosis apparatus may generate the second tampered key-value pair to cause the diagnosis target server to cause an error by requesting a value value that does not exist in the corresponding page.

이후, 제2 변조 키-밸류 쌍으로 진단대상 URL 주소 내 파라미터를 치환하여 제2 변조 URL 주소를 생성할 수 있으며, 제2 변조 URL 주소에 대한 응답을 진단대상 서버에게 요청하여 제2 응답데이터로 저장할 수 있다(S220). Thereafter, a second forged URL address may be generated by substituting a parameter in the diagnostic target URL address with the second forged key-value pair, and a response to the second forged URL address may be requested from the diagnostic target server as second response data. It can be stored (S220).

진단장치는 제1 응답데이터와 상기 제2 응답데이터가 일치하는 지를 확인할 수 있으며(S230), 일치하는 경우 진단대상 서버 내에 LFI 취약점이 없는 것으로 판별할 수 있다(S240). 즉, 제2 변조 URL 주소의 경우, 실제 진단대상 서버 내에 없는 파일을 요청하는 동작에 해당하므로, 진단대상 서버는 오류 메시지를 포함하는 오류 페이지를 출력할 것으로 예상된다. 다만, 제1 응답데이터와 제2 응답데이터가 일치한다는 것은, 진단대상 서버가 자체적으로 진단대상 URL 주소에 추가된 식별자("./")를 인식하여 모두 제거한 것으로 볼 수 있다. 따라서, 진단장치는 제1 응답데이터와 상기 제2 응답데이터가 일치하는 경우 LFI 취약점이 없는 것으로 판별할 수 있다.The diagnosis apparatus may determine whether the first response data and the second response data match (S230), and if they match, it may determine that there is no LFI vulnerability in the server to be diagnosed (S240). That is, in the case of the second forged URL address, since it corresponds to an operation of requesting a file that is not in the actual server to be diagnosed, the server to be diagnosed is expected to output an error page including an error message. However, if the first response data and the second response data match, it can be seen that the diagnosis target server recognizes the identifier (“./”) added to the diagnosis target URL address and removes them altogether. Accordingly, when the first response data and the second response data match, the diagnostic apparatus may determine that there is no LFI vulnerability.

반면에, 제1 응답데이터와 제2 응답 데이터가 불일치하면, 진단대상 서버에 LFI 취약점이 존재하는 것으로 판별할 수 있다. 즉, 진단대상 서버가 진단대상 URL 주소에 대한 변조를 감지하지 못하고, 그에 따른 동작을 수행한 것으로 볼 수 있다. 구체적으로, 제1 변조 URL 주소에 대하여는 정상적으로 페이지를 로드하는 응답을 수행하고, 제2 변조 URL 주소에 대하여는 오류 페이지를 출력한 경우에 해당한다. 이 경우, 제1 응답 데이터와 제2 응답 데이터가 불일치하게 되므로, LFI 취약점이 존재하는 것으로 판별할 수 있다. 다만, 제1 응답 데이터와 제2 응답 데이터가 불일치하는 경우에도 LFI 취약점이 존재하지 않는 경우가 있을 수 있다. 따라서, LFI 취약점에 대한 정탐률을 높이기 위해 도4의 "B"로 진행하여, LFI 취약점의 존재여부를 추가적으로 검증할 수 있다.On the other hand, if the first response data and the second response data do not match, it may be determined that the LFI vulnerability exists in the server to be diagnosed. That is, it can be seen that the diagnosis target server did not detect any tampering with the diagnosis target URL address and performed an operation accordingly. Specifically, it corresponds to a case in which a response of normally loading a page is performed for the first forged URL address and an error page is output for the second forged URL address. In this case, since the first response data and the second response data do not match, it can be determined that the LFI vulnerability exists. However, even when the first response data and the second response data do not match, there may be a case where the LFI vulnerability does not exist. Accordingly, in order to increase the reconnaissance rate for the LFI vulnerability, it is possible to additionally verify the existence of the LFI vulnerability by proceeding to “B” of FIG. 4 .

구체적으로, 도5를 참조하면, 제1 응답데이터와 제2 응답 데이터가 불일치하는 경우, 키-밸류 쌍에 포함된 밸류값을, 식별자와 결합한 제1 문자열로 치환하여 제3 변조 키-밸류 쌍을 생성할 수 있다(S310). 여기서, 제1 문자열은 임의의 문자나 숫자, 기호 등을 포함할 수 있으며, 실시예에 따라서는 특정한 문자열로 미리 설정되어 있을 수 있다. 즉, 제1 문자열을 이용하여 현재 디렉토리에 포함되지 않은 임의의 밸류값을 참조하도록 변조하는 것으로, 제3 변조 키-밸류 쌍에 의해 생성되는 제3 변조 URL 주소는 진단대상 서버로 하여금 에러를 유발시킬 수 있다. Specifically, referring to FIG. 5 , when the first response data and the second response data do not match, the value included in the key-value pair is replaced with the first string combined with the identifier, and the third modulation key-value pair can be generated (S310). Here, the first character string may include arbitrary letters, numbers, symbols, and the like, and may be preset to a specific character string according to an embodiment. That is, the first string is used to modulate to refer to an arbitrary value not included in the current directory, and the third forged URL address generated by the third forged key-value pair causes the diagnosis target server to error can do it

이후, 진단장치는 제3 변조 키-밸류 쌍으로 진단대상 URL 주소 내 파라미터를 치환하여 제3 변조 URL 주소를 생성하고, 제3 변조 URL 주소에 대한 응답을 진단대상 서버에게 요청하여 제3 응답데이터로 저장할 수 있다(S320). Thereafter, the diagnostic device generates a third forged URL address by substituting a parameter in the diagnostic target URL address with the third forged key-value pair, and requests a response to the third forged URL address from the diagnostic target server to obtain the third response data It can be stored as (S320).

여기서, 진단장치는 제1 응답데이터와 제3 응답데이터가 일치하는지 확인할 수 있으며(S330), 일치하는 경우에는 진단대상 서버 내에 LFI 취약점이 없는 것으로 판별할 수 있다. 즉, 제1 응답데이터와 제3 응답데이터가 일치하는 경우는, 제1 응답데이터가 실제 요청한 파일에 대한 응답을 한 것이 아니라 식별자 추가에 따른 경고 메시지를 출력한 것으로 볼 수 있다. 예를들어, 밸류값에 식별자("./")가 추가되면 진단대상 서버가 경고 페이지를 출력하도록 미리 설정되어 있을 수 있으며, 이 경우 진단대상 서버는 진단대상 URL 주소에 대한 변조를 허용하지 않는 것이므로, LFI 취약점이 없는 것으로 판별할 수 있다.Here, the diagnosis apparatus may determine whether the first response data and the third response data match ( S330 ), and if they match, it may determine that there is no LFI vulnerability in the diagnosis target server. That is, when the first response data and the third response data match, the first response data can be regarded as outputting a warning message according to the addition of the identifier, rather than responding to the actually requested file. For example, when an identifier ("./") is added to the value, the server for diagnosis may be preset to output a warning page, and in this case, the server for diagnosis does not allow forgery of the URL address for diagnosis. Therefore, it can be determined that there is no LFI vulnerability.

반면에, 제1 응답 데이터와 제3 응답 데이터가 불일치하는 경우는, 진단대상 서버가 식별자의 추가에 따른 상대경로로 이동하여 실행한 경우로 볼 수 있다. 즉, 진단대상 서버는 제1 변조 URL 주소에 대하여는 정상적으로 페이지를 로드하는 응답을 수행하고, 제3 변조 URL 주소에 대하여는 오류 페이지를 출력한 경우에 해당한다. 이 경우, 제1 응답 데이터와 제3 응답데이터가 불일치하게 되므로, 진단대상 서버에 LFI 취약점이 존재하는 것으로 판별할 수 있다. 여기서, 실시예에 따라서는, 도5의 "C"로 진행하여, 진단대상 서버에 대한 LFI 취약점의 존재여부를 추가적으로 더 검증할 수 있다.On the other hand, when the first response data and the third response data do not match, it can be considered that the diagnosis target server moves and executes the relative path according to the addition of the identifier. That is, the diagnosis target server responds to loading a page normally to the first forged URL address and outputs an error page to the third forged URL address. In this case, since the first response data and the third response data do not match, it can be determined that the LFI vulnerability exists in the server to be diagnosed. Here, depending on the embodiment, by proceeding to “C” of FIG. 5 , it is possible to additionally verify whether the LFI vulnerability exists in the server to be diagnosed.

구체적으로, 도6을 참조하면, 제1 응답데이터와 제3 응답데이터가 불일치하는 경우, 키-밸류 쌍에 포함된 상기 밸류값을, 식별자와 결합한 제2 문자열로 치환하여 제4 변조 키-밸류 쌍을 생성할 수 있다(S410). 여기서, 제2 문자열은 제1 문자열과 상이한 것으로, 임의의 문자나 숫자, 기호 등이 포함될 수 있다.Specifically, referring to FIG. 6 , when the first response data and the third response data do not match, the value included in the key-value pair is replaced with a second string combined with the identifier, and the fourth modulation key-value A pair may be created (S410). Here, the second character string is different from the first character string, and may include arbitrary letters, numbers, symbols, or the like.

이후, 제4 변조 키-밸류 쌍으로 진단대상 URL 주소 내 파라미터를 치환하여 제4 변조 URL 주소를 생성하고, 제4 변조 URL 주소에 대한 응답을 진단대상 서버에게 요청하여 제4 응답데이터로 저장할 수 있다(S420). Thereafter, a fourth forged URL address is generated by substituting a parameter in the diagnostic target URL address with the fourth forged key-value pair, and a response to the fourth forged URL address is requested from the diagnostic target server and stored as the fourth response data. There is (S420).

여기서, 제3 응답데이터와 제4 응답데이터가 일치하는지 확인한 후(S430), 일치하는 경우에는, 진단대상 서버 내에 LFI 취약점이 존재하는 것으로 판별할 수 있다(S450). 즉, 제3 응답데이터와 제4 응답데이터가 일치하는 경우는, 진단대상 서버가 식별자 추가에 의해 상대경로로 이동하여 실행한 경우에 해당한다. 구체적으로, 진단대상 서버의 제3 응답데이터와 제4 응답데이터에는 각각 잘못된 변수 참조에 따른 오류 페이지가 나타나게 되므로, 진단장치는 진단대상 서버에 LFI 취약점이 존재하는 것으로 판별할 수 있다.Here, after checking whether the third response data and the fourth response data match (S430), if they match, it may be determined that the LFI vulnerability exists in the server to be diagnosed (S450). That is, the case where the third response data and the fourth response data match corresponds to a case in which the diagnosis target server moves to a relative path by adding an identifier and executes it. Specifically, since an error page according to an incorrect variable reference appears in the third and fourth response data of the server to be diagnosed, the diagnostic apparatus can determine that the server to be diagnosed has an LFI vulnerability.

반면에, 제3 응답데이터와 제4 응답데이터가 불일치하는 경우에는(S430), 진단대상 서버가 각각에 대한 변조를 감지하여 별도의 조치를 취하여 상이하게 처리한 것으로 볼 수 있다. 즉, 제1 응답데이터와 제3 응답데이터가 불일치하는 것과 동일하게, 제3 응답데이터와 제4 응답데이터도 불일치하므로, 추가된 식별자에 따라 상대경로로 이동하여 각각을 실행하는 경우에는 해당하지 않는다. 결국, 진단대상 서버의 자체 방화벽이나 설정, 개발 코드 등에 의해 각각 차단된 경우로 볼 수 있으므로, 진단대상서버에는 LFI 취약점이 존재하지 않는 것으로 판별할 수 있다(S440).On the other hand, when the third response data and the fourth response data do not match ( S430 ), the diagnosis target server detects tampering with respect to each and takes a separate action to treat it differently. That is, in the same way that the first response data and the third response data do not match, the third response data and the fourth response data also do not match. . As a result, it can be seen that the diagnosis target server is blocked by its own firewall, settings, development code, etc., so it can be determined that the diagnosis target server does not have an LFI vulnerability (S440).

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The present invention described above can be implemented as computer-readable code on a medium in which a program is recorded. The computer-readable medium may continuously store a computer-executable program, or may be temporarily stored for execution or download. In addition, the medium may be various recording means or storage means in the form of a single or several hardware combined, it is not limited to a medium directly connected to any computer system, and may exist distributed on a network. Examples of the medium include a hard disk, a magnetic medium such as a floppy disk and a magnetic tape, an optical recording medium such as CD-ROM and DVD, a magneto-optical medium such as a floppy disk, and those configured to store program instructions, including ROM, RAM, flash memory, and the like. In addition, examples of other media may include recording media or storage media managed by an app store that distributes applications, sites that supply or distribute various other software, or servers. Accordingly, the above detailed description should not be construed as restrictive in all respects but as exemplary. The scope of the present invention should be determined by a reasonable interpretation of the appended claims, and all modifications within the equivalent scope of the present invention are included in the scope of the present invention.

본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.The present invention is not limited by the above embodiments and the accompanying drawings. For those of ordinary skill in the art to which the present invention pertains, it will be apparent that components according to the present invention can be substituted, modified and changed without departing from the technical spirit of the present invention.

1: 단말장치 100: 진단장치
110: URL 수집부 120: URL 변조부
130: 진단부 200: 진단대상서버
1: terminal device 100: diagnostic device
110: URL collection unit 120: URL modulator
130: diagnosis unit 200: diagnosis target server

Claims (12)

LFI(Local File Inclusion) 취약점을 진단하는 진단장치의 취약점 진단방법에 있어서,
진단대상 서버로부터 추출한 진단대상 URL(Uniform Resource Locator) 주소를 수신하는 단계;
상기 진단대상 URL 주소에 대한 응답을 상기 진단대상 서버에게 요청하여, 기준 응답데이터로 저장하는 단계;
상기 진단대상 URL 주소 내 포함된 파라미터를 변조하여, 동일한 경로를 나타내는 상대경로(relative path) 형식의 제1 변조 URL 주소를 생성하는 단계;
상기 제1 변조 URL 주소에 대한 응답을 상기 진단대상 서버에게 요청하여, 제1 응답데이터로 저장하는 단계; 및
상기 기준 응답데이터와 제1 응답데이터가 불일치하면, 상기 진단대상 서버는 상기 LFI 취약점이 없는 것으로 판별하는 단계를 포함하는 것으로,
상기 제1 변조 URL 주소를 생성하는 단계는
상기 파라미터가 위치하는 현재 디렉토리를 지시하는 식별자를 추가하여, 상기 상대경로를 설정하는 것을 특징으로 하는 취약점 진단방법.
A method for diagnosing vulnerabilities of a diagnostic device for diagnosing LFI (Local File Inclusion) vulnerabilities, the method comprising:
Receiving a diagnosis target URL (Uniform Resource Locator) address extracted from the diagnosis target server;
requesting a response to the diagnosis target URL address from the diagnosis target server and storing it as reference response data;
generating a first modulated URL address in the form of a relative path indicating the same path by modulating parameters included in the diagnosis target URL address;
requesting a response to the first forged URL address from the server to be diagnosed and storing it as first response data; and
If the reference response data and the first response data do not match, the server to be diagnosed includes the step of determining that there is no LFI vulnerability,
The step of generating the first forged URL address is
Vulnerability diagnosis method, characterized in that the relative path is set by adding an identifier indicating the current directory in which the parameter is located.
삭제delete LFI(Local File Inclusion) 취약점을 진단하는 진단장치의 취약점 진단방법에 있어서,
진단대상 서버로부터 추출한 진단대상 URL(Uniform Resource Locator) 주소를 수신하는 단계;
상기 진단대상 URL 주소에 대한 응답을 상기 진단대상 서버에게 요청하여, 기준 응답데이터로 저장하는 단계;
상기 진단대상 URL 주소 내 포함된 파라미터를 변조하여, 동일한 경로를 나타내는 상대경로(relative path) 형식의 제1 변조 URL 주소를 생성하는 단계;
상기 제1 변조 URL 주소에 대한 응답을 상기 진단대상 서버에게 요청하여, 제1 응답데이터로 저장하는 단계; 및
상기 기준 응답데이터와 제1 응답데이터가 불일치하면, 상기 진단대상 서버는 상기 LFI 취약점이 없는 것으로 판별하는 단계를 포함하는 것으로,
상기 제1 변조 URL 주소를 생성하는 단계는
상기 진단대상 URL 주소를 파싱하여, 상기 진단대상 URL 주소 내에 포함된 파라미터의 키값과 밸류값을 각각 추출하고, 상기 키값과 밸류값을 키-밸류 쌍으로 저장하는 것을 특징으로 하는 취약점 진단방법.
A method for diagnosing vulnerabilities of a diagnostic device for diagnosing LFI (Local File Inclusion) vulnerabilities, the method comprising:
Receiving a diagnosis target URL (Uniform Resource Locator) address extracted from the diagnosis target server;
requesting a response to the diagnosis target URL address from the diagnosis target server and storing it as reference response data;
generating a first modulated URL address in the form of a relative path indicating the same path by modulating parameters included in the diagnosis target URL address;
requesting a response to the first forged URL address from the server to be diagnosed and storing it as first response data; and
If the reference response data and the first response data do not match, the server to be diagnosed includes the step of determining that there is no LFI vulnerability,
The step of generating the first forged URL address is
A method for diagnosing a vulnerability, characterized in that by parsing the diagnosis target URL address, extracting a key value and a value value of a parameter included in the diagnosis target URL address, respectively, and storing the key value and the value value as a key-value pair.
제3항에 있어서, 상기 제1 변조 URL 주소를 생성하는 단계는
상기 키-밸류 쌍에서 상기 밸류값에 현재 디렉토리를 지시하는 식별자를 추가하여 제1 변조 키-밸류 쌍을 생성하고, 상기 제1 변조 키-밸류 쌍으로 상기 진단대상 URL 주소 내 파라미터를 치환하여, 상기 제1 변조 URL 주소를 생성하는 것을 특징으로 하는 취약점 진단방법.
The method of claim 3, wherein the generating of the first forged URL address comprises:
In the key-value pair, an identifier indicating a current directory is added to the value value to generate a first tampered key-value pair, and a parameter in the diagnosis target URL address is substituted with the first tampered key-value pair, Vulnerability diagnosis method, characterized in that generating the first forged URL address.
제3항에 있어서,
상기 진단대상 URL 주소 내에 상기 파라미터가 포함되지 않으면, 상기 진단대상 URL 주소가 POST 방식에 해당하는지를 확인하고, 상기 POST 방식에 해당하면 바디(body)부 내에 데이터가 존재하는 지 확인하는 단계; 및
상기 진단대상 URL 주소가 상기 POST 방식에 해당하고, 상기 바디부에 데이터가 존재하면, 상기 바디부에 포함된 파라미터를 파싱하여 각각 키값과 밸류값으로 추출하고, 상기 키-밸류 쌍으로 저장하는 단계를 더 포함하는 것을 특징으로 하는 취약점 진단방법.
4. The method of claim 3,
if the parameter is not included in the diagnostic target URL address, checking whether the diagnostic target URL address corresponds to the POST method, and checking whether data exists in a body portion if the diagnostic target URL address corresponds to the POST method; and
If the diagnosis target URL address corresponds to the POST method and data exists in the body part, parsing the parameters included in the body part, extracting each key value and value value, and storing the key-value pair as the key-value pair; Vulnerability diagnosis method, characterized in that it further comprises.
제4항에 있어서,
상기 기준 응답데이터와 제1 응답 데이터가 일치하면, 상기 진단대상 서버에 상기 LFI 취약점이 존재하는지 검증하는 단계를 더 포함하는 취약점 진단방법.
5. The method of claim 4,
If the reference response data and the first response data match, verifying whether the LFI vulnerability exists in the server to be diagnosed.
제6항에 있어서, 상기 검증하는 단계는
상기 키-밸류 쌍에 포함된 상기 밸류값 내에 적어도 2개의 상기 식별자를 추가하여 제2 변조 키-밸류 쌍을 생성하는 단계;
상기 제2 변조 키-밸류 쌍으로 상기 진단대상 URL 주소 내 파라미터를 치환하여 제2 변조 URL 주소를 생성하고, 상기 제2 변조 URL 주소에 대한 응답을 상기 진단대상 서버에게 요청하여 제2 응답데이터로 저장하는 단계; 및
상기 제1 응답데이터와 상기 제2 응답데이터가 일치하면, 상기 진단대상 서버는 상기 LFI 취약점이 없는 것으로 판별하는 단계를 더 포함하는 취약점 진단방법
The method of claim 6, wherein the verifying comprises:
generating a second modulation key-value pair by adding at least two identifiers to the value included in the key-value pair;
A second forged URL address is generated by substituting a parameter in the diagnostic target URL address with the second forged key-value pair, and a response to the second forged URL address is requested from the diagnostic target server as second response data saving; and
If the first response data and the second response data match, the diagnosis target server further comprising the step of determining that there is no LFI vulnerability
제7항에 있어서,
상기 제1 응답데이터와 제2 응답데이터가 불일치하면, 상기 키-밸류 쌍에 포함된 상기 밸류값을, 상기 식별자와 결합한 제1 문자열로 치환하여 제3 변조 키-밸류 쌍을 생성하는 단계;
상기 제3 변조 키-밸류 쌍으로 상기 진단대상 URL 주소 내 파라미터를 치환하여 제3 변조 URL 주소를 생성하고, 상기 제3 변조 URL 주소에 대한 응답을 상기 진단대상 서버에게 요청하여 제3 응답데이터로 저장하는 단계; 및
상기 제1 응답데이터와 제3 응답데이터가 일치하면, 상기 진단대상 서버는 상기 LFI 취약점이 없는 것으로 판별하는 단계를 더 포함하는 취약점 진단방법.
8. The method of claim 7,
generating a third modulation key-value pair by replacing the value included in the key-value pair with a first string combined with the identifier when the first response data and the second response data do not match;
A third forged URL address is generated by substituting parameters in the diagnostic target URL address with the third forged key-value pair, and a response to the third forged URL address is requested from the diagnostic target server as third response data saving; and
When the first response data and the third response data match, the method of diagnosing the vulnerability further comprising the step of determining that the server to be diagnosed does not have the LFI vulnerability.
제8항에 있어서,
상기 제1 응답데이터와 제3 응답데이터가 불일치하면, 상기 키-밸류 쌍에 포함된 상기 밸류값을, 상기 식별자와 결합한 제2 문자열로 치환하여 제4 변조 키-밸류 쌍을 생성하는 단계;
상기 제4 변조 키-밸류 쌍으로 상기 진단대상 URL 주소 내 파라미터를 치환하여 제4 변조 URL 주소를 생성하고, 상기 제4 변조 URL 주소에 대한 응답을 상기 진단대상 서버에게 요청하여 제4 응답데이터로 저장하는 단계; 및
상기 제3 응답데이터와 제4 응답데이터가 불일치하면, 상기 진단대상 서버는 상기 LFI 취약점이 없는 것으로 판별하는 단계를 더 포함하는 취약점 진단방법.
9. The method of claim 8,
generating a fourth modulation key-value pair by replacing the value included in the key-value pair with a second string combined with the identifier when the first response data and the third response data do not match;
A fourth forged URL address is generated by substituting a parameter in the diagnostic target URL address with the fourth forged key-value pair, and a response to the fourth forged URL address is requested from the diagnostic target server as fourth response data saving; and
If the third response data and the fourth response data do not match, determining, by the server to be diagnosed, that there is no LFI vulnerability.
제9항에 있어서,
상기 제3 응답데이터와 제4 응답데이터가 일치하면, 상기 진단대상 서버는 상기 LFI 취약점을 포함하는 것으로 판단하는 단계를 더 포함하는 취약점 진단방법.
10. The method of claim 9,
When the third response data and the fourth response data match, the method further comprising determining, by the server to be diagnosed, that the LFI vulnerability is included.
하드웨어와 결합되어 제1항, 제3항 내지 제10항 중 어느 한 항의 취약점 진단방법을 수행하기 위하여 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a medium in combination with hardware to perform the method for diagnosing the vulnerability of any one of claims 1 and 3 to 10.
진단대상 서버에 대한 LFI(Local File Inclusion) 취약점을 진단하는 진단장치에 있어서,
진단대상 서버로부터 추출한 진단대상 URL(Uniform Resource Locator) 주소를 수신하는 URL 수집부;
상기 진단대상 URL 주소 내 포함된 파라미터를 변조하여, 동일한 경로를 나타내는 상대경로(relative path) 형식의 제1 변조 URL 주소를 생성하는 URL 변조부; 및
상기 진단대상 서버로 상기 진단대상 URL 주소와, 상기 제1 변조 URL 주소에 대한 응답을 각각 요청하고, 상기 응답이 서로 불일치하면 상기 진단대상 서버는 상기 LFI 취약점이 없는 것으로 판별하는 진단부를 포함하는 것으로,
상기 URL 변조부는
상기 파라미터가 위치하는 현재 디렉토리를 지시하는 식별자를 추가하여, 상기 상대경로를 설정하는 것을 특징으로 하는 진단장치.
A diagnostic device for diagnosing LFI (Local File Inclusion) vulnerabilities for a server to be diagnosed, comprising:
a URL collection unit for receiving a diagnosis target URL (Uniform Resource Locator) address extracted from a diagnosis target server;
a URL modulator for generating a first modulated URL address in a relative path format indicating the same path by modulating parameters included in the diagnosis target URL address; and
A diagnosis unit that requests a response to the diagnosis target URL address and the first forged URL address from the diagnosis target server, and determines that the diagnosis target server does not have the LFI vulnerability if the responses do not match each other ,
The URL modulator
The diagnosis apparatus according to claim 1, wherein the relative path is set by adding an identifier indicating a current directory in which the parameter is located.
KR1020200126210A 2020-09-28 2020-09-28 Apparatus and method for analyzing vulnerabilities KR102433386B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200126210A KR102433386B1 (en) 2020-09-28 2020-09-28 Apparatus and method for analyzing vulnerabilities

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200126210A KR102433386B1 (en) 2020-09-28 2020-09-28 Apparatus and method for analyzing vulnerabilities

Publications (2)

Publication Number Publication Date
KR20220042861A KR20220042861A (en) 2022-04-05
KR102433386B1 true KR102433386B1 (en) 2022-08-18

Family

ID=81181709

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200126210A KR102433386B1 (en) 2020-09-28 2020-09-28 Apparatus and method for analyzing vulnerabilities

Country Status (1)

Country Link
KR (1) KR102433386B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116738442B (en) * 2023-08-10 2023-12-08 北京安博通科技股份有限公司 Defensive vulnerability scanning detection method and device, electronic equipment and medium

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101001132B1 (en) * 2008-02-22 2010-12-15 엔에이치엔비즈니스플랫폼 주식회사 Method and System for Determining Vulnerability of Web Application

Also Published As

Publication number Publication date
KR20220042861A (en) 2022-04-05

Similar Documents

Publication Publication Date Title
US10503910B2 (en) Security testing framework including virtualized server-side platform
CN108989355B (en) Vulnerability detection method and device
US20180351986A1 (en) Cross-site request forgery (csrf) vulnerability detection
KR102231726B1 (en) Apparatus and method for analyzing vulnerabilities
Zhang et al. SRFuzzer: an automatic fuzzing framework for physical SOHO router devices to discover multi-type vulnerabilities
US11748487B2 (en) Detecting a potential security leak by a microservice
KR20130126251A (en) System and method for web service monitoring
US8667298B2 (en) Module signing for unprivileged users to create and load trustworthy kernel modules
WO2014021190A1 (en) Program execution device and program analysis device
KR102433386B1 (en) Apparatus and method for analyzing vulnerabilities
CN111611590A (en) Method and device for data security related to application program
Kim et al. {FuzzOrigin}: Detecting {UXSS} vulnerabilities in browsers through origin fuzzing
Malik et al. An empirical study of vulnerabilities in edge frameworks to support security testing improvement
CN114091031A (en) Class loading protection method and device based on white rule
Zhang et al. ESRFuzzer: an enhanced fuzzing framework for physical SOHO router devices to discover multi-Type vulnerabilities
Skrupsky et al. Waves: Automatic synthesis of client-side validation code for web applications
Steinhauser et al. DjangoChecker: Applying extended taint tracking and server side parsing for detection of context‐sensitive XSS flaws
US20210209227A1 (en) System and method for defending applications invoking anonymous functions
KR102415833B1 (en) Apparatus and method for analyzing vulnerabilities
KR102459418B1 (en) Apparatus and method for analyzing vulnerabilities
Xue Using redundancy to improve security and testing
Bates et al. Retrofitting applications with provenance-based security monitoring
CN112989343A (en) Method, electronic device and medium for detecting network security of super-convergence platform
US20240104222A1 (en) System and method for agentless host configuration detection of an image in a virtualized environment
Aslam et al. ASArP: automated security assessment & audit of remote platforms using TCG-SCAP synergies

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right