[Webhacking] 파일 업로드 취약점 실습
2021. 4. 22. 17:53
Hacking/Webhacking
실습 환경 : kali-linux-2021(공격자 pc) -> BeeBox 1) BeeBox : low set 우리가 입력한 명령을 system 함수를 통해 실행해주는 간단한 웹셀이다. 2) BeeBox : medium set 지금까지 파일업로드 취약점을 통해 웹서버 정보를 하나씩 획득해보았다면, 지금부터 데이터베이스 커넥션을 통해 데이터들을 하나씩 가져오는 실습을 진행해보겠다.
[Webhacking] 파일 업로드 취약점 공격
2021. 4. 22. 17:18
Hacking/Webhacking
파일 업로드 취약점 공격 웹 서비스 첨부 파일, 환경 설정 미흡을 이용하여 악의적인 스크립트가 포함된 파일을 업로드 한 후에 웹 서버에 침투를 하는 공격 공격자는 서버 사이드 스크립트(PHP, JSP, .NET 등)을 이용하여 웹쉘(WebShell)을 제작 웹쉘(WebShell)은 원격에서 웹 서버를 제어하기 위한 목적으로 만들어졌으나, 지금은 웹쉘 = 악성코드라고 분류를 하여 안티 바이러스에서 탐지함 게시판 첨부 파일, 이력서 첨부 파일, 이미지 첨부 파일, 웹 채팅방 파일 공유 기능 등에서 발생 직접 만들어 사용할 수 있으나, https://github.com/tennc/webshell 같은 깃허브에서 쉽게 구할 수 있음 파일 업로드 취약점 공격의 목적 1. 웹 서버를 통해 데이터베이스의 정보를 획득..
[Webhacking] XSS 취약점 실습
2021. 4. 15. 17:33
Hacking/Webhacking
Stored XSS 취약점 실습 환경 : kali-linux-2021(공격자 pc) -> bee-box Reflected XSS 취약점 DB에 저장이 되지 않음. reflected 의 경우 사이트에서 많이 차단됌. -> info 정도의 역할 "> 다음의 코드를 주소창에 삽입
[Webhacking] XSS 취약점 공격
2021. 4. 15. 16:50
Hacking/Webhacking
XSS 취약점 공격이란? 클라이언트 스크립트 (Javascript, VBscript 등) 를 이용하여 사용자에게 특정 행위를 하게 해서 악의적인 목적으로 이용하는 것 XSS 취약점을 이용한 공격 유형 1. 악성코드 배포 공격자는 게시판에 악의적인 행위를 하는 스크립트를 삽입 사용자들이 해당 게시물에 접근했을 때 악성코드 배포사이트로 유도 사용자는 자신도 모르게 악성코드(랜섬웨어, 개인정보 유출 등)에 감염 2. 다른 사용자의 권한 획득 공격자는 게시판에 악의적인 행위를 하는 스크립트를 삽입 사용자들이 해당 게시물에 접근했을 때 자신의 쿠키 정보를 공격자 서버에 전달 및 저장 공격자는 획득한 쿠키 정보를 이용하여 다른 사용자의 권한 획득 3. 피싱 사이트 유도 공격자는 게시판에 악의적인 행위를 하는 스크립..
[Webhacking] Time based SQL Injection 실습
2021. 4. 11. 18:55
Hacking/Webhacking
실습 환경 : kali-linux(공격자 pc) ---> bee-box(희생자 pc) kali-linux에서 bee-box ip로 접속 앞에서 배운 error based sqli, blind sqli 과 달리 존재하냐 존재하지 않느냐는 (참 거짓) 도 뜨지 않는다. 이럴 때 sleep() 을 이용해 time based sqli을 할 수 있다. 다음과 같이 입력했을 때, 실제로 sleep()이 먹혀서 계속 응답을 기다리는 현상을 볼 수 있다. time based sqli은 블라인드 인젝션 + 뒤에 sleep()를 붙인 것으로, 값이 참일 때만 반응한다. ' or 1=1 and substring(database(), 1, 1) = 'b' and sleep(1)# ' or 1=1 and ascii(substr..
[Webhacking] Blind SQL Injection 실습
2021. 4. 11. 18:33
Hacking/Webhacking
실습 환경 : kali-linux(공격자 pc) ---> bee-box(희생자 pc) kali-linux에서 bee-box ip로 접속 Error based SQLi 과 달리 존재한다, 존재하지 않는다의 정보(참 or 거짓)만 알 수 있다. DB 정보 확인(bWAPP) 1. 길이를 물어본다. 2. 문자열 검색 데이터베이스 첫번째 값에서 하나를 가져온다는 뜻. ' or 1=1 and ascii(substring(database(), 1, 1)) = 98# 다음과 같이 ascii 코드 값으로 물어보면, for문으로 매칭 시킬 수 있다. DB 내 테이블에서 칼럼 정보들 하나씩 가져오기 table_name이 'users'인 곳의 column_name에서 첫번째 꺼를 가져오기(limit 0, 1 이용해서) -> ..
[Webhacking] Error Based SQL Injection 실습
2021. 4. 10. 23:37
Hacking/Webhacking
실습 환경 : kali-linux(공격자 pc) ---> bee-box(희생자 pc) kali-linux에서 bee-box ip로 접속 bee-box의 DB 확인 mysql -u root -p kali-linux(공격자 pc)에서 DB 정보 획득 위 명령어를 통해 db 칼럼의 개수가 7개인 것을 확인했다. 또 뒤에 숫자 2,3,5,4 가 붙은 것을 알 수 있다. @@version을 통해 버전 정보 확인 information_schema로부터 테이블 정보 갖고옴. information_schema 로부터 column_name을 얻어옴. 우리가 관심있는 password, id 등의 데이터를 발견함. users로부터 login, password, email에 해당하는 데이터를 얻음 알아낸 password가 S..
[Webhacking] SQL Injection
2021. 4. 10. 23:12
Hacking/Webhacking
SQL Injection 이란? SQL Query를 처리하는 과정에서 예상치 못한 입력 값에 의해 DBMS 정보 노출, 특정 명령어 실행 등이 발생하는 취약점 공격자는 정상적인 값 대신 자신이 원하는 값을 웹에 요청하고, 웹은 데이터베이스에 요청을 한 뒤 결과 값이 웹을 통해 노출되거나 유추할 수 있는 형태로 출력됨 -> 웹서버에서 입력값 검증을 제대로 하지 않아서 일어나는 취약점 SQL Injectoin을 이용한 인증 우회 인증 처리 프로세스에서 '참' 값을 만들어주면서 정상적인 계정 정보 입력을 우회하게 됨 쿼리 질의문 예 Select * from members where id=admin and pass=1234 원래 위와 같은 형태인데, 아래와 같이 '참'으로 만들어서 우회 Select * from..