490 likes | 769 Views
제 7 회 해킹캠프 마지막 !!!!! 발표. 이주혁 ( sehkmg@Kroot ). 해커스쿨 서버 사무실. PHP. 해커스쿨 서버 사무실. ……. ……. ……. ……. ……. ……. ……. ……. ……. ……. id name password admin admin 011101 멍멍 정구홍 12345 sehkmg 이주혁 54321 Vrat 이제일 13579. PHP. ……. ……. ……. ……. ……. ……. ……. ……. ……. ……. 채용 공고.
E N D
제 7회 해킹캠프 마지막!!!!! 발표 이주혁(sehkmg@Kroot)
해커스쿨 서버 사무실 PHP
해커스쿨 서버 사무실 ……. ……. ……. ……. …….. ……. ……. ……. ……. …….. id name password admin admin011101 멍멍 정구홍 12345 sehkmg 이주혁 54321 Vrat이제일 13579 PHP ……. ……. ……. ……. …….. ……. ……. ……. ……. ……..
채용 공고 근무 시간: 24시간, 숙식 제공 휴무: 없음 조건: 빠르게 읽는 능력, 빠르게 쓰는 능력, 시키는대로 말 잘 듣는 사람 시급: 9990원 나이: 상관 없음
해커스쿨 서버 사무실 PHP mysql
해커스쿨 서버 사무실 로그인 시도 – id: 멍멍, pw: 12345
해커스쿨 서버 사무실 members 테이블에서 id가 ‘멍멍’이고 pw가 ‘12345’인 데이터 추출해줘 넵! 멍멍 정구홍 12345 PHP mysql
해커스쿨 서버 사무실 회원가입 시도 – id: 오타해커, pw: 97531 이름: 김동완
해커스쿨 서버 사무실 members 테이블에 id가 ‘오타해커’고 이름이 ‘김동완’이고 pw가 ‘97531’인 데이터 추가해줘 넵! 추가 완료했습니다! mysql PHP
해커스쿨 서버 사무실 회원정보 수정 요청 – id: Vrat, 이름: 이재일
해커스쿨 서버 사무실 members 테이블에서 id가 ‘Vrat’인 사람의 이름을 ‘이재일’ 으로 수정해줘 넵! 수정 완료했습니다! PHP mysql
해커스쿨 서버 사무실 회원 탈퇴 요청 – id: sehkmg, pw: 54321
해커스쿨 서버 사무실 members 테이블에서 id가 ‘sehkmg’이고 pw가 ‘54321’인 데이터 삭제해줘 넵! 삭제 완료했습니다! PHP mysql
나쁜놈 mysql
해커스쿨 서버 사무실 로그인 시도 – id: admin, pw: 1’ 또는 id가 ‘admin
해커스쿨 서버 사무실 음…. 이상한데?? PHP mysql
해커스쿨 서버 사무실 members 테이블에서 id가 ‘admin’이고 pw가 ‘(1’ 또는 id가 ‘admin)’인 데이터 추출해줘 PHP mysql
해커스쿨 서버 사무실 members 테이블에서 id가 ‘admin’이고 pw가 ‘1’ 또는 id가 ‘admin’인 데이터 추출중… PHP mysql
??? ??? members 테이블에서id가 ‘admin’이고 pw가 ‘1’또는id가 ‘admin’인데이터????? ??? ??? ???
해커스쿨 서버 사무실 넵! admin admin 011101 PHP mysql
해커스쿨 서버 사무실 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ PHP ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
해커스쿨 서버 사무실 로그인 시도 – id: admin, pw: 1’ 또는 id가 ‘admin
해커스쿨 서버 사무실 문자열 안에 ‘(single quote) 가 들어가있네? \로 escape 시켜주자!! PHP mysql
해커스쿨 서버 사무실 members 테이블에서 id가 ‘admin’이고 pw가 ‘1\’ 또는 id가 \‘admin’ 인 데이터 추출해줘 PHP mysql
해커스쿨 서버 사무실 members 테이블에서 id가 ‘admin’이고 pw가 ‘1\’ 또는 id가 \‘admin’ 인 데이터 추출중… PHP mysql
해커스쿨 서버 사무실 그런 데이터는 없습니다! PHP mysql
해커스쿨 서버 사무실 앞으로 문자열 안에 ‘(single quote)가 있으면 무시하도록 해 넵! 알겠습니다!! PHP mysql
APM 1) 문서 요청 Client (Browser) Web Server (Apache) 6) 결과 전송 5) 실행결과 2) 스크립트 실행요청 3) Query DBMS(MySQL) PHP Parser 4) Data
SQL Statements members 테이블에서 id가 ‘멍멍’이고 pw가 ‘12345’인 데이터 추출해줘 • SELECT * FROM members WHERE id=‘멍멍’ AND pw=‘12345’
SQL Statements members 테이블에 id가 ‘오타해커’고 이름이 ‘김동완’이고 pw가 ‘97531’인 데이터 추가해줘 • INSERT INTO members (id, 이름, pw) VALUES (‘오타해커’, ‘김동완’, ‘97531’)
SQL Statements members 테이블에서 id가 ‘Vrat’인 사람의 이름을 ‘이재일’ 으로 수정해줘 • UPDATE members SET 이름=‘이재일’ WHERE id=‘Vrat’
SQL Statements members 테이블에서 id가 ‘sehkmg’이고 pw가 ‘54321’인 데이터 삭제해줘 • DELETE FROM members WHERE id=‘sehkmg’ AND pw=‘54321’
나쁜놈 mysql
SQL Injection 정상적인 접근 id=멍멍, pw=12345로 접속 시도 members 테이블에서 id가 ‘멍멍’이고 pw가 ‘12345’인 데이터 추출해줘 (SELECT * FROM members WHERE id=‘멍멍’ AND pw=‘12345’)
SQL Injection SQL Injection 공격 id=admin, pw=1’ 또는 id=‘admin id=admin, pw=1’ OR id=‘admin members 테이블에서 id가 ‘admin’이고 pw가 ‘1’ 또는 id=‘admin’인 데이터 추출해줘 (SELECT * FROM members WHERE id=‘admin’ AND pw=‘1’ OR id=‘admin’)
SQL Injection에 대한 보안 • 첫번째 방법: 추가적 보안 프로그래밍 id=admin, pw=1’ OR id=‘admin id=admin, pw=1\’ OR id=\‘admin addslashes(1’ OR id=‘admin);
SQL Injection에 대한 보안 • 두번째 방법: SQL Statement 수정 SELECT * FROM members WHERE id=‘admin’ AND pw=‘1’ OR id=‘admin’ ‘SELECT * FROM members WHERE id=%s AND pw=%s’, admin, 1’ OR id=‘admin
실습: SQL Injection kroot.yonsei.ac.kr/hcamp