command injection

Web Hacking Advanced

[dreamhack] File Vulnerability Advanced for linux

문제풀이API_KEY = os.environ.get('API_KEY', None)def key_required(view): @wraps(view) def wrapped_view(**kwargs): apikey = request.args.get('API_KEY', None) if API_KEY and apikey: if apikey == API_KEY: return view(**kwargs) return 'Access Denined !' return wrapped_view@app.route('/', methods=['GET'])def index(): return 'API Index'@app.route(..

Web Hacking Advanced

[dreamhack] Command Injection Advanced

문제분석 & 풀이url을 입력하고 curl 요청하는 페이지다. 코드를 확인해보자. cache file: {$cache_file}"; echo ''. htmlentities($result) .''; return; }}else{?>코드 분석url은 http로 시작해야한다.curl $url 로 curl 명령을 실행한다.캐시 파일을 /cache 경로에 저장한다.실행 결과를 화면에 출력한다. url을 이용해서 curl 명령을 실행한다. 따라서 ;와 같은 문자를 추가하면 curl 명령 외에도 임의의 명령을 실행시켜서 command injection을 수행하는 방식을 생각했다. 하지만 escapeshellcmd($_GET['url'])로 ;, | 등의 문자열을 사용해도 이스케이프 처리되..

Web Hacking Advanced

[dreamhack] command-injection-1

개념정리Command injection에 대해 알아보자. ○ Command Injection인젝션은 악의적인 데이터를 프로그램에 입력하여 시스템 명령어, 코드, 데이터베이스 쿼리 등이 실행되게 하는 기법을 말한다. 이 중, 시스템 명령어를 실행하게 하는 취약점을 Command Injection이라고 부른다. Command Injection은 사용자의 입력값을 제대로 검증하지 않는 경우에 발생한다. 특히, 리눅스에서는 여러 명령을 연속으로 실행할 수 있는 메타문자들을 제공하기 때문에 공격자는 Command Injection을 수행하여 본인이 원하는 명령을 실행시킬 수 있다. ○ 메타 문자 종류명령어 치환` `` ` 안에 포함되는 명령어를 실행한 결과로 치환한다.$()$()안에 들어있는 명령어를 실행한 결과..

ftz

[ftz] level3

문제분석 & 풀이힌트 먼저 확인해보자. 요약하면 autodig 코드를 보여주고 있으며, autodig를 이용하여 level4의 권한을 얻는 문제인 것 같다. ○ 코드 분석1. cmd[100]이라는 배열을 선언한다.2. argc != 2 , 즉 argv 갯수가 2개여야 한다.3. strcpy(), strcat()을 이용하여 cmd라는 배열에 값을 넣어주고 있다.("dig @ [사용자가 입력한 인자 값] version.bind chaos txt"와 같은 형태로 cmd에 저장된다.)4. 마지막으로 cmd 배열에 저장된 값을 인자로 하는 system 명령을 실행한다. 결과적으로system("dig @ [사용자가 입력한 인자 값] version.bind chaos txt") 를 실행하는 코드이다. 그러나 leve..

webhacking.kr

[webhacking.kr] old-44 (OS Command Injection)

문제분석 & 풀이페이지에 접속하면 name을 입력하는 창이 나온다. 코드를 확인해보면, name을 POST 형식으로 서버에 전송한다. 다음으로 php 코드를 확인해보자. name으로 전송한 값을 $id에 저장하고 system 명령을 실행한다. 주석을 보면 목표는 ls 명령을 실행하는 것이라고한다. 우리가 이용할 취약점은 OS Command Injection이다. ○ OS Command Injection공격자가 임의의 시스템 명령어를 주입하여 서버단에서 원하는 명령을 실행하는 공격을 뜻한다. 웹 애플리케이션에서 system(), exec()와 같은 시스템 명령어를 실행할 수 있는 함수들이 이와 같은 취약점을 제공한다. 문제에서 system()를 사용하고 있고 $id에 대한 검증이 없으므로 OS Comman..

keyme
'command injection' 태그의 글 목록