본문 바로가기

웹,앱 해킹

(12)
XSS(크로스사이트스크립팅) 공격 js와 같은 스크립트 코드를 취약한 웹 애플리케이션을 통해 다른 사용자에게 전달하여 클라이언트쪽 웹 브라우저를 공격하는 기법 을 넣어봅시다. 스크립트가 입력한대로 실행이 되었습니다. 그럼 해당 쿠키값을 얼럿으로 띄어보겠습니다. 마찬가지로 해당 쿠키값이 출력 되었습니다. 그렇다면 이번에는 사용자의 쿠키값을 해커가 관리하는 시스템으로 전달하는것을 해보겠습니다. 우선 왼쪽 터미널이 해커가 관리하는 웹호스트라고 가정해봅시다. 터미널에 tail -f /opt/lampp/logs/access_log를 입력하게 되면 웹사이트의 로그가 남게됩니다. 또한 tail -f 옵션을 사용했기때문에 그 이후로의 로그도 함께 찍히게 됩니다. 한번 테스트 해봅시다. input창에 해당 소스코드를 넣어봅니다. 이렇게 되면 해커가 관리..
SQL인젝션 공격 db로 전송되는 sql쿼리문을 조작하여, 데이터를 변조하거나 허가되지 않은 정보에 접근하는 것 예전부터 최근까지 꾸준하게 사용되는 공격이다 2011년 소니 해킹 2015년 뽐뿌 해킹 2015년 어나니머스 WTO해킹 1. where 아이디가 1인 사용자정보를 요청해본다는 가정을 해보자 사용자 정보를 요청하면 웹앱은 내부에있는 DB에 sql쿼리문을 전송하게 된다. SELECT name,email FROM users WHERE ID='1' 이 쿼리문의 전체적인 뜻은 id가 '1'인 users라는 사용자테이블에서 name과 email을 가지고와달라는 뜻 입니다. 이 쿼리가 실행이 되면 id=1인 사용자 정보가 웹앱을 통해서 클라이언트까지 전달 된다. 이때 해커는 1뒤에 sql쿼리문을 조작하기 위해서 WHERE ..
CAPTCHA(캡챠) 공격 캡챠란? 이와 같이 컴퓨터가 알아볼수없는 흘려쓴 글씨나 그림을 통해서 이런 글자들을 제대로 인식하는지 확인을 통해, 사람인지 아닌지를 판별해주는 이미지 또는 글씨를 캡챠 라고 한다. 보통은 회원가입이나 패스워드 변경 등 사람이 직접하지않으면 심각한 문제가 될수있을때 사용한다. 또 브루트포스 공격처럼 프로그램을 이용한 공격을 대응할때 아주 효과적이다. 하지만 제대로 설정하지않으면 캡챠를 확인하는 과정을 우회하여, 확인을 한 것 처럼 꾸미고 해킹을 할 수 있다. 1. 난이도 하 지금 구글 캡챠가 업데이트 되면서 오류가 생긴것같은데 일단 무시하고 진행해봅시다. 해당 캡챠가 오류가 나면서 아무리 패스워드를 수정해도 캡챠부분을 통과하지 못했기때문에 패스워드 변경을 하지 못합니다. 버프스위트를 이용해서 어떤 요청이..
파일 업로드 공격 파일이 업로드 되는 페이지(게시판,sns 등)에 악성 파일(웹쉘)을 업로드 하는 방법 웹쉘이란? 커멘트 인젝션 공격에서 본것과 유사하게 웹을 통해 시스템 명령어 입력이 가능한 파일 말한다. 언어로는 php,jsp,asp 등 언어에 따라 다르니 한번 찾아보길 시스템 내에서 파일을 업로드 할 때, 이미지 파일인지 동영상 파일인지 정확하게 필터링을 하지 않는다면, 웹셀 파일을 업로드 함으로써 서버에 웹셀을 저장하게 됩니다. 그럼 업로드 된 웹셀 파일로 접근하여, 시스템 명령어를 실행 할 수 있다. 1. 난이도 하 https://github.com/SecuAcademy/webhacking/blob/master/webshell.php SecuAcademy/webhacking '화이트해커가 되기 위한 8가지 웹 해..
파일 인클루젼 공격 지정한 파일을 php include()로 소스코드에 삽입 로컬파일인클루젼(LFI) - 이미 있는 시스템이 존재하는 파일을 인클루드 리모트파일인클루젼(RFI) - 외부에 있는 파일을 원격으로 인클루드 실습 방법 1. 난이도 하 gedit /opt/lampp/htdocs/bad.php 터미널에서 g에딧을 통해 bad.php파일을 열고 해당 파일안에 해당 구문은 텍스트가 출력이 되는지 확인을 위한 문장이다 파일인클루젼 연습 페이지 상단에 있는 page= 파라미터의 값을 변경 해준다. 그럼 해당 페이지에 bad.php 내용이 호출된다. 여기서 bad.php의 구문을 바꿔보자. 이렇게 system('cat /etc/passwd'); 입력 시 해당하는 경로로 이동하게 되며, 안에 기재된 중요한 내용을 다운로드 또는..
CSRF 공격 : Cross Site Request Forgery 사이트 간 요청 위조 어떤 사용자에게 피싱을 해서 링크를 누르게 하고, 링크를 클릭하면 사용자 모르게 사이트의 어떤 기능을 실행하는 것 주로 패스워드 변경을 사용하는데에 쓰인다. 피싱이라는것은? 사회공학기법(사기법) 중의 하나로 이메일이나 게시판 등을 이용해서 마치 은행이나 유명한 대기업의 직원인 척 하면서 사람들을 낚는 공격기법이다. 2008년도에 옥션 해킹 사건에 사용된 공격 기법이다 -> 시간나면 찾아보도록! 사용자가 사이트에 정상적으로 접속하여 로그인 합니다. 사용자가 사이트에 로그인 되어있는 동안 해커가 이메일을 보내서 어떤 링크를 클릭하도록 유도 합니다. 이때, 해커는 은행 직원인척 "[은행에서 공지] 최근 보안 문제가 많이 발생하니 클릭해서..
커멘드 인젝션 공격 웹을 통해 시스템명령어(커멘드)를 실행하는 공격 웹 내부에서 시스템 명령어를 실행하는 경우, 입력값을 제대로 검사하지 않으면, 해커 마음대로 시스템 명령어를 실행 시킬 수 있다 ex) 웹사이트 진입 후 IP주소를 입력하면 ping 명령어를 실행한 후 그 결과를 알려주는 페이지 ping명령어는 IP주소를 가진 시스템이 현재 동작하는지 확인 할 때 사용하는 명령어 이다. 이때 해커는 IP;cat/etc/passwd (리눅스의 사용자 목록)를 입력했을때 IP주소형식을 가진 값인지 확인 하지 않는다면 ping IP 뒤에 해커가 입력한 문자열을 모두 붙혀서 실행하게됨 세미콜론을 넣게되면 리눅스에서는 두개의 명령어를 모두 실행하게 된다 그렇게되면 해커가 입력한 cat/etc/passwd의 내용이 보이게 된다. dv..
브루트포스 공격 및 대응 사용자 패스워드를 알아내기위한 공격 무식한 반복 대입 방법 알파벳 순 딕셔너리 공격(사람들이 자주 쓰는 패스워드로 공격) ex) abcdef,123456,qwerty 자동 브루트포스 공격 - dvwa 난이도 쉬움 버프 스위트를 이용하여 공격해보자 시작 전 Intercept is off 로 해놓은 상태로 DVWA로그인창에 admin / aaaa를 입력해보자 Proxy > HTTP history 중 가장 최근 요청을 확인 해보면 username=admin&password=aaaa 내가 입력한 요청이라는 것을 확인 할 수 있다. 최근 요청란에 우측 클릭 후 [send to intruder]를 클릭하여 intruder 기능으로 보낸다 intruder탭에 가보면 새로운 요청을 확인 할 수 있음 [intruder ..