웹해킹 (116) 썸네일형 리스트형 DVWA Insecure CAPTCHA(low) 롸업 CSRF에서 보던 것과 똑같이 비밀번호를 바꿀 수 있는 페이지가 있는데 캡차를 해야 하는 기능이 추가되었다. DVWA File Upload(low) 롸업 파일을 업로드할 수 있는 기능이 있다. 구성 코드이다. 아무 파일이나 선택해서 업로드하면 hackable/uploads/ 폴더에 업로드되었다고 뜬다. 찾아가 보면 이렇게 업로드 된 것을 볼 수 있다. 파일 형식을 검사하지 않기 때문에 이미지 파일이 아니라 텍스트 파일도 올라갔다. 이를 이용해 php 웹 셸 코드를 올린다. DVWA File Inclusion(low) 롸업 file inclusion은 다른 파일을 소스 코드에 직접 삽입할 수 있고, 사용자가 웹 요청을 통해 include 할 파일을 직접 설정할 수 있는 경우에 발생하는 취약점입니다. 이런 식으로 파일을 클릭하면 url 링크에 page=파일 이름 이런 식으로 요청이 보내지게 된다. url에서 파일 이름을 바꾸면 원하는 파일을 불러와 실행할 수 있게 된다. xampp의 htdocs->DVWA->vulnerabilities->fi 폴더 안에 test.php파일을 만들고 이런 식으로 php 코드를 넣고 링크에 test.php를 넣으면 실행이 된다. DVWA CSRF(low) 롸업 ' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '' ); // Feedback for the user echo "Password Changed."; } else { // Issue with passwords matching echo "Passwords did not match."; } ((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_st.. DVWA Command Injection(low) 롸업 ip 주소를 입력하는 창이 있다. 이런 코드로 구성되어 있다. 그냥 단순하게 ping 명령어를 실행해주는데 shell_exec 함수가 별도의 검사 없이 입력값을 그대로 실행하기 때문에 127.0.0.1; ipconfig 127.0.0.1 && dir 이렇게 ;, && 등을 이용해서 ipconfig나 dir 등의 윈도우 명령어를 마음대로 사용할 수 있다. DVWA Brute Force(low) 롸업 username과 password를 입력해서 login을 하는 시스템이 있다. More Information에 있는 링크들이 공격 방법에 대한 힌트들인 것 같다. 아래에 view source 버튼으로 소스 코드를 볼 수 있다. DVWA 환경 구축 DVWA는 Damn Vulnerable Web Application의 약자로 모의해킹 테스트를 위한 환경이다. 모의해킹을 위해서 의도적으로 취약하게 구성된 웹사이트이다. low, medium, high, impossible의 보안 단계가 있다. https://github.com/digininja/DVWA GitHub - digininja/DVWA: Damn Vulnerable Web Application (DVWA) Damn Vulnerable Web Application (DVWA). Contribute to digininja/DVWA development by creating an account on GitHub. github.com 다운로드는 이 깃허브 링크에서 할 수 있다. DVWA를 실행하기 위.. 드림핵 blind-command 롸업 Read the flag file XD #!/usr/bin/env python3 from flask import Flask, request import os app = Flask(__name__) @app.route('/' , methods=['GET']) def index(): cmd = request.args.get('cmd', '') if not cmd: return "?cmd=[cmd]" if request.method == 'GET': '' else: os.system(cmd) return cmd app.run(host='0.0.0.0', port=8000) 구성 코드가 상당히 짧다. GET이 아니라 다른 방식으로 요청을 보내면 system 명령어를 사용해 cat flag.py로 플래그를 얻을 .. 이전 1 ··· 9 10 11 12 13 14 15 다음