이주혁 ( sehkmg@Kroot )

Preview:

DESCRIPTION

제 7 회 해킹캠프 마지막 !!!!! 발표. 이주혁 ( sehkmg@Kroot ). 해커스쿨 서버 사무실. PHP. 해커스쿨 서버 사무실. ……. ……. ……. ……. ……. ……. ……. ……. ……. ……. id name password admin admin 011101 멍멍 정구홍 12345 sehkmg 이주혁 54321 Vrat 이제일 13579. PHP. ……. ……. ……. ……. ……. ……. ……. ……. ……. ……. 채용 공고. - PowerPoint PPT Presentation

Citation preview

이주혁 (sehkmg@Kroot)

제 7 회 해킹캠프 마지막 !!!!! 발표

해커스쿨 서버 사무실

PHP

해커스쿨 서버 사무실

PHPid name password

admin admin 011101멍멍 정구홍 12345sehkmg 이주혁 54321Vrat 이제일 13579

…….…….…….…….……..

…….…….…….…….……..

…….…….…….…….……..

…….…….…….…….……..

채용 공고근무 시간 : 24 시간 , 숙식 제공휴무 : 없음조건 : 빠르게 읽는 능력 , 빠르게 쓰는 능력 , 시키는대로 말 잘 듣는 사람시급 : 9990 원나이 : 상관 없음

해커스쿨 서버 사무실

PHP mysql

해커스쿨 서버 사무실

로그인 시도– id: 멍멍 , pw: 12345

해커스쿨 서버 사무실

PHP mysql

members 테이블에서 id 가 ‘멍멍’이고 pw 가 ‘ 12345’ 인 데이터 추출해줘

넵 !멍멍 정구홍 12345

해커스쿨 서버 사무실

회원가입 시도– id: 오타해커 , pw: 97531

이름 : 김동완

해커스쿨 서버 사무실

PHP mysql

members 테이블에 id 가 ‘오타해커’고이름이 ‘김동완’이고 pw 가 ‘ 97531’ 인 데이터 추가해줘

넵 ! 추가 완료했습니다 !

해커스쿨 서버 사무실

회원정보 수정 요청 – id: Vrat, 이름 : 이재일

해커스쿨 서버 사무실

PHP mysql

members 테이블에서 id 가 ‘ Vrat’ 인 사람의 이름을 ‘이재일’ 으로 수정해줘

넵 ! 수정 완료했습니다 !

해커스쿨 서버 사무실

회원 탈퇴 요청– id: sehkmg, pw:

54321

해커스쿨 서버 사무실

PHP mysql

members 테이블에서 id 가 ‘ sehkmg’ 이고pw 가 ‘ 54321’ 인 데이터 삭제해줘

넵 ! 삭제 완료했습니다 !

그런데 !!!

나쁜놈

mysql

해커스쿨 서버 사무실

로그인 시도– id: admin,

pw: 1’ 또는 id 가 ‘ ad-min

해커스쿨 서버 사무실

PHP mysql

음… . 이상한데 ??

해커스쿨 서버 사무실

PHP mysql

members 테이블에서 id 가 ‘ admin’ 이고 pw 가 ‘ (1’ 또는 id 가 ‘ admin)’ 인 데이터 추출해줘

해커스쿨 서버 사무실

PHP mysql

members 테이블에서 id 가 ‘ admin’ 이고 pw가 ‘ 1’ 또는 id 가 ‘ admin’ 인 데이터 추출중…

members 테이블에서id 가 ‘ admin’ 이고 pw 가 ‘ 1’

또는id 가 ‘ admin’ 인

데이터 ?????

??????

???

??????

해커스쿨 서버 사무실

PHP mysql

넵 !admin admin 011101

그 후 !!

해커스쿨 서버 사무실

PHP

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

안되겠어 !!

해커스쿨 서버 사무실

로그인 시도– id: admin,

pw: 1’ 또는 id 가 ‘ ad-min

해커스쿨 서버 사무실

PHP mysql

문자열 안에 ‘ (s-ingle 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)가 있으면 무시하도록 해

넵 ! 알겠습니다 !!

실제로는 ??

APM

Client(Browser)

Web Server(Apache)

PHP Parser DBMS(MySQL)

1) 문서 요청

2) 스크립트 실행요청

3) Query

4) Data

5) 실행결과

6) 결과 전송

33

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=‘adminid=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

SELECT comment FROM chat WHERE id=1

SELECT comment FROM chat WHERE id=1 OR 1

Recommended