>> 루치아노 아랑 : OK, 얘들 아.
내 이름은 루치아노 아랑입니다.
나는 아담스 하우스 2 학년이야.
그리고 우리는 이야기 할거야 웹 보안 적극적인 방어.
그래서 나는 정보의 사무실을 위해 일 SEAS의 보안.
그리고 여름 동안, 나는에 구금 정보했다 SeguraTec,
봉사 보안 업체 컬럼비아의 은행.
내가 배운 곳은 대부분의 지금까지 배운 내용.
>> 그래서 우리가하고있는 물질의 일부 오늘에 갈 예정, 우리는하지 않은
정말 클래스에 대한 이야기​​.
하지만 우리는 곧 것입니다.
그것은 SQL, 자바 스크립트처럼 될 것입니다.
그리고 우리는 정말 이상 사라하지 않았습니다.
그래서 그것을 통해 비행의 정렬 및 수 당신은 몇 가지를 알 수 있습니다.
하지만 곧, 당신은 그것을 배울 수 있습니다.
그리고 그것은 모든 의미가 있습니다.
또 다른 것은 -
윤리적있어.
당신이 배울 수있는 것들 중 일부는, 당신 비 윤리적 인 방법으로 사용할 수 있습니다.
>> 그것은 당신의 경우, 확실히하십시오.
나는 확실히 당신들에게 동기를 부여 자신의 서버를 시도하고, 시도
그 안에 것.
당신이 그들을 통과 할 수 있는지, 당신은 그 안에 얻을 수 있다면.
하지만 다른 사람입니다.
경찰이 정말 농담을 좋아하지 않는다 전체, 우리는 여기에 이​​것을 넣어.
우리는 둘러 쌓여 있었다.
그들은 정말 화가.
>> 그래서이 웹 사이트를 통해 머리.
나는 여기 열었습니다.
이것은 웹 사이트이며, 예 무리가 있습니다.
무슨 일이되는 첫 번째 예 종류의 훨씬 쉽게 될 것입니다
어떤 의미에서 마지막 예보다 그 첫 번째 예
완전히 안전하지 않습니다.
그리고 마지막 하나는 종류의 무엇이다 정상적인 웹 보안 사람이 할 것입니다.
하지만 당신은 여전히​​ 정렬 할 수 있습니다 의 주위에 얻을.
그리고 우리는 하나에 초점을 맞추고에가는거야 두, 예를 하나, 둘.
>> OK.
의 크로스 사이트 스크립팅 시작하자.
자바 스크립트는에 실행 클라이언트의 브라우저.
그것은 당신이 사용하는 프로그래밍 언어의 클라이언트의 브라우저에서 실행하기 때문에
당신은 웹 사이트를 업데이트 할 필요가 없습니다 다시 서버로 이동합니다.
당신은 실행해야합니다.
예를 들어, 페이스 북, 당신은 필요가 없습니다 새로운 상태에 대한 웹 사이트를 다시로드
업데이트가 올 수 있습니다.
그것은 생성하기 위해 자바 스크립트를 사용하는 것 이 모든 것들.
그래서 우리는 악의적 인 자바 스크립트를 삽입 할 수 있습니다 웹 사이트에.
그리고 그 방법으로, 우리는에 대한 링크를 보낼 때 사람, 우리는 종류의로 보낼 수
우리가 원하는 코드의 일부.
>> 지속성 및 비 지속성있다 자바 스크립트 -
영구 및 비 영구적 사이트 간 스크립트, 내 말은.
그 차이는 고정 되 될 것입니다 자바 스크립트입니다
웹 사이트에 저장됩니다.
그리고 비 영구적 인 자바 스크립트가 될 것입니다 이 사실은 한 번만 발생합니다.
그럼 예를 살펴 보자 진짜 빨리.
>> OK.
그래서이 웹 사이트, 간단하고, 아무것도 여기에서 발생합니다.
그리고 우리가하려고하는거야 일부 자바 스크립트를 삽입합니다.
그래서 우리는 자바 스크립트 작성을 시작하는 방법 우리는 시작 스크립트로 시작된다.
그리고 우리는 스크립트를 닫습니다.
우리는 단순히 메시지를 넣을거야 -
내가 당신을 보여 드리죠 -
경고.
경고 기능입니다 자바 스크립트 뭔가를 표시하기 위해 사용.
그럼 진짜 빨리 그것을 시도 할 수 있습니다.
나는 갈 경고 안녕하세요거야.
글쎄, 내가 넣었 어 -
OK.
그래서 간단합니다.
>> 우리는 웹 사이트에 자바 스크립트를 넣어, 그리고이 등장했습니다.
그리고 그것은 일종의에만 발생 우리의 웹 사이트에, 오른쪽?
그렇지 않은 같은 것 같습니다 문제가, 오른쪽?
내 말은, 어떻게 사용할 수 이 악의적?
해커 않도록하는 방법 이것은 정말 간단합니다.
그들은 그것을 잡아 것입니다.
그들은 당신이 링크를 보낼 수 있습니다.
내가 지금 당신에게이 링크를 보내드립니다 경우, 그리고 당신은 그것을 열어, 그것은 것
말,여보세요, 그런 말 내 웹 사이트 안녕하세요 당신을 말하고있다.
>> 그래서 내가 뭔가를 말한다면 조금 똑똑, 내가 끌어 경우
자바 스크립트 기능 I 종류 벌써 썼다 -
당신이 그것을 보면 경우에, 나는 갈거야 내가 쓴 전에 이상.
그래서 우리는 시간 제한을 설정하는 것입니다.
우리는 기다릴거야 몇 초.
사실, 만약 우리가 기다릴거야 나는 5 초를 잘못 본게.
이 밀리 초 단위로 이동합니다.
그리고 우리가 무엇을 할 거 야 우리가있어입니다 경고하려고하는 로그인
다시 로그인 할 수 초과
그리고 우리는 위치를 변경거야 다른 위치에.
>> 그래서 사람이 웹 사이트를 보내는 경우, 그들은이 될 것입니다
진정, 주변 검색.
아무 일도 없어요.
그리고 5 초, 돼가 말, 로그인 시간이 초과되었습니다.
다시 로그인 해주세요
그들은 OK를 클릭하면, 그럴려고 다른 웹 사이트에 걸릴.
아마도, 웹 사이트는 것 웹 사이트와 유사한 것이
그들은 이전에 있었다.
그리고 그들은 로그인 할거야 자신의 내 웹 사이트 대신에 자격 증명
자신의 웹 사이트.
>> 그래서 나는 사람들을 보낼 수 있습니다 이 링크를 이메일을 보내십시오.
나는 오, 여기에 링크의 말.
이는 예를 들어 은행이다.
나는 여기에서 말하는이 링크를 이동합니다.
그들은 그것을 발송하면, 그들은이야 주위에 검색 될 것.
I은 15 초, 20 초 동안 기다릴 수있다, 다음이가 다시 로그인하시기 바랍니다 팝업
다시 로그인합니다.
너희들은 그것을 시도 할 수 있습니다 더 많은 것들.
좀 복잡해 너희들 때문에 자바 스크립트를 볼 수, 그래서 당신은 그렇지 않을 수도있다
일부 기능을 알 수 없습니다.
그러나 당신이해야 할 모든 시작이다 스크립트로, 스크립트로 끝납니다.
그리고 당신은 무엇이 든을 할 수 있습니다 중간에.
>> 경고 기다리 기능입니다.
창 위치를 이동합니다 새 위치로.
하지만 당신은 훨씬 더 많은 작업을 수행 할 수 있습니다.
그래서 아이디어는 즉 우리는 그것을 벗어.
나는 예를 두 가지로 이동, 그리고 경우 이 같은 코드에 넣어, 그것의
작동하지 않을.
그래서 있기 때문에 모든 것을 인쇄 할 것 무엇을이 웹 사이트는 원래
내가 여기서 무엇을 넣으면된다 않습니다, 바로 여기 그것을 밖으로 인쇄합니다.
그래서 무엇을 인쇄 아니에요.
이 예는 실제로 확인하는 중입니다 스크립트가 있는지 확인합니다.
그래서 그래, 어서.
을 올려주세요.
>> 청중 : 보내지 않습니다 GET 또는 요구를 배치?
>> 루치아노 아랑 : 네. 그들이있어 GET 요청을 전송.
>> 청중 : 그래?
>> 루치아노 아랑 : 네.
또한 브라우저는 POST 요청을 사용합니다.
하지만 GET 요청을 보여주기 위해 노력하고있어 우리는 무엇을 볼 수 있도록
실제로 일어나고.
그래서 우리는이 코드를 보면 - 그래서 더 이상 작동하지 않습니다.
그리고 우리는이 코드를 살펴 경우, 그것은 예를 들어 두에있을 것입니다.
이 사람이 무엇을하고 있는지, 그 사람 이 브라우저 담당 -
OK, 열 -
단어 스크립트를 대체하고있다.
이것은 PHP입니다, 어느 너희들 수도 아직 조금 보았다.
>> 그는 단지 대신하는 이름과 단어 스크립트.
그래서하지만, 내가 진행하는 경우 단지에 넣어 -
나는 다시 내 코드를 잡아, 내가 갈거야 경우 그것을 조금을 수정할 수 있습니다.
대신 스크립트, 나는 변경거야 그것은 자본 R. 그리고있는 스크립트
우리는이 코드가 작동하는지 확인하는 것입니다.
그래서, 그것을 밖으로 인쇄되지 이는 좋은 징조입니다.
그리고 희망이 더 많은 초, 그것은 팝업 것입니다.
>> 로그인 시간이 초과되었습니다.
OK.
괜찮아요.
그래서 스크립트를 확인하는 수도 반드시 작동하지.
사람 -
또한 스크립트 대문자를 확인할 수 있습니다, 스크립트 소문자, STR의 경우
그들은 같은 것을 확인, 비교.
그러나 해커는 아직 어떤 종류의 작업을 수행 할 수 있습니다 우리가 움직일 때 우리는 Vigenere에서 한
다시 몇 자, 앞으로 이동합니다.
그리고 스크립트를 넣어하는 방법을 알아낼 수 있습니다 다시는 주입 할 수 있도록 거기에
해당 스크립트.
>> 그래서 당신이 사용하고자하는 반드시 htmlspecialchars은 다음과 같다
당신의 웹 사이트를 보호합니다.
그리고 어떤이가하는 것은 만드는 것입니다 당신이에 넣어 그 무엇 -
예를 들어, 인용하거나 -보다보다 크거나 작은
무언가로 대체 그것은 수 없습니다 -
내가 여기에 확대하자 -
실제 앰퍼샌드.
그것은 그 특별한 HTML을 대체합니다 우리가있을 때 우리가 볼 수 문자
에 대해 이야기 -
오, 저를 다시 걸릴 것입니다 -
여기 이러한 문자.
>> 이러한 의미 뭔가 오고있다.
HTML, 그 시작 브래킷 우리에게 알려줍니다 뭔가
관련 HTML이오고있다.
그리고 우리는 그것을 제거하려고합니다.
우리는에 HTML을 넣어 싶지 않아 website.k 우리는 사용자가되고 싶지 않아
자신의 웹 사이트에 뭔가를 할 수 그와 같이, 자신의 웹 사이트에 영향을 미칠 수
스크립트 나 HTML 또는 그런 일.
중요한 것은 당신에게 그 사용자 입력을 살균.
>> 그래서 사용자가 입력 많은 일을 할 수있다.
그는 입력 시도 잔뜩 수 여전히으로 브라우저를 속일 수
이 스크립트 코드를 실행할 수 있습니다.
당신이 원하는 것은 그냥 볼 수 있습니다 스크립트,하지만 모든 것을 볼
이 악성이 될 수 있습니다.
그리고 반드시 htmlspecialchars는 할 것이다 당신을 위해, 그래서 당신은 필요가 없습니다
그것에 대해 걱정합니다.
하지만 자신에 의해 수행하려고하지 않습니다 종류의 자신의 코드.
모두가 XSS에 분명하다?
>> OK.
의는 SQL 주입에 가자.
그래서 SQL 주입은 아마 번호를 하나의 취약점
다른 웹 사이트에.
나는 좋은 예를 의미 -
난 그냥 멀리를 연구 하였다 이 것은.
그리고이 멋진 기사를 발견 한 곳 나는 하버드가 위반 것을보고,
해킹했다.
그리고, 음, 궁금 해서요 그들이 그것을 어떻게 할 것인가?
하버드는 가장 멋진 가장 어느 대학을 고정합니다.
오른쪽?
음, 서버를 위반하는, 해커는 사용
SQL 주입라고 기술.
>> 그래서이 하루 기준으로 하루에 발생합니다.
사람들은 계정을 잊지 SQL 주입에 대한.
하버드는 않습니다.
나는 그것이 프린스턴, 여기라고 생각합니다 스탠포드, 코넬.
어떻게 우리가 - 그래서이 SQL은 무엇인가 모든이를 데려 주입
사람들이 아래로?
OK.
그래서 SQL 프로그래밍 언어입니다 우리는 데이터베이스에 액세스하는 데 사용합니다.
우리가 할 것은 우리가 선택합니다 -
그래서이 지금 읽는 것은 선택이다 테이블에서 모든 것을.
>> SQL, 이러한 데이터베이스로 변경 정보의 전체 테이블을 가지고있다.
그래서 사용자의 모든 선택 이름은 사용자 이름입니다.
오른쪽?
간단한만큼.
SQL 주입의 아이디어는 우리 일부 악성 코드를 삽입하는 것
뭔가를 실행에 서버를 속여 무엇보다 다른
원래 실행되었다.
그럼 사용자 이름에 대해 말을하자, 우리에 넣어 또는 1 같습니다.
그래서 우리는 넣어 또는 1 같습니다.
지금 읽을 방법이 선택 될 것입니다 사용자 모두에서에서
사용자 -이 모든 것입니다 -
이름은 사용자 이름이지만, 여기서 이름은 또는 1 같습니다.
>> 그래서 이름이 아무것도 또는 1 같습니다.
1 1은 항상 사실 같습니다.
그래서이 항상 정보를 반환합니다 사용자의.
OK.
우리는 가질 필요가 없습니다 올바른 사용자 이름.
우리는 우리가 원하는 무엇이든 할 수 있습니다, 그것은 정보를 반환합니다
우리는 필요.
다른 예를 살펴 보자.
>> 우리는 사용자가 모든 것을 선택했다면, 이름은 DROP 테이블 사용자입니다 -
그래서 당신은 어떻게 생각하십니까이 의지 하지, 이름에 넣어 경우
DROP 테이블 사용자와?
누구나 아이디어가?
예.
>> 청중 : 그것은 말할 것 그것은 모든 테이블을 덤프합니다.
>> 루치아노 아랑 : 그것은 우리 말 것 웹 사이트의 모든 내용을 덤프,
데이터베이스에있는 모든.
어떤 사람들은이를 사용하는 - 그래서 나는 너희들을 보여 드리겠습니다.
나는 테이블을 삭제하지 않도록 나는 당신을 원하지 않았기 때문에
사람 내 테이블을 삭제합니다.
어디 한 번 살펴 보자.
그래서 이것은 단순히 정보를 당긴 특정 사람.
이 경우 그래서 우리가 어떻게 알 수 있습니까 SQL 주입에 의해 영향을받지 않습니다.
우리는 진짜 빨리 확인거야 우리는 무언가를 넣을 수있는 경우 -
내가이 코드를 복사 할 수 있습니다.
나는 두 번째에 걸쳐 갈거야.
나는 뿌리를 넣어거야 1은 1과 같습니다.
>> 이 바로 여기,이 퍼센트 기호 23 -
정말 무엇인지, 만약 I 에 여기 봐 -
당신이 경우 HTML은, 숫자에 걸리는 방법 나는 공간에 넣으면 살펴
여기에 - 우주 뭔가를한다면 여기에, 그것은 ~ 2 %로 변경됩니다.
너희들은 여기를 확인 마십시오 나는 공간에 넣으면?에게
그것이 작동하는 방법은 그 당신은 할 수 있습니다 HTML을 통해 ASCII 값을 보낼 수 있습니다.
그래서, 예를 들면, 대체 20 %와 공간.
알 수없는 경우들 그 전에 보았다.
>> 그것은 퍼센트 (23) 해시 태그를 대체합니다.
우리는 말이나에서 해시를 필요로 문 우리가 알 수 있도록
주석 잊지 데이터베이스 끝이 마지막 세미콜론.
우리는 그것에 대해 생각합니다.
우리는 그냥 모든 것을 실행하려면 우리가 사전에 가지고 있음
그 주석.
의 그것을 살펴 보자.
>> 내가 뭔가를 잘못 넣어 있다면 그래서 - 의 예를 들어 말을하자, 나는이 같음을 넣어
1, 그것은 나에게 아무것도 제공하지 않습니다.
내가 1에 넣을 때는 1에 해당하고, 그것 않습니다 뭔가를 반환,이 말하길
이에 취약 SQL 주입.
지금 알고있는 어떤 나는이 후 넣어 -
예를 들어, 테이블을 삭제 또는 그런 일
확실히 작동합니다.
나는 SQL 인젝션에 취약 알고 왜냐면
후드 아래에, 그것은시키는 것 날은 1 1 일에 해당 할.
OK?
>> 그리고 우리는 다른 사람을 보면, 두 번째와 세 번째, 그건
조금 더 할 것 의 아래에 확인
그것이 무엇의 후드.
그래서 사람이 드롭을 사용 아직 아무것도 또는 시도?
너희들은 일종의 아직 SQL을받을 수 있나요?
내가 알고 있기 때문에 너희들은하지 않은 아직 본, 그래서 종류의
너희들 혼란.
어디 보자.
그래서 SQLI을 방지하는 방법은 무엇입니까?
OK.
그래서이 정말 중요합니다 당신 때문에 사람은 확실히 방지 할
이 귀하의 웹 사이트에.
>> 그렇지 않은 경우, 모든 당신의 친구가 가고있다 그들은 모두 떨어질 때 당신의 재미를 만들어
테이블.
그래서 아이디어는 SQL을 복구한다는 것입니다 특정 방식으로, 반면에 당신이 일치
정보와 사용자 입력 특정 문자열입니다.
그래서이 작동하는 방법은 당신입니다 데이터베이스를 준비합니다.
당신은 이름, 색상, 칼로리를 선택 데이터베이스라는 과일입니다.
그리고 칼로리 미만이고 우리는 거기에 물음표를 넣어
우리가 입력에가는거야 말 두 번째 뭔가.
>> 그리고 색상이 동일하고, 우리는 문제를 넣어 마크는 우리가 갈거야 말
입력 두 번째에 뭔가뿐만 아니라.
OK?
그리고 우리는두고, 그것을 실행 (150)과 빨간색.
그리고 이것은 확인하기 위하여 검사 할 것이다 반드시이 두 가지가 -
이 배열은 확인합니다 이들 두 정수입니다
이 문자열입니다.
그 다음에 우리가 간다, 우리는 가져 모두, 우리는 붉은에 넣어.
그것은 우리가 모두를 가져 오는 것을 의미합니다.
우리가 실제로 SQL을 실행 의미 문 및 빨간색에 다시 넣어.
여기에서 우리는 동일한 작업을 수행하지만, 우리 노란색에 대해 동일한 작업을 수행.
그리고 우리는 모두를 가져 오기.
>> 이런 방법으로, 우리는 사용자를 방지 입력 뭔가 할 수 있다는에서
그것은 우리가 무엇을 지정, 문자열이 아닌 또는 정수, 예를 들어.
나는 이전에 대해 얘기했다 다른 사람에 의존.
너희들이 프로젝트를 시작할 때입니다 대부분은 확실히 사용할 것
부트 스트랩 또는 이와 유사한.
너희들은 지금까지 워드 프레스를 사용 했습니까?
아마 너희들은 사용하고 워드 프레스 가능성이 높습니다.
그래서 사용하는 데 문제 다른 사람의 물건 -
난 그냥 구글 진짜 빨리 갈거야 워드 프레스 취약점을 해결합니다.
>> 지금은이를 끌어 경우 -
말 그대로 2 초 구글을했다.
우리는 워드 프레스를 볼 수 있습니다 -
이 9 월 '12로 일자.
26 업데이트됩니다.
워드 프레스의 기본 구성 3.6이 금지하지 않습니다하기 전에
어떤 이미지, 어떤 힘 쉽게 있도록
크로스 사이트 스크립팅 공격.
그래서 짧은 이야기는 일단 우리가 일하고 있었다 와 - 내가보기 작업, 여름이었다
인턴.
그리고 우리는 종류의 작업을했다 큰 신용 카드 회사 등을들 수있다.
>> 그리고 그들은라는 뭔가에 의존 -
너희들이 이제까지 연주 나도 몰라 줌라라는 제품.
Joomla의 정보는 다음의 제품에 사용되는 제품의 제어 - 종류의 유사에
웹 사이트를 구축하는 데 사용되는 워드 프레스.
그래서 그들은 자신의 웹 사이트를했다 줌라에서 작동합니다.
이것은 실제로 신용 카드입니다 콜롬비아에있는 회사입니다.
나는로 여러분을 데려 갈 게요 자신의 웹 사이트 진짜 빨리.
>> 그래서 그들은 줌라를 사용했습니다.
그리고 그들은 줌라를 업데이트하지 않았다 최근에 추가합니다.
그래서 우리는 한 번 봐 복용했을 때 자신의 코드는, 우리가 실제로 할 수 있었다
자신의 코드 내부에 가서 훔쳐 모든 그들이 가진 것을 신용 카드 정보,
모든 신용 카드 번호, 이름, 주소.
그리고 이것은 그냥 .. -
자신의 코드를 완벽하게 정상적으로이었다.
그들은 좋은 코드를했다.
그것은 모든 보안이었다.
그들은 모든 데이터베이스를 점검.
그들은 크로스 사이트 확인했다 스크립트 좋았어요.
>> 그러나 그들은하지 않았다 뭔가를 사용 업데이트가 보안되지 않았습니다.
그리고 그들을지도하는 - 그래서 너희들 확실히 다른를 사용하려고
사람의 코드를 다른 사람의 프레임 워크 귀하의 웹 사이트를 구축 할 수 있습니다.
그들이 보안적인 있는지 확인하기 때문에 때로는 그 사람이 아냐
실수를합니다.
그러나 다른 사람이 실수를하고, 당신은 그 때문에 아래로 떨어진다.
>> 암호 및 PII.
그래서 암호.
OK.
의 암호를 살펴 보도록하자 진짜 빨리.
OK.
저에게 말하십시오, 모든 사람 보안을 사용합니다 -
여기 모든 사람을 바라고 있어요 보안 암호를 사용합니다.
난 그냥시키는 거 그 가정으로합니다.
그래서 너희들은 확실히 갈거야 귀하의 웹 사이트에 대한 암호를 저장합니다.
당신이 뭔가를 만들거야 그런 로그인 또는 뭔가.
중요한 것은 저장하지 않는 것입니다 일반 텍스트 암호.
이것은 매우 중요하다.
당신은 저장하지 않습니다 일반 텍스트 암호입니다.
>> 그리고 당신은 확실히 정말 싶지 않아 단방향 해시에 저장합니다.
그래서 하나의 방법 해시은 그 때 당신이 둘 때, 단어를 생성
해시 함수에 단어, 그것은 것 비밀의 일종을 다시 생성
메시지 또는 키의 비밀 세트.
나는 당신에게 예를 보여 드리겠습니다.
나는 그들이 단어에서는 PassWord1 해시거야.
그래서 MD5 해시 날을 반환하는 것입니다 이상한 정보의 일종.
>> 문제는 그 사람들이 거기에있다 이 웹 사이트에 가고 싶어해야
이미 정렬 파악 모든 MD5 해시의.
그들은 그들에 앉아있다 했는가 자신의 컴퓨터, 그들은 모든 해시
거기에 단순한 하나의 단어까지 그들은 일종의 이것이 무엇 얻었다.
나는 이것을 본다면 -
난 그냥이 해시를 잡았다.
나는에서이 해시를 얻을 경우 -
나는 웹 사이트에 가서, 내가 찾을 수있는 경우 이 해시 난에 도착하기 때문에
데이터베이스, 나는 그것을보고, 사람 이미 나를 위해 그것을 알아 냈어.
>> 그래.
그래서 사람들은 앉아서, 그리고 어떤 MD5 당신은 넣어 해시, 그들은거야
당신에게 돌아 무엇인가 그 단어입니다.
나는 같은 다른 단어를 해시 경우 -
난 몰라 -
trees2.
나는 실망하지 않으 내 Google 검색에 의해.
저기, trees2입니다.
그래서 많은 웹 사이트 여전히 MD5 해시를 사용합니다.
그들은 오, 보안의 말.
우리는 일반 텍스트로 저장 아닙니다.
우리는이 MD5 해시가 있습니다.
내가 할 일은 단지입니다 수를 구글.
>> 심지어 자신을 계산할 필요가 없습니다.
난 그냥 구글, 그리고 할 수있는 사람 이미 나를 위해 그것을했다.
여기에 그들의 무리입니다.
다음은 암호의 무리입니다.
그래서 확실히 MD5 해시를 사용하지 않는, 때문에 당신이 가지고있는 모든
할 구글 그것입니다.
그래서 대신 사용 하시겠습니까?
OK.
염장이라는 것을.
그래서 염장입니다 -
우리가있을 때 너희들은 기억 무작위 이야기 -
나는 그것이 무엇 PSET 확실하지 않다 -
그것은이 PSET 또는 네 살?
>> 우리는 발견에 대해 얘기했다 건초 더미에서 바늘.
그리고 PSET, 그것은 말했다 당신은 할 수 그 실제로 어떤 임의의 파악
누군가가 이미 실행 되었기 때문에 발생 임의의 백만 배는 그냥
종류의가 생성 무엇을 형성했다.
당신이하고 싶은 것은 입력에 넣어.
그래서 일종의 무엇 염장입니다.
그들은 이미 소금에 절인 것을 알아 냈다 각 작업에 대한 반환합니다.
>> 그래서 염장가하는 것은 당신은 소금에 넣어.
당신은 특정 단어에 넣어.
그리고 따라 그 단어를 해시합니다 여기에 넣어 무엇에.
그래서 난이 암호를 해시하는 경우 문장은 해시 것
나는 PassWord1로 해시 다른 경우 다른 문장과 함께.
그것은 종류의 어딘가를 제공합니다 시작하는 해시에 시작합니다.
그래서 당신은 계산하기가 훨씬 더 어렵습니다하지만, 아직 특히, 그것을 계산할 수 있습니다
당신은 나쁜 소금을 사용하는 경우.
>> 사람들은 이미도 알아 낸 일반적인 염 및 파악
는 것이 무엇인지.
임의 염은 훨씬 더 나은, 하지만 가장 좋은 방법은 사용하는 것입니다
토굴라는 것을.
그리고 무엇 토굴 당신이 할 수 있습니다 그래서 이러한 기능은 - 않습니다
이미 당신을 위해 만들었습니다.
많은 사람들이 잊지 또는 그들은 그것을 사용하는 것을 잊지.
하지만 토굴 PHP, 토굴을 보면 이미 저를위한 해시 문자열을 반환합니다.
그리고 실제로 여러 번 염 그리고 여러 번 해시.
>> 그래서 우리는이 작업을 수행 할 필요가 없습니다.
그래서 당신이해야 할 모든 것입니다 토굴로 보내드립니다.
그리고 그것은하지 않고 큰 해시를 생성합니다 당신은 소금에 대해 걱정할 필요
또는 아무것도.
당신은 소금에 있다면, 당신이 있기 때문에 당신은 무엇을 사용하는 소금 기억
때문에하지 않을 경우, 당신은 얻을 수 있습니다 다시없는 비밀
당신이 사용하는 소금.
OK.
>> 또한 개인 식별 정보.
그래서 사회 보장, 신용 카드 - 그것은 매우 분명하다.
그러나 때때로 사람들은 길을 잊지 그것 작품은 당신이 얼마나 많은 정보입니다
실제로 어떤 한 사람을 찾을 필요가?
누군가에 대한 연구를했다 이 방법으로 다시.
그리고 만약 당신이, 같았습니다 전체 이름, 당신은 찾을 수 없습니다
쉽게 사람.
하지만 당신은 전체 이름을 무엇이있는 경우 그리고 그들의 생년월일?
식별 할 충분한 즉 특별히 누군가?
>> 당신은 무엇을 자신의 이름이있는 경우 그들이에 살고, 주소?
그 사람을 찾기에 충분하다?
그들이 질문 할 때 그리고 그 무엇,의 개인 식별 정보,
당신에 대해 무엇을 걱정해야 멀리 포기하지 않을?
당신은 개인 식별을 포기하는 경우 누군가가 당신에게 제공하는 정보,
당신은 잠재적으로 고소 할 수 있습니다.
그리고 우리는 확실히 그것을 원하지 않는다.
>> 그래서 당신은 당신의 웹 사이트를 퍼팅 할 때 아웃, 당신은 정말 멋진했다
디자인, 잘하면 당신이 만든 멋진 마지막 프로젝트.
당신이 정렬하려는 거기에 그것을 넣어.
당신이 있는지 확인하려면 어떤 그것의 경우는, 사용자로부터 취하고있어
개인 식별 정보, 당신 당신이 정말 존재하고 확인하려면
그것으로주의.
>> 쉘 주입.
OK.
쉘 주입에 침입자를 할 수 있습니다 실제 명령 행에 대한 액세스를 얻을
서버에있는.
그리고 그 코드를 실행할 수의 당신이 제어 할 수있다.
의이의 예를 들어 보자 여기 아름다운 문자열입니다.
우리가 다시 웹 사이트에 가면, 난 코드 삽입으로 갈 예정.
그래서이 일은입니다 -
우리가 무엇이 었는지도의 이전에보고.
우리는 무엇이든 넣어 사용자를시키는거야 그는 원하고, 그것을 인쇄합니다
당신이 원하는대로.
>> 그래서 전화를 넣어거야.
어떤이가하는 것은 -
그것은 연결하여 시작합니다.
그래서 저를 실행하게됩니다 어떤 사람의 실행 명령
전에 내 명령.
그리고 시스템 명령을 실행하는거야.
그리고이 마지막 문자열은 - 기억 내가 무엇에 대해 들었는데,
당신은 인코딩해야하는 반면 그 URL 방법에.
지금은이를 실행하는 경우 -
나는 당신을 여기에 보여 드리겠습니다 -
내가 끝난 것을 볼 수 있습니다 최대 명령을 실행.
>> 이 사실은 실제 서버입니다 내 웹 사이트가 실행된다.
그래서 우리는 그것을 원하지 않는다, 내가 실행할 수 있기 때문에 -
이 서버 내 아닙니다.
그래서 엉망 싶지 않아 자신의 동생, 마커스의 서버.
하지만 당신은 더 많은 명령을 실행할 수 있습니다 위험이.
그리고 잠재적으로, 당신은 삭제할 수 있습니다 파일, 디렉토리를 제거합니다.
나는 특정 디렉토리에있는 경우 제거 할 수 있습니다 내가하고 싶었던,하지만 난 싶지 않아
마커스에 그렇게 할 수 있습니다.
그는 좋은 사람입니다.
그는 나를 자신의 서버를 빌려.
그래서 나는 그를 가만 두지 않을거야 좋은 껐다.
>> 그래서 우리는 사용하지 않는다 - 우리는하지 않습니다 EVAL 또는 시스템을 사용하고 싶습니다.
EVAL 또는 시스템은 우리를 수 이 시스템 호출을합니다.
제품군 평가 방법은 평가한다.
시스템은 내가 달릴 것을 의미한다.
그것은 시스템에 뭔가를 실행있어.
그러나 우리는 이러한 일을 금지 할 수 있습니다 PHP 우리가 사용하지 않도록.
그리고 파일 업로드.
나는 굉장한를 할 거라고 파일 업로드가있는 것.
그러나 같은 난 내 파일을 너희들에게 말했다 업로드 것은 작동하지 않습니다.
지금은 파일을 업로드 할 수 있다면 -
내가 파일을 업로드 할 수 있었다 경우 그리고 포토 야 -
당신은 업로드 일이 그 그림입니다.
괜찮아요.
아무 일도 발생하지 않습니다.
>> 하지만 당신은 업로드 파일에 대한이있는 경우 예를 들어, 사용자는 실제로 업로드
PHP 파일이나 exe 파일 또는 뭔가 그와 마찬가지로, 당신은 잠재적으로 할 수
문제가있다.
이는 이전에 작업했다.
불행히도 나를 위해, 그것의 더 이상 작동하지 않습니다.
제가 예를 들어,이 파일을 업로드하면, 난 업로드 할 수있는 권한을받지
서버에 의한 파일 내되지 않는.
그래서 사람은 정말 똑똑합니다.
>> 그래서 우리는 원하지 않습니다 -
난 너희들을 보여 주마 -
OK, 이들은 정말 멋진 도구입니다.
그래서이 -
에 이동 - 너희들은 파이어 폭스가있는 경우 - 잘하면 당신이 할.
SQL 주사라는 두 개의 부가 기능이있다 저와 크로스 사이트 스크립트 나.
그들은 적은 쪽을 열어 측면에 바.
그리고 이동한다면 예를 들어 CS60 -
그래서이 일은이 보인다 모든 형태의 것을위한 -
바라건대, 나는받지 않습니다 이것에 대한 문제가있다.
>> 하지만 OK.
여기에 핀 시스템입니다.
그래서 구멍을 찾고 시작하면 이 시스템은, 내가 가장 먼저하는 일이있다
이 아름다운 조금 열어 측면에 도구입니다.
그리고 양식을 테스트하는거야 자동 공격.
그리고 어떤이가하는 일은 천천히 것입니다 브라우저의 무리를 엽니 다.
다음은 브라우저의 무리입니다.
그리고 그것은 모든 단일 조합을 시도하고 크로스 사이트 스크립팅의
이 가능하고, 경우에 그 당신은 측면을 참조하십시오.
>> 그리고 그것은 나에게 결과를 제공합니다 대답은 어떤 종류.
모든 전달합니다.
물론, 그들은 모두 전달합니다.
내 말은, 그들은 정말 똑똑 거기 사람들.
하지만 있다면 실행 -
나는이 프로그램을 실행할 때 전에 시간을 가졌다 학생들의 최종 프로젝트에.
단순히 저를 주입 SQL 실행 모든 다른 공격.
그리고 SQL의 주입하려고 이 핀 서버.
우리가 아래로 스크롤하면, 이처럼 예를 들어, 그것은 말한다 -
이 반환하는 경우이 좋다.
>> 그래서 어떤 특정 값을 테스트했습니다.
그리고 서버는 반환 코드가 부정적이었다.
일시적으로 제거합니다.
이것은 좋은 것입니다.
그것은 모든 테스트를 시도합니다.
그래서 당신은 간단하게 실행할 수 있습니다 -
나는 웹 사이트의 실제를 찾을 수 있으면 좋겠다 빨리 그 날을있게 할 것입니다 -
어쩌면 CS50 저장소.
>> 와우, 예정 너무 오래 걸릴.
나는 드리겠습니다 첫 번째 테스트 바로 완료되지.
그래서 불평.
그래서이 세 가지 있습니다.
이러한 도구는 무료입니다.
당신이 그들을 다운로드하고 실행할 수 있습니다 귀하의 웹 사이트, 그리고 당신을 말할 것이다 경우
당신은 크로스 사이트 스크립트, 당신이 경우에 당신은, SQL이있는 경우
등의 무언가.
나는 종류의 망치는거야.
>> 무슨 일이 중요합니다 -
OK, 그래서 사용자를 신뢰하지 않습니다.
당신이 무엇이든간에 사용자 입력, 확인 당신이 그것을 살균, 당신은 청소,
당신은 바로 정보 확인 그것은 무엇을 당신에게 당신을주고 있음
그가 당신을주고 싶다.
항상 업데이트 할 어떤 프레임 워크 당신은 실제로 사용하고 있는지.
- 당신은 부트 스트랩과 같은 것을 사용하는 경우
나는 너희들이 사용하려는 알고 그는 갈 것 때문에 부트 스트랩
이상이 곧 클래스 -
워드 프레스 나 뭐 그런, 일반적으로이 해킹 될 수있다.
>> 그리고 당신은 알지도하지 않습니다.
당신은 당신의 웹 사이트를 실행하고 있습니다.
그리고 그것은 완전히 안전합니다.
그리고 당신은 아래로 이동합니다.
그래서 정말 빨리 낚시를하고 있습니다.
하지만 Pentest와 실험실을 감사드립니다.
나는 너희들에게 뭔가를 보여 주겠다 Pentest와 연구소했다.
너희들은 정말 관심이 있다면 정말하고, 거기에 어떤 보안
Pentest와 실험실 경우 호출 웹 사이트 너희들은 지금 당장로 이동합니다.
아, 그 얘기가 아니 구요.
그냥 다음과 같이 실행하는거야.
구글은 나에게 답을 알려줍니다.
>> OK.
그리고 그것은 당신을 사용 가르친다 - 그래서 라고, 웹 침투를 배울
올바른 방법을 테스트.
그것은 당신을 가르치고 -
바라건대, 당신은 윤리적 인 사람이야.
그러나 당신이 볼 수있는 방법을 가르쳐 당신은 웹 사이트 내에서 얻을 수있는 방법.
그리고 당신이 배우면 당신은 내부 얻을 수있는 방법 웹 사이트, 당신은 배울 수있는 방법
점점으로부터 자신을 보호 내부 웹 사이트.
저를 확대하자 어쩌면 너희들 때문에 이 오른쪽에보고되지 않습니다.
>> SQL 주입에서 이렇게, 외판 종류의 난 SQL에서 얻을 수있는 방법
쉘에 주입.
그리고 당신은이 가상 머신을 다운로드 할 수 있습니다.
그리고 가상 머신은 이미 온다 당신이하고있는 웹 사이트와
그것을 시도하는 것.
이 PDF를 다운로드 할 수 있습니다.
그리고 선으로 당신에게 선을 보여줍니다 무엇 당신은 당신이 확인 무엇을 수행해야합니다.
이것은 무엇을 공격자 실제로 웹 사이트 내에서 얻을 않습니다.
>> 그리고이 물건의 일부는 복잡하다.
나는 더 이상 갈 수 있으면 좋겠다 너희들과 함께 가지.
하지만 걱정하는 너희들 정말로이 -
이것은 내가 함께 갔다 무엇인가 너희들, 웹 테스트
침투 테스트.
정말 모르겠어요 무슨 SQL은 무엇 -
칼 잭슨의 세미나 뿐만 아니라 굉장합니다.
너희들은 일종의 모른다 이것이 무엇의.
그러나 만약 당신이 웹 사이트로 이동 이 튜토리얼과 이러한 다운로드
PDF 파일, 당신은 종류의에서 좀 걸릴 수 있습니다 보안의 영역이 어떤 기능을하는지
침투 테스트의 방법을 참조 할 수 내부 웹 사이트를 얻고 보호
자신 그것에서.
>> 그래서 슈퍼 빠른 개요를 만들 경우, 그것은 크로스 사이트 스크립팅을 방지 할 수 있습니다.
당신은 반드시 htmlspecialchars 매를 사용하려면 사용자 입력의 어떤 시간.
SQL 주입을 방지합니다.
당신이 할 경우, 당신은 이미있어 하버드보다 더 나을
그들은 위반에 도착했을 때.
그리고 암호 확인 일반 텍스트로하지 않습니다.
반드시 하나를 수행 단방향 해시뿐만 아니라 확인 그들하지만 토굴을 사용하는 것이, PHP
내가 너희들을 보여 주었다 기능.
그런 식으로, 당신이 잘되어야합니다.
>> 당신의 친구가 할 경우에도, 당신은 실행 자신의 웹 사이트에 저를 주입 SQL은.
실행 크로스 사이트 스크립팅 자신의 웹 사이트에.
그리고 당신은이 웹 사이트를 많이 볼 수 있습니다 취약점의 톤이있다.
그것은 많은 사람들이 원하는 방법을 믿을 수 자신의 데이터베이스를 소독하거나 확인
반드시 어떤 사람의 입력부 스크립트 코드가 아닙니다.
OK.
나는 종류의 정말 일찍 끝났다.
그러나 사람에 대한 문의 사항이있는 경우 아무것도, 당신은 나에게 질문을 촬영할 수 있습니다.
그래.
가,가.
>> 청중 : 난 그냥 물어보고 싶은, 당신은 파일을 어떻게 해석 할 수 있습니다
정확히 작품을 업로드 할 수 있습니다.
>> 루치아노 아랑 : 네.
그래서 내가 당신에게 파일을 보여주지 진짜 빨리 업로드 할 수 있습니다.
그래서 파일 업로드 -
문제는 파일 업로드를 재치 바로 지금입니다 -
정말 너희들의 코드를 개방하고 장면의 코드를 참조하십시오.
그리고 그것은 업로드됩니다.
다음은 파일 업 로더에 대한 코드입니다.
>> 우리는이로 이동하려는 여기에 디렉토리.
그리고 우리는에 노력하고 우리가 한 번 입력 파일, ISSET 파일 - 그렇게 할 때이
다음, 파일, 그 이미지 파일을 우리는 여기에서 이동하려고합니다.
우리는 여기에 파일을 잡아.
이 방법은 POST, 유형, 이미지 파일입니다.
그리고 우리는이 파일을 전송하고 있습니다.
그리고 우리가 그것을 일단, 그래서 한 번 파일 이미지를 가지고, 우리는 그것을 보내려고
이 디렉토리에.
>> 문제는 웹 사이트가 아니라는 것이다 저를이 디렉토리로 이동시키는
그것은 나를 다시 가고 싶지 않기 때문에.
그것은 나 가고 싶어하지 않습니다 -
내가 가야 - 그래서 여기에 업로드 할 것.
다음은 이미지입니다.
나는 모든 길을 다시 가야 해 다음 시작하고 거기에 넣어
가서 디렉토리에 넣어.
내가 터미널 창을 실행중인 그렇다면, 나는 파일을 이동하고 싶어 -
[청취]
그것을 볼 수 있습니다.
내가 파일을 이동하려는 경우, 나는이 다음 파일 이름을 넣어하는 방법
전체 경로 나에 보낼.
>> 그리고 서버가 아니다 나를 다시 보내 주나.
그리고 그것은 두지 않을거야 나에게 해당 파일에 도착.
그러나 일반적으로 -
그래서에 대한 코드가있다 파일을 업로드.
그래서 일반적으로 어떤 일이 발생할입니다 사람은 확인되어 있지 않은 경우 내 파일
. JPEG로 끝나는, 그래서 검사 할 것입니다.
날이 너무 진짜 빨리 예를 열어 보자.
>> OK.
이 사람은 바로 -
그래서 예를 들어 두 검사입니다 는 preg_match 경우 -
여기가 여기에 있습니다 -
반드시 그 끝납니다 만들려면 좋은 PHP,.
이것은 좋은 것입니다.
하지만 진짜 큰이있다 이 문제가 있습니다.
이것은 좋은 것입니다.
하지만라는 파일을 넣을 수 있다면 myfavoritepicture.php.jpeg, 내가 할 수
여전히 잠재적으로 JPEG 제거 그리고 PHP의 위험 it.k 실행합니다.
당신은 사람이 할 수 싶지 않아 귀하의 웹 사이트에 코드를 실행합니다.
>> 하지만. JPEG는 통과 할 수 있습니다.
아이디어는 당신이 정말로 원하는 것입니다 파일, A. 그러나, 확인을하지 무엇
당신이 정말로 원하는 것은 있는지 확인한다 당신은 전 세계에 걸쳐 읽었다.
그리고 아무것도 없다. 거기에 PHP는.
에. PHP가 없습니다 전체 파일 이름입니다.
>> 청중 :하지만 당신은 할 수 했습니다. JPEG를 끝.
서버는 여전히 코드를 실행합니다.
>> 루치아노 아랑 : 아니, 그것은하지 않습니다 처음에 실행합니다.
당신은 돌아가서 시도해야 당신이 할 수 있는지 -
>> 청중 : 그래서 우리는에있다 -
OK, 관련된 또 다른 세트 -
>> 루치아노 아랑 : 네.
>> 청중 : OK.
>> 루치아노 아랑 : 네.
OK.
다른 질문?
OK.
나는이를두고 정렬 할거야 의 너희들이 할 수 있는지 확인하기 위해 노력 -
다른 사람은 조금 더있다 그들은 많이 필요로 복잡하기 때문에
SQL보다 더 많은 지식을 단지 웹 SQL의 시작 지식과
무엇 자바 스크립트입니다.
하지만, 이것을 유지하려고하는거야 희망 너희들은 배울 것이다
이 약 및 엿봄을하려고 당신이 할 수있는 얼마나 많은 예
당신은을 통해 얻을 수 있습니다.
>> 사람은 다른이 그것에 대해 질문?
어서.
그래, 촬영, 촬영.
그래, 가서.
어서.
>> 청중 : OK.
그래서 난에 대해 알게 된 경로에 해당하는 마법 지수 충분히 안전하지 않습니다.
>> 루치아노 아랑 : 무엇 -
마법의 주가?
>> 청중 : 네.
그래서 추가 - 그래서 때마다 입력 뭔가 항상 따옴표를 추가합니다.
>> 루치아노 아랑 : 네.
그래.
OK.
>> 청중 : 그리고 비록, 일이 하지만 나는 그것을 검색 할 수 있습니다.
그리고 그것은 좋은 아니라고 말했다.
하지만 내가 왜.
>> 루치아노 아랑 : 네.
>> 청중 : 마법의 따옴표를 사용하지 마십시오 그것은 안전하지 않습니다 때문에.
>> 루치아노 아랑 : OK.
당신은 SQL을 삽입 할 때 그래서 마법의 주가는 그것은 이미 당신을위한 견적을 추가합니다.
>> 청중 : 항상 따옴표를 추가합니다 당신이 안으로 넣어 어떤 약
>> 루치아노 아랑 : 네.
따라서 그 문제는 즉 -
나는 좀 할게요 -
>> 청중 : 어떻게 획득 않습니다 SQL 문?
또는 나는 그것을 할 수있을 것 같아요 같은 인용을 선택합니다.
>> 루치아노 아랑 : 그래, 당신이 필요합니다 SQL에 대한 좋은 따옴표.
>> 청중 : 아니,하지만 서버 당신을 위해 그것을 않습니다.
>> 루치아노 아랑 :이 작은 따옴표 여기,이 작은 따옴표?
>> 청중 : 네.
>> 루치아노 아랑 : 네.
문제는 당신이 할 수있는 그 마지막을 주석 -
좋아, 그럼 내가 할 수있는 것은 내가 댓글을 달 수 있습니다 중 - 그럼 살펴 보자 - 나를 보자
텍스트 편집 파일을 엽니 다.
내가 그냥이 편집 할 수 여기에 직접.
OK.
너희들이 명확하게 볼 수 있을까요?
내가 할 수있는 것은 내가 댓글을 달 수 있습니다 마지막으로 한 중.
이것은 마지막 하나를 주석 것입니다.
그리고 나서 넣고, 여기에 놓을 게요 여기에 악성 물건.
>> 따라서 사용자는 실제의 오른쪽 입력?
사용자가 입력 아니에요 일, 오른쪽?
이것은 내가 같은 입력에 갈 것입니다 내부 얻기 위해 노력하는 사람.
내가 넣을거야 -
즉, 하나의 따옴표입니다.
그것은 실수로 그냥 물결 모양입니다.
그리고 어떤 코드 할 것입니다 -
죄송합니다,이를 데리고 갈거야.
어떤 코드가 수행하는 것입니다 것은 그 첫 번째를 추가하는거야
인용은 여기에 표시합니다.
그리고 마지막을 추가 할 것 따옴표뿐만 아니라.
>> 그리고 그것은 또한 추가 할 것 마지막으로, 마지막 따옴표.
하지만 이러한 인용 주석 해요 밖으로 표시, 그래서 그들은 실행되지 않습니다.
그리고이 말씀을 마무리 해요 여기에 표시합니다.
알 겠어?
당신이 손실됩니다?
나는 마지막 인용을 언급 할 수 있습니다 마크하고 돌봐
첫 번째 물음표.
>> 청중 : 그냥 마무리 첫 번째.
>> 루치아노 아랑 : 네.
그냥 처음으로 완성하고 있습니다.
그래, 맞아.
그게 내가 할 수있는 일입니다.
그래.
같은 다른 질문?
즉, 좋은 질문입니다.
예, 아니오, 어쩌면.
바라 건데, 너희들 종류의 것 당신은 SQL과 공부를 더 의미
그런 것.
하지만 확인 -
시계에서 이러한 도구를 유지합니다.
죄송합니다, 여기에 이​​러한 도구.
이러한 도구는 중대하다.
사람이 어떤 질문이 있으면, 당신은 저를 이메일을 보낼 수있다.
이것은 나의 정상적인 메일입니다.
그리고 이것은, 나의 일 이메일입니다 내가 SEAS에서 작업 할 때입니다.
>> OK, 감사합니다.
감사합니다, 여러분.
당신은 갈 수 있어요.
당신은 여기에 머물 필요가 없습니다.
박수하지 마십시오.
이상 하네.
OK, 감사합니다, 여러분.