정보보안/화이트 해커를 위한 웹해킹의 기술 썸네일형 리스트형 Cross-site scripting XSS(Cross-Site Scripting) HTML, CSS에서 쓰이는 CSS와 글자가 겹치기 때문에 XSS 라고 부른다. XSS는 악의적 스크립트 코드를 웹에 삽입하여 해당코드가 실행되게 만드는 공격이다. 주요사례로 쿠키를 탈취하는 것이 있다. XSS는 스크립트 코드가 실행되는 때에 따라 reflected, stored로 구분된다. Reflected XSS Reflected XSS는 입력된 스크립트코드가 즉시 응답메세지로 출력되는 취약점이다. 위와 같은 형태로 진행되는 것 같다. 이에 대한 실습을 DVWA에서 해보았다. 이름에 asdf를 넣으니 다음과 같이 출력되는 형태이다. 입력칸에 스크립트 를 넣으니 그대로 실행되는 모습 그래서 alert(1); 스크립트로 XSS 체크를 할 수 있다. docum.. Command Injection 이번 장에서는 Command Injection에 대해서 다뤄 보았다. 위는 IP주소를 입력하면 그에 대한 핑을 가져오는 프로그램인것같다. 다음과 같은 방식 일 것이다. 코드를 보면 그와 같은 코드로 구성되어있다. -c 4 로 4번 핑을 가져오는 것이다. 하지만 다음과 같은 방식으로 입력 되면 마음대로 명령어를 실행할 수 있다.' 이런 방식으로 말이다. 이를 방지하기 위해서 입력받은 값을 system함수를 사용하는것이 아니라 제공하는 함수를 사용하라고 권장하고 있다. 또는 입력받은 값을 검증하는 방식도 같이 사용되어야 한다. Blind SQL Injection 저번 SQL Injection에 이어서 이번에는 Blind SQL Injection에 대해서 공부해 보았다. DVWA의 Blind SQL Injection에 들어간다. 1을 넣었을때는 ID가 존재한다고 나오고 SQL Injection검사하는것처럼 '를 넣었을때는 ID가 데이터베이스에 없다고 나온다. 이때 위의 방식 처럼 항상 FALSE인 경우를 넣어 입력된 쿼리문이 ID가 존재한다, 존재하지 않는다 처럼 두가지 결과로 만 나올때 Blind SQL Injection을 사용하는 것 같다. 코드를 보면 보다시피 두개의 결과만 출력 하고 있다. 1' AND SLEEP(5)# 다음 구문은 앞에가 성립할때 5초의 딜레이를 준다는 구문이다 의문) 여기서 이 문법이 이해가 안간다. AND라는것은 두개가 다 TRUE 일.. SQL Injection SQL Injeciton - WHERE 구문 우회 #ID = 1 #PASSWORD = 1234 #query SELECT name, email FROM users WHERE ID = '1' and PASSWORD = '1234' #ID = 1' or '1' = '1'-- #PASSWORD = 1234 #query SELECT name, email FROM users WHERE ID = '1' or '1' = '1'--' and PASSWORD = '1234' SELECT name, email FROM users WHERE ID = '1' or '1' = '1' or True 형태를 만들어서 필요한 정보를 가져오는 방식 - UNION 공격 SELECT name, email FROM users WHERE ID.. 취약한 인증 공격 책의 내용에 따라 브루트포스 공격을 실습해보고자 한다. 크게 두가지로 나뉜다 - 모든 경우의 수 를 넣는 브루트포스 - 자주 비밀번호로 쓰는 리스트를 넣는 딕셔너리 어택 실습을위해 DVWA에 접속했다. 브루트포스는 다음과 같은 화면이다. 비밀번호가 틀리면 다음과 같이 뜬다. 전전시간에 배운 BurpSuite의 Intruder 기능을 이용하여 Brute Force 공격을 실행해 보았다. 사이트를 로그인할때 보낸 http 요청을 찾아서 Intruder에게 보내면 아래와 같이 뜬다. 그리고 브루트포스를 할 password 부분을 설정하고 컴퓨터에 있던 password.lst (여러 비밀번호가 적혀있는 리스트 약 3000개) 를 훑으면서 응답을 확인한다. 그중 응답 길이가 다른 비밀번호가 있는데 이는 나머지는 .. 정보 수집 F12 개발자 도구 및 BurpSuite를 이용하면 응답메세지의 서버헤더 부분으로 정보를 얻을수있다. PHP언어로 개발 될 경우 phpinfo.php로 환경변수, 환경 등을 알 수 있다. nikto 라는 웹 스캐닝 프로그램으로 여러정보를 수집가능하다. ex) nikto -host ~~ 보안헤더가 설정되지 않았고 디렉토리 인덱싱이 발견되었다. 디렉토리 인덱싱 : 웹 서버 디렉토리의 파일들이 노출되는 취약점 지정된 파일들이 디렉토리에 존재하지 않으면 해당 디렉토리의 모든 파일이 출력 되는 문제 웹 애플리케이션 매핑 BurpSuite을 이용하여 어떤 정보가 주고 받는지를 확인 Dirbuster프로그램을 이용하여 폴더를 매핑 할수 있음 robots.txt (웹 로봇을 이용하여 웹사이트 정보 수집할 때 명령) 정.. Burp Suite 기능 책의 순서를 따라서 칼리리눅스로 가상환경을 구축했고 Burp Suite의 기능을 살펴 보고있다. (최신 버전의 칼리 리눅스를 쓰려다 잘 안돼서 17버전으로 변경했다.) 프로그램 기능은 HTTP 요청을 Intercept 해서 분석하는 듯하다. 타겟 맵들의 URL 구조를 파악할 수 있다. 스코프에 추가된 항목에 대한 정보만 계속해서 수집한다. 웹브라우저와 웹 서버가 주고받은 HTTP요청 메세지와 응답메시지를 변경 가능하다. 스파이더는 자동으로 크롤링을 수행하는 기능이다. 자동으로 여러개의 요청을 보낸다. 브루트포스 공격을 쓸때 사용해봤다. 수동으로 메세지를 조작하며 반복 테스트를 하기 위한 기능이다. 그외에도 문자열을 인코딩, 디코딩 하거나 요청을 비교하는 등의 기능을 가지고있는 BurpSuite이다. 이전 1 2 다음