일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 필터링 우회
- DNS 정보수집
- SecureCheq
- openvas
- WHISTL
- code injection
- metasploit
- SQL Injection
- JSP 우회
- shellshock
- aslr
- Nexpose
- File Upload-ZIP
- exploit-db
- msfconsole
- ASCII-Aromor
- root-me
- 취약점
- 파일 업로드
- bash shell bug
- ctf
- 배시쉘 버그
- assert()
- MBSA
- file upload
- Lampiao
- GHDB
- Canary
- 메모리 보호
- MySQL 원격 로그인.
- Today
- Total
나만의 연습장
Code Injection 본문
!!!경고!!!
본 게시물에는 해킹 기법에 관련한 정보가 포함되어 있습니다.
이를 사용하여 악용할 시에는 법적 문제가 발생할 수 있으며
공격으로 인한 사고에 대해서 작성자는 절대 책임지지 않습니다.
이 페이지를 열함하였다는 것은 이에 동의한 것으로 간주합니다.
Code Injection
Code Injection은 유효하지 않은 데이터를 실행함으로써 야기되는 소프트웨어 버그의 부당한 사용이다.
Injection은 공격자에 의해서 취약한 컴퓨터 프로그램 코드를 삽입하고 실행을 변경하는 방식으로 이용된다.
성공적인 코드 인젝션은 이것을 이용한 웜의 전파 같이 종종 처참한 결과를 보여준다.
Injection 취약점은 애플리케이션이 인터프리터에 신뢰할 수 없는 데이터를 보낼 때 발생한다. 삽입 취약점은 매우 일반적이며 특히 낡은 코드에서 그렇다. 이것들은 주로 SQL, LDAP, Xpath, 또는 NoSQL 쿼리들 취약점은 코드 검사 때에는 발견하기 쉽지만, 테스트 시에는 발견하기 어려운 경우가 많다. 취약점 스캐너와 퍼저들은 공격자가 삽입 취약점을 찾는 것을 도와준다.
다음은 PHP에서 Code Injection에 취약한 예입니다.
/** * Get the code from a GET input * Example - http://example.com/?code=phpinfo(); */ $code = $_GET['code']; /** * Unsagely evaluate the code * Example - phpinfo(); */ eval("\$code;"); |
위의 예에서 공격자는 임의의 PHP 코드를 실행하도록 다음과 같은 요청을 할 수 있습니다.
이 경우 PHP 정보 페이지가 표시됩니다.
http://example.com/?code=phpinfo(); |
OS 명령 실행
Code Injection은 많은 피해를 줄 가능성이 있지만 공격자는 PHP 자체를 사용하여 쉘 명령을 실행하여 서버에서 임의의 운영체제 명령을 실해하여 Code Injection을 더욱 확대 할 수 있습니다.
다음은 위의 예를 참조합니다. whoami 쉘 명령을 실행합니다.
http://example.com/?code=system('whoami'); |
공격자가 OS 명령 실행을 관리하면 공격자는 웹 쉘을 사용하거나 다른 멀웨어를 설치하여 지속성을 확보 할 수 있습니다. 거기서 형성되는 공격자는 공개적으로 노출되지 않는 다른 내부 시스템으로 벗어나려고 시도 할 수 있다.
Code Injection 취약점 예방
취약점을 제거하는 가장 효과적인 방법은 절대적으로 명시적으로 필요한 경우가 아니라면 코드 평가를 회피하는 것이다. 코드 평가가 필요한 경우, 입력된 데이터에 가능한 한 많은 제한을 가하여 모든 사용자 입력을 매우 강력하게 검증하는 것이