세션ID에 대한 지식은 로그인한 후 특정 사용자로 사이트에 접근하는데 필요한 유일한 것. 세션ID를 계산하거나 추측할 수 있는 경우 공격자는 사용자계정 비밀번호에대한 무작위대입법이나 XSS과 같이 다른 취약점을 찾을 필요없이 사용자의 계정에 접근할수 있음. Low - 이페이지는 버튼을 누르면 dvwaSession이라는 새로운 Cookie를 발급해준다 나옴 ㅇㅇ. - Generate 버튼 클릭 시 PHP SessionID를 제외한 dvwaSession 쿠키값이 생김. - 버튼을 누를때마다 dvwaSession 값이 1씩 증가한다는것을 알 수 있음. - 소스코드를 보면 마지막세션값 +1 하여 쿠키값을 설정하고있음. Medium - Medium레벨은 dvwaSession값이 Numeric한 문자열이 나와있음...
파일 업로드 취약점은 파일을 업로드하는 기능에 보안대책이 적용되지 않았을 때 발생. 파일 업로드 기능 구현시, 아무파일을 업로드할수있게 허용하면 웹셀을 통하여 시스템으로 침투할수 있음. Low 레벨 weevely를 이용한 웹쉘 - 공격자측에서 weevely를 통하여 웹셀을 생성. 패스워드는 password로 생성 - 생성된 웹쉘은 난독화되어있음. - 피해자 서버에 웹쉘 업로드. 빨간 글씨로 업로드되어있는 경로가 나와있음. Path Traversal 공격 가능할듯함. - 공격자서버로와서 weevley로 웹쉘 연결 weevely 희생자서버업로드경로/업르드파일이름 비밀번호 - 정상적으로 피해자의 쉘을 따올수 있음. MSFVENOM과 METASPLOIT을 활용한 Reverse_Shell - 공격자측에서 veno..
- 파일 인클루젼공격은 주로 PHP 애플리케이션을 대상으로 발생. (PHP에서는 Include라는 함수를 이용하여 다른 파일을 소스코드에 포함시킬수 있기때문. include도있지만, require함수도 있음.) - 파일 인클루전 공격은 공격자가 Include할 수 있는 파일이 호스트내부의 파일인지 외부의 파일인지에 따라 LFI(Local File Inlcusion)과 RFI(Remote File Inclusion) 두 종류로 나뉨. Low 레벨 - 각페이지의 요청이 상단 URL의 파라미터를 통해 지정되는 것이 문제. - 파일의 경로가 파라미터를 통해 전달되면 File Inclusion공격이나 Directory Traversal(Path Traversal)공격 시도 가능. - 웹 애플리케이션이 입력값 검증..
사용자의 웹 브라우저에서 실행되는 것은 동일하지만, 스크립트가 웹 서버에서 저장되었다가 실행되는 점에서 Reflected XSS와 차이점이 있음. Reflected XSS처럼 XSS에 취약한 웹사이트로 유도하는 피싱작업이 필요없고, 공격자가 직접 웹서버에 스크립트를 저장시키는 공격. - Stored XSS를 통하여 희생자의 쿠키 정보를 탈취하고 사용자 권한 획득 후, 사용자의 단말에 침투하여 악성코드를 배 포하는 행위가 대표적. 동작 원리: 1. 게시판에 악의적인 스크립트 작성. 2. 게시판에 스크립트가 삽입되었으면, 웹서버 DB의 어느 Table에 스크립트가 저장되었음을 의미. 3. 해당 페이지에 접속하면, 브라우저는 웹페이지에 대한 리소스를 서버에게 요청을 하게되는데, 이때 서버 DB에 저장 되어있던..
https://revi1337.tistory.com/140 [DVWA] XSS (Reflected) XSS 취약점은 애플리케이션에서 브라우저로 전송하는 페이지에서 사용자가 입력하는 데이터를 검증하지 않거나 출력 시 악의적인 데이터를 제한시키지 않을 때 발생하는 취약점임. 따라서 공격 revi1337.tistory.com 이번 포스팅은 Reflected XSS의 Medium, High, 그리고 impossible레벨의 소스코드를 볼 것임. XSS 취약점은 애플리케이션에서 브라우저로 전송하는 페이지에서 사용자가 입력하는 데이터를 검증하지 않거나 출력 시 악의적인 데이터를 제한시키지 않을 때 발생하는 취약점임. 따라서 공격자는 악의적인 스크립트 코드를 웹 애플리케이션에 삽입한 후 웹 사용자의 웹 브라우저에서 ..
XSS 취약점은 애플리케이션에서 브라우저로 전송하는 페이지에서 사용자가 입력하는 데이터를 검증하지 않거나 출력 시 악의적인 데이터를 제한시키지 않을 때 발생하는 취약점임. 따라서 공격자는 악의적인 스크립트 코드를 웹 애플리케이션에 삽입한 후 웹 사용자의 웹 브라우저에서 해당 코드가 실행되도록 만드는 공격할 수 있음. XSS 공격은 공격자가 삽입한 스크립트 코드가 언제 실행되는지에 따라 Reflected, Stored 그리고 DOM XSS로 구분됨. - Reflected XSS는 요청 메시지에 입력된 스크립트 코드가 즉시 응답 메시지를 통해 출력되는 취약점임. 말뜻 그대로 입 력된 스크립트가 Relfected (반사)되는 것처럼 동작하기 때문에 붙은 이름임. - 통상적으로 어떤 웹 애플리케이션이 사용자가 ..
Command Injection은 명령어를 삽입한다는뜻으로, 웹 요청 메시지에 임의의 시스템 명령어를 삽입하고 전송하여 웹 서버에서 해당 명령어를 실행하도록 하는 공격. Low 레벨 - IP를 입력받는 폼이 있는 형태 - ICMP 메시지를 돌려주는 기능을 갖는 것 같음. - localhost와 127.0.0.1와 동일한 로컬 주소를 입력하니, 한글은 깨지지만, Ping Test의 결과값이 반환됨. - Command Injection은 시스템 명령어를 악의적으로 조작하는 공격이므로, 쉘 메타캐릭터를 사용하여 입력값 조작. - 메타 캐릭터는 &, &&, |, ||, 등등 특수목적을 갖는 캐릭터들을 의미함. 192.168.35.125&&dir # 리눅스에서는 ; 를 사용하여 명령어 두개를 실행시켜줄 수 있음 ..
SQL Injection과 SQL Injection (2)는 Low레벨에 대해 다뤘음 이번에는 SQL Injection의 Medium, High 레벨, 그리고 impossible레벨의 대응방안에 대해 다뤄볼 것임. Medium레벨 - 기본적인 Form 구성. 이번엔 Input박스아 아닌, select option 메뉴인것을 확인할 수있음. - 정상적으로 값을 선택하면 값에 대한 사용자 ID결과가 나옴. - 추가적으로 쿼리 스트링이 보이지않는 것을 보니 GET방식을 사용하는 Low레벨과 다르게 POST방식을 사용함. (페이지 소스보기로도 확인 할 수 있음. 요청 Method 가 POST. 입력폼이 input text가 아닌 select option) - 즉, Burp Suite가 필요하단 생각이 듬. - ..
Blind SQL(Structured Query Language) 인젝션은 데이터베이스에 참 또는 거짓 질문을 하고 애플리케이션 응답을 기반으로 답을 결정하는 SQL Injection의 한 유형임. - 데이터베이스가 웹 페이지에 데이터를 출력하지 않을 때 공격자는 데이터베이스에 일련의 참 또는 거짓 질문을 하여 데이터를 훔쳐야 함. - 기본적인 폼 구성. 일반 SQL Injection 폼과 똑같음. - 내부적인 동작을 보기 위해 정상적인 값을 입력. - userid에 대한 값에 대한 존재 여부만을 출력해주고 있음. - 6과 7을 입력했을 때는 userid가 6, 7인 값이 없다라고 출력해주고 있음. - 평소같으면 오류가 출력되어야 하는데, 값이 존재하지 않는다고 친히 말해주고 있음. (내부적으로 정상적인..
https://revi1337.tistory.com/135 [DVWA] SQL Injection 오랜 기간 계속해서 OWASP 10의 가장 심각한 리스크로 선정된 인젝션 리스크의 대표적인 공격. - SQL 인젝션은 웹 서버 영역의 데이터베이스로 전송되는 SQL 쿼리문을 사용자가 임의로 조작할 수 있 revi1337.tistory.com 저번엔 union과 ordery by로 컬럼개수를 알아내는부분까지 했었음. 이번 포스팅에서는 UNION으로 DB의 정보를 빼내는 과정을 적을 예정 ㅇㅇ union 문과 order by문을 모른다면 링크에 갔다오는 것을 추천. 존재하는 데이터베이스명 조회 MySQL에서 information_schema라는 DB에는 데이터베이스 이름, 테이블, 칼럼 정보등을 관리함. 따라서,..