Upload
kipp
View
102
Download
2
Embed Size (px)
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