webhacking.kr 문제풀이를 통한 Web Hacking 실습
 
강의 요약

    
    본 강의는 국내의 대표적인 웹 해킹 워게임 사이트인 webhacking.kr의 모든 문제들을 all clear하는 것에 목표로 두고 있으며,
    이 과정에서 웹 해킹의 원리와 다양한 웹 해킹 기법들에 대해 이해하고 모든 문제 풀이를 직접 실습할 수 있게 됩니다.
    이는 초급에서 중고급까지 다양한 웹 해킹 기술들을 접해 볼 수 있는 좋은 기회가 될 것입니다.
    


기본 정보


    • 강의명 : webhacking.kr 문제풀이를 통한 Web Hacking 실습
    • 강사 : 백호연 (Oldzombie, Grayhash 주임 연구원, webhacking.kr 운영자)
    • 강의 일정 : 2015년 9월 21일(월) ~ 9월 23일(수)
    • 강의 시간 : 매일 오전 10시~오후 6시
    • 강의 장소 : 공간 POC 트레이닝룸 [위치보기]
    • 강의 비용 : 1,000,000원 (VAT 별도)
    • 중식 및 다과 제공
    


주요 교육 내용

    
    • webhacking.kr 소개
    • 웹 기초 이론
    • 자바스크립트 해킹 문제 풀이 및 실습
    • 파라미터 변조에 대한 이해
    • 다양한 SQL injection 문제 풀이 및 실습
    • 기타 웹해킹 방식에 대한 이해 및 실습 진행
    • PHP, AJAX를 이용한 자동화 툴 개발 실습
    



상세 교육 내용


    1일차 - Web Hacking 기초
    
    [Web 기초]

    • 웹에서 사용되는 각종 프로토콜 이해 (TCP/IP, HTTP 등)
    • 웹 프록시를 이용한 패킷 변조 실습
    


    [기본문제 및 자바스크립트 문제 풀이]
    
    • base64 encode 이해 및 회원가입 문제 풀이
    • 자바스크립트의 이해 및 문제 풀이 실습
    • Parameter control 문제 풀이 및 실습
    • PHP 소스 분석 및 각종 취약점 발생 원리 이해
    • 쿠키 분석 및 변조의 이해
    • PHP를 이용한 크랙 스크립트 제작 실습
    • log, mail header, http header injection의 이해 및 문제 풀이 실습
    • Local file inclusion의 이해 및 문제 풀이 실습
    • XSS를 통한 관리자 세션 탈취 실습
    • XSS 필터링 우회
    • 정규식의 이해
    • netcat, shell script, batch script의 이해 및 실습
    



    2일차 - Web Hacking 난이도 중

    [각종 웹 취약점 문제 풀이]

    • HTTP 헤더 변조를 통한 파일 업로드 필터링 우회
    • FLASH 디컴파일 및 액션 스크립트 분석 실습
    • strings 사용 실습
    • PHP 함수 취약점 분석 실습 (fopen, copy, extract, str_replace, fwrite)
    • nc, shell script를 통한 브루트포스 실습
    • curl의 이해 및 조회수 조작 문제 풀이
    • htaccess의 이해 (파일 업로드를 통한 웹서버 설정 변경 실습)
    • 파일 업로드를 통한 웹서버 설정 변경 실습
    • Command injection의 이해 및 문제 풀이 실습
    


    [SQL injection 기초 문제 풀이]

    • SQL의 이해
    • SQL injection의 이해
    • Mysql의 이해
    • SQL injection 문제 풀이 실습
        • ascii, char, substring, hex 등 기초 함수의 이해
        • numeric sql injection
        • union select sql injection
        • getenv sql injection
        • bypass addslashes
    • SQL injection 필터링 우회
    • SQL injection을 통한 회원 데이터 추출 실습
    



    3일차 - Web Hacking 난이도 상

    [난이도 중-상 웹해킹 문제 풀이]

    • HASH 크랙 스크립트 제작 실습
    • 레이스 컨디션의 이해 및 문제 풀이 실습
    • HTTP Basic 인증의 이해 및 우회 실습
    


    [SQL injection 중 문제 풀이]

    • mysql truncation 취약점 이해
    • MD5 raw hash를 이용한 sql injection
    • mysql의 문자열 처리 방식 이해
    • as 구문 이해 및 문제 풀이 실습
    • mysql procedure의 이해
    • mb_convert_encoding의 이해 및 문제 풀이 실습
    • 해킹대회 출제 문제 풀이
    


    [Blind sql injection]

    • Blind sql injection이란?
        • if, sleep, length 함수의 이해
    • 각종 Blind sql injection 문제 풀이 실습
        • blind sql injection 필터 우회
        • time based blind sql injection
    • ajax를 이용한 자동화 스크립트 제작 실습
    


    * 상기 1~3일차 교육 내용은 상황에 따라 일부 변동될 수 있습니다.

교재 및 실습 장비 목록

    [교재]
    • 강의 PPT

    [기타]
    • 수료증(certificate) 발급

교육자 준비사항


    • 노트북
    • Software : PowerPoint, Vmware
    



트레이닝 수강 후기

    * 김선우web pentesting은 너무 자주 하는 행위라고 여기고 간과할 수 있지만, 올드 좀비의 다년간의 노하우가 묻어나는 좋은 강의였습니다. 앞으로도 응원하겠습니다.
    * 강수희기본적인 지식부터 탄탄하게 갖추고, 이를 기반으로 응용할 수 있도록 이끌어주는 좋은 강의였습니다. 웹을 공부하시는 분들께 무조건 강추하고 싶은 강의입니다. 올좀님 화이팅! :)
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme555
    * pHqghUme5559OSv9UiI
    * pHqghUme555
    * pHqghUme-1 OR 2+525-525-1=0+0+0+1 --
    * pHqghUme-1 OR 2+897-897-1=0+0+0+1
    * pHqghUme-1' OR 2+466-466-1=0+0+0+1 --
    * pHqghUme-1' OR 2+145-145-1=0+0+0+1 or '89POraDx'='
    * pHqghUme-1" OR 2+318-318-1=0+0+0+1 --
    * pHqghUme555*if(now()=sysdate(),sleep(15),0)
    * pHqghUme5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z
    * pHqghUme5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z
    * pHqghUme(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
    * pHqghUme555-1; waitfor delay '0:0:3' --
    * pHqghUme555-1); waitfor delay '0:0:15' --
    * pHqghUme555-1 waitfor delay '0:0:15' --
    * pHqghUme555gBh15a8z'; waitfor delay '0:0:15' --
    * pHqghUme555-1 OR 816=(SELECT 816 FROM PG_SLEEP(15))--
    * pHqghUme555-1) OR 567=(SELECT 567 FROM PG_SLEEP(15))--
    * pHqghUme555-1)) OR 780=(SELECT 780 FROM PG_SLEEP(15))--
    * pHqghUme555g15gMwyF' OR 862=(SELECT 862 FROM PG_SLEEP(15))--
    * pHqghUme555GFYp0TdI') OR 994=(SELECT 994 FROM PG_SLEEP(15))--
    * pHqghUme555Nr2TOGeU')) OR 260=(SELECT 260 FROM PG_SLEEP(15))--
    * pHqghUme555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    * pHqghUme555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    * pHqghUme555'"
    * pHqghUme555%2527%2522\'\"
    * pHqghUme@@hkNKl
    * pHqghUme555
    * pHqghUme555
    * pHqghUmeErQf2NxF555
    * pHqghUme555
    * -1 OR 2+19-19-1=0+0+0+1 --555
    * -1 OR 2+976-976-1=0+0+0+1555
    * -1' OR 2+123-123-1=0+0+0+1 --555
    * -1' OR 2+993-993-1=0+0+0+1 or 'BwpfoT4p'='555
    * -1" OR 2+894-894-1=0+0+0+1 --555
    * if(now()=sysdate(),sleep(15),0)555
    * pHqghUme0'XOR(if(now()=sysdate(),sleep(15),0))XOR'555
    * pHqghUme0"XOR(if(now()=sysdate(),sleep(15),0))XOR"555
    * (select(0)from(select(sleep(15)))v)/*'+(select(0)f555
    * pHqghUme-1 waitfor delay '0:0:15' --555
    * pHqghUmeT4SWJRtJ'; waitfor delay '0:0:15' --555
    * pHqghUmeyNmstTRv' OR 137=(SELECT 137 FROM PG_SLEEP555
    * pHqghUmeJKUI7d5F') OR 374=(SELECT 374 FROM PG_SLEE555
    * pHqghUme9K4IoHvS')) OR 294=(SELECT 294 FROM PG_SLE555
    * pHqghUme'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(555
    * pHqghUme'"555
    * pHqghUme%2527%2522\'\"555
    * @@kQDpY555
    * pHqghUme555
  * 작성자:       * 소속:       * 이메일:
   (성함, 혹은 닉네임을 입력해주세요. 입력해주신 정보들 중 작성자와 후기만 공개됩니다.)