Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
lua_CVE-2020-24370 — CVE-2020-24370을 대상으로 하는 익스플로잇으로, Lua 5.3 인터프리터를 타겟으로 하여 스크립팅 언어 런타임의 취약점을 시연합니다. | Kitploit
도구/GitHubGitHub/renukaselvar/lua_cve-2020-24370
General Purpose UtilitiesVulnerability AnalysisExploitationBinary Analysis
GitHubrenukaselvar/lua_cve-2020-24370

lua_CVE-2020-24370

CVE-2020-24370을 대상으로 하는 익스플로잇으로, Lua 5.3 인터프리터를 타겟으로 하여 스크립팅 언어 런타임의 취약점을 시연합니다.

저장소 보기
1년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Lua 5.3 README blockquote, .display { border: solid #a0a0a0 2px ; border-radius: 8px ; padding: 1em ; margin: 0px ; } .display { word-spacing: 0.25em ; }

dl.display dd { padding-bottom: 0.2em ; }

tt, kbd, code { font-size: 12pt ; }

Lua Lua 5.3에 오신 것을 환영합니다

소개 · 설치 · 변경 사항 · 라이선스 · 참조 매뉴얼

Lua 소개

Lua는 팀이 브라질 리우데자네이루의 폰티피시아 가톨릭 대학교 PUC-Rio에서 개발한 강력하고 빠르며 가볍고 내장 가능한 스크립트 언어입니다. Lua는 전 세계의 많은 제품과 프로젝트에서 사용되는 자유 소프트웨어입니다.

Lua의 공식 웹사이트는 요약 개요와 업데이트된 문서, 특히 이 패키지에 포함된 로컬 복사본과 약간 다를 수 있는 참조 매뉴얼을 포함하여 Lua에 대한 완전한 정보를 제공합니다.

Lua 설치

Lua는 소스 형태로 배포됩니다. 사용하기 전에 빌드해야 합니다. Lua는 순수 ANSI C로 구현되어 있으며 ANSI C 컴파일러가 있는 모든 알려진 플랫폼에서 수정 없이 컴파일되므로 Lua 빌드는 간단해야 합니다. Lua는 C++로도 수정 없이 컴파일됩니다. 아래 제공된 Lua 빌드 지침은 Unix 계열 플랫폼용입니다. 다른 시스템용 지침 및 사용자 정의 옵션도 참조하십시오.

직접 Lua를 컴파일할 시간이나 의향이 없다면 LuaBinaries에서 바이너리를 받으십시오. LuaDist도 시도해보십시오. 배터리가 포함된 다중 플랫폼 Lua 배포판입니다.

Lua 빌드

대부분의 Unix 계열 플랫폼에서는 적절한 대상을 사용하여 "make"를 실행하기만 하면 됩니다. 자세한 내용은 다음과 같습니다.

  1. 터미널 창을 열고 lua-5.3.5라는 이름의 최상위 디렉토리로 이동합니다. 거기에 있는 Makefile이 빌드 프로세스와 설치 프로세스를 모두 제어합니다.

  2. "make"를 실행하여 플랫폼이 나열되어 있는지 확인하십시오. 현재 지원되는 플랫폼은 다음과 같습니다:

    aix bsd c89 freebsd generic linux macosx mingw posix solaris

    플랫폼이 나열되어 있으면 "make xxx"를 실행하기만 하면 됩니다. 여기서 xxx는 플랫폼 이름입니다.

    플랫폼이 나열되어 있지 않으면 가장 가까운 것 또는 posix, generic, c89 순서로 시도하십시오.

  3. 컴파일은 몇 분밖에 걸리지 않으며 src 디렉토리에 세 개의 파일을 생성합니다: lua (인터프리터), luac (컴파일러), 그리고 liblua.a (라이브러리).

  4. Lua가 올바르게 빌드되었는지 확인하려면 Lua를 빌드한 후 "make test"를 실행하십시오. 인터프리터가 실행되고 버전이 출력됩니다.

Linux를 사용 중이고 컴파일 오류가 발생하면 readline 개발 패키지가 설치되어 있는지 확인하십시오 (아마 libreadline-dev 또는 readline-devel이라는 이름일 것입니다). 그 후에도 링크 오류가 발생하면 "make linux MYLIBS=-ltermcap"을 시도하십시오.

Lua 설치

Lua를 빌드한 후에는 시스템의 공식 위치에 설치할 수 있습니다. 이 경우 "make install"을 실행하십시오. 공식 위치와 파일 설치 방법은 Makefile에 정의되어 있습니다. 파일을 설치하려면 적절한 권한이 필요할 수 있습니다.

한 단계로 Lua를 빌드하고 설치하려면 "make xxx install"을 실행하십시오. 여기서 xxx는 플랫폼 이름입니다.

Lua를 로컬에 설치하려면 "make local"을 실행하십시오. 그러면 install 디렉토리가 하위 디렉토리 bin, include, lib, man, share와 함께 생성되고 아래와 같이 Lua가 설치됩니다.

Lua를 로컬에 설치하되 다른 디렉토리에 설치하려면 "make install INSTALL_TOP=xxx"를 실행하십시오. 여기서 xxx는 선택한 디렉토리입니다. 설치는 src 및 doc 디렉토리에서 시작되므로 INSTALL_TOP이 절대 경로가 아닌 경우 주의하십시오.

bin:
lua luac
include:
lua.h luaconf.h lualib.h lauxlib.h lua.hpp
lib:
liblua.a
man/man1:
lua.1 luac.1

개발에 필요한 디렉토리는 이것뿐입니다. Lua 프로그램만 실행하려면 bin 및 man의 파일만 있으면 됩니다. include 및 lib의 파일은 Lua를 C 또는 C++ 프로그램에 내장하는 데 필요합니다.

사용자 정의

파일을 편집하여 사용자 정의할 수 있는 세 가지 종류가 있습니다:

  • Lua를 설치할 위치 및 방법 — Makefile 편집.
  • Lua를 빌드하는 방법 — src/Makefile 편집.
  • Lua 기능 — src/luaconf.h 편집.

make를 호출할 때 명령줄에서 관련 변수를 설정할 수 있으므로 Makefile을 실제로 편집할 필요는 없습니다. 그럼에도 변경 사항을 기록하기 위해 Makefile을 편집하고 저장하는 것이 가장 좋습니다.

반면에 일부 Lua 기능을 사용자 정의해야 하는 경우 Lua를 빌드하고 설치하기 전에 src/luaconf.h를 편집해야 합니다. 편집된 파일이 설치되며, 이를 사용하여 빌드하는 모든 Lua 클라이언트에서 일관성을 유지하는 데 사용됩니다. 전문가는 Lua 소스를 편집하여 추가 사용자 정의를 할 수 있습니다.

다른 시스템에서 Lua 빌드

일반적인 Unix 도구를 사용하지 않는 경우 Lua 빌드 지침은 사용하는 컴파일러에 따라 다릅니다. 라이브러리, 인터프리터 및 컴파일러를 빌드하기 위한 프로젝트(또는 컴파일러가 사용하는 것)를 다음과 같이 생성해야 합니다:

library:
lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c lmathlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c loadlib.c linit.c
interpreter:
library, lua.c
compiler:
library, luac.c

자신의 프로그램에서 Lua를 라이브러리로 사용하려면 컴파일러로 라이브러리를 만들고 사용하는 방법을 알아야 합니다. 또한 Lua용 C 라이브러리를 동적으로 로드하려면 동적 라이브러리를 만드는 방법을 알아야 하며 Lua API 함수가 해당 동적 라이브러리에서 액세스 가능한지 확인해야 합니다 — 그러나 각 동적 라이브러리에 Lua 라이브러리를 링크하지 마십시오. Unix의 경우 Lua 라이브러리를 호스트 프로그램에 정적으로 링크하고 해당 심볼을 동적 링크용으로 내보내는 것이 좋습니다. src/Makefile은 Lua 인터프리터에 대해 이 작업을 수행합니다. Windows의 경우 Lua 라이브러리를 DLL로 사용하는 것이 좋습니다. 모든 경우에 컴파일러 luac는 정적으로 링크되어야 합니다.

위에서 언급했듯이 Lua를 빌드하기 전에 src/luaconf.h를 편집하여 일부 기능을 사용자 정의할 수 있습니다.

Lua 5.2 이후 변경 사항

다음은 Lua 5.3에 도입된 주요 변경 사항입니다. 참조 매뉴얼에는 도입되어야 했던 호환성 문제가 나열되어 있습니다.

주요 변경 사항

  • 정수 (기본적으로 64비트)
  • 32비트 숫자에 대한 공식 지원
  • 비트 연산자
  • 기본 utf-8 지원
  • 값 패킹 및 언패킹 함수

다음은 Lua 5.3에 도입된 다른 변경 사항입니다:

언어

  • userdata는 uservalue로 모든 Lua 값을 가질 수 있음
  • 바닥 나눗셈
  • 일부 메타메서드에 대한 더 유연한 규칙

라이브러리

  • ipairs와 테이블 라이브러리가 메타메서드를 존중함
  • string.dump의 strip 옵션
  • 테이블 라이브러리가 메타메서드를 존중함
  • 새 함수 table.move
  • 새 함수 string.pack
  • 새 함수 string.unpack
  • 새 함수 string.packsize

C API

  • C에서 연속 함수에 대한 더 간단한 API
  • lua_gettable 및 유사 함수가 결과 값의 유형을 반환
  • lua_dump의 strip 옵션
  • 새 함수: lua_geti
  • 새 함수: lua_seti
  • 새 함수: lua_isyieldable
  • 새 함수: lua_numbertointeger
  • 새 함수: lua_rotate
  • 새 함수: lua_stringtonumber

Lua 독립형 인터프리터

  • 계산기로 사용 가능; '='를 접두사로 붙일 필요 없음
  • 모든 코드에서 arg 테이블 사용 가능

라이선스

[OSI 인증] Lua는 아래에 재현된 MIT 라이선스의 조건에 따라 배포되는 자유 소프트웨어입니다. 상업적 목적을 포함한 모든 목적으로 전혀 비용 없이, 우리에게 요청할 필요 없이 사용할 수 있습니다.

유일한 요구 사항은 Lua를 사용하는 경우 제품 또는 해당 문서 어딘가에 적절한 저작권 표시를 포함하여 우리에게 크레딧을 제공해야 한다는 것입니다.

자세한 내용은 여기를 참조하십시오.

Copyright © 1994–2017 Lua.org, PUC-Rio.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

마지막 업데이트: 2018년 6월 18일 월요일 22:57:33 -03

도구 다운로드