👌 Charger son Apple Watch et son iPhone 8, X, XR, XS avec le même chargeur !

이 2-in-1 무선 여행용 충전기는 매우 컴팩트 한 크기로 제공됩니다 당신은 마음의 평화로운 아이폰과 애플 시계를 청구 할 수 있습니다

아주 작은 풋 프린트로 여행 가방에 쉽게 끼울 수 있습니다 자켓 안이나 가방에 붙박이 보호 기능 과부하 및 과전압은 전체 부하를 보장합니다 보안을 사용하면 스탠드의 기울기 덕분에 사과 시계 밤 90까지 도수주의 전원 어댑터는 포함되어 있지 않습니다 충전기 계획 빠른 유도 충전을위한 강력한 기능 아이폰의 원래 어댑터는 매우 잘되지만 재충전 될 것입니다 설명의 링크를 더 느리게 클릭하십시오 자세한 정보를 얻으려면

RESTful API And OAuth2.0 With Codingniter & MySQL || BY Unknown Tech

알 수없는 기술에 오신 것을 환영합니다 내가 알 수있는 날 OAuth2

0 액세스 토큰을 어떻게 만들 수 있습니까? 게시자를 통해 확인합니다 내가 알 수있는 날 OAuth20 액세스 토큰을 어떻게 만들 수 있습니까? 게시자를 통해 확인합니다

15 Technique to Exploit File Upload Pages – Ebrahim Hegazy, HackIT-2017

내 이름은 Ibrahim Hegazy입니다 오늘은 약 15 가지 기법을 사용하고 있습니다

파일 업로드 페이지 나는 현재 Deloitte Netherlands의 고위 컨설턴트입니다 나는 나 자신을 보안 녀석이라고 부르고 싶지만 실제로는 이런 종류의 보안이 아니다 물론, 아니, 물론, 아니 네

나는 최고 안보로 평가 받았다 야후의 연구원,하지만 2014 년 3 개월 전, 그들의 버그 현상금 프로그램의 취약점들 예, Ali는 이미 버그 현상금 프로그램이 무엇인지 설명합니다 예 오늘의 의제입니다

음, 이 개념을 설명하는 "내가 누구인가"의 핵심 개념은 개발자가 코드를 더 나은 방법으로 수정하는 방법을 알고 싶습니다 개발자는 40 명의 공격자를 갖고 있습니다 즉, "앱 경량 펜 테스터 (testers) "또는"화이트 모자 해커 (white hat hackers) "라고 불렀다 개발자 그래서 이것은 오늘날의 밑입니다

어떤 파일을 설명 할게 업로드는, 파일 업로드 페이지의 주요 구성 요소는 무엇이며, 나는 개발자가 완화를 위해 수행하는 작업과 같이 각 부분을 설명합니다 파일 이름 확인, 콘텐츠 사이트 유효성 검사, 파일 콘텐츠 유효성 검사 그리고 나서, 어떻게 해커가 그것을 우회 할 수 있는지 그렇습니다 그리고 결론적으로, 저는 최선의 관행처럼 개발자 : 이러한 공격을 완화 할 수있는 가장 좋은 방법은 무엇입니까? 너도 알다시피

개발자들은 결국 이겨야 만합니다 또는 해커가 항상 이기고, 누군가는 결국 승리해야한다 예, 이것은 세션 마치 한 곳에서 최고의 기술로 모든 파일 업로드를 모으는 것과 같습니다 그래서, 침투 테스터 나 버그 사냥꾼이라면 꼭 가야 할 필요는 없습니다

파일 업로드 작업을 우회하는 방법을 검색하는 인터넷 크롤링 한 곳에서 모든 것을 갖췄습니까? 물론 개발자에게 도움이됩니다 예, 이것은 티저입니다 이것은 YouTube에서 누군가가 발견 한 취약점입니다 이것은 YouTube의 진짜 등 'passwd 파일입니다 그래서, 그는 파일을 읽을 수있었습니다

YouTube 서버에서이 파일은 실제 파일입니다 나는 이것을 설명 할 것이다 세션 나는 티저로 여기에 넣었습니다 그래, 많은 사람들이 티저가 뭔지 알지? 네

괜찮아 그래서, 주 파일은 "청색 페이지"에는 거의 다섯 가지 주요 구성 요소 인 불이 들어 있습니다 언젠가, 파일 크기 부분은 아니지만 항상 헤더 자체와 함께 보내야합니다 그래서 우리는 첫 번째가 있습니다 – 파일 이름은 파일 번호입니다 확실해, 당신은 그 파일 유형을 볼 수 있어야합니다

파일 유형은 실제로 예를 들어 PNG가있는 경우 확장 프로그램을 기반으로 일부 테이블에서 거의 이미지 백 슬래시, 미안, / PNG 또는 MS PDF, 죄송합니다, PDF 파일 인 경우, PHP와 같은 응용 프로그램은 / XPHP와 비슷합니다 네 그리고, 매직 넘버 따라서 개발자를 위해 거기의 파일 내용은 모든 파일간에 유사성이 없습니다 맞습니까? 그러나 비슷한 것은 언제나 – 매직 넘버입니다

마법 번호는 무엇입니까? 매직 넘버는 마치 시작 줄을 시작하거나 GIF가있는 경우와 같이 파일 식별자를 보냅니다 모든 이미지를 GIF로 시작합니다 좋아, 89,98,83,89 GIF89 또는 GIF87 그런 다음 ":"다음 이미지 자체의 내용을 표시합니다 그래서, 이것이 마술입니다

숫자가 작동합니다 일부 개발자는 이것을 검증하고 있습니다 (예 : WordPress) 당신이 이것을 사용했다면 Alex는 우리가 어떻게 그것을 우회 할 수 있는지에 대해서도 이야기했습니다 그 종류의 검증 그리고 나서 파일 내용과 파일 크기는 물론, 예, 개발자 검증 시나리오를 건너 뛰도록하겠습니다

좋아요, 개발자들은 블랙리스트를 정말 좋아합니다 그래서, 오, PHP 파일, 아니, 나는 싫어 이 하나는 PHP를 블랙리스트로 보겠습니다 이것이 첫 번째 시나리오입니다 사용할 수 있습니까? 이런 종류의 검증에 무슨 문제가 있습니까? 뭔가 있어요? 고르그에가는거야? 나는 이미 그 해결책을 썼다

당신은 그것에 대해 생각해야합니다 이 유효성 검사에서 무엇이 잘못 될 수 있습니까? 괜찮아 따라서 개발자는 주로 파일 이름의 유효성을 검사합니다 regex "정규 표현식"이라고 불린다 그래서,이 경우, 세 번째 라인 "if"로 시작하는 것입니다

정규식은에서 유효성을 검사합니다 파일의 확장자는 PHP 또는 PHP1 또는 PHP2 등입니다 마지막에는 "$"기호와 같은 기호가 있기 때문에 파일이 끝나면 이러한 확장 기능 중 하나를 사용하십시오 그러나 사례 인스턴스의 유효성을 검사하지는 않습니다 PHP 같은 대문자와 같아 지려고한다면, 무언가와 같은 무감각 대문자, 대문자 일 경우이 유효성 검사를 건너 뜁니다

그래서, 이것이 첫 번째입니다 유효성 검사 블랙리스트 작성 개발자가 파일을 완화하는 방법 업로드 그들은 파일이 PHP로 끝나지는 않지만 파일이 대소 문자를 구분하지 않습니다 그래서 PHP를 작성할 수 있습니다 쉘처럼, PHP 버튼의 대문자를 쓰면, 이런 종류의 것을 무시할 것입니다

확인 네, 두 번째 시나리오 블랙리스트 그리고 우리는 적절하게 파일 확장자의 유효성 검사, 파일 이름의 민감도 그 자체 그들은 실제로 모든 것을 유효하게하고 있지만, 다른 확장, 내 말은, 이런 식으로, 코드가 나빠지는 것입니다 블랙리스트에 대해 나쁜 것

당신은 블랙리스트에 올 수 없습니다 모든 가능한 확장 기능을 알고 있지? 그리고 매일 매일 같이 새로운 것이 있습니다 기술의 변화, 새로운 기술이있을 수도 있고 새로운 기술이있을 수도 있습니다 신장 예를 들어, 해당 파일은 PHT라고합니다

PHT는 PHP 파일을 실행할 수있는 확장 기능입니다 그래서, 그들이 개발되면 개발자는 PHP, PHP1로 끝나는 모든 파일을 대문자로 차단합니다 작은 등 당신은 그것을 무시할 수 있습니다, 예를 들어, PHT 파일 따라서 블랙리스트 기술을 우회하는 방법이지만 Linux에서는 사용하지 마십시오 Windows에서 이에 상응하는 기능은 무엇입니까? 여기에 우리가 Windows에서 이에 상응하는 이동합니다

만약, 예를 들어, 개발자가 완화하거나, 말하자면 ASP, ASPX를 블랙리스트에 올리면됩니다 파일 여전히 호출 된 확장명을 사용할 수 있습니다 미안 해요, 때문에 speedodll, 나는 괜찮아요

그래서, 당신은 이것을 감당할 수 있습니다 예를 들어, ASA 또는 CER이라는 확장을 사용할 수 있습니다 CER은 무엇입니까? 우리는 일반적으로 그것을 사용하지 않기 때문에 CER은 다음과 같습니다 증명서, 맞지? 그러나 아니, 제 생각에, 저는 오래된 ASA라고 생각합니다

해결되지 않았습니다 터치 된 버전 75 그것은 ASA로 끝나는 파일을 다음과 같이 실행하는 것을 정말 좋아합니다 이것이 ASP 파일 인 경우

예를 들어, 여기에 ASP Shell이 ​​있습니다 CET, CER을 볼 수있는 이름은 죄송합니다 파일 업로드를 우회했습니다 왜? 개발자는 ASP 및 ASPX 확장 만 블랙리스트에 올리기 때문입니다 그러나 여전히 동일한 ASP 코드를 실행할 수 있지만 다른 확장명을 사용하면됩니다

예 시나리오 시나리오 3 블랙리스트 모든 실행 확장 프로그램을 우회합니다 그래서 예를 들면 개발자는 모든 ASP에 모든 PHP, 모든 HTML 또는 AHTML, BHTML을 블랙리스트에 올렸습니다

모든 것, 모든 가능한 것, 실제로 XSS를 실행하거나 저장할 수는 있지만, EML이라는 확장을 사용합니다 EML이 무엇인지 알고 있습니까? 네, 예를 들어 Thunderbird를 사용하는 경우 Thunderbird는 다음과 같습니다 아웃룩,하지만 리눅스에 Windows에서도 사용할 수 있습니다

예, 전자 메일로 보내면 EML로 내 보냅니다 그래서, 이것은 일반적으로 EML을 여는 경우입니다 파일이 처리되지만 실제로는 Internet Explorer에서만 작동합니다 따라서이 기능은 Internet Explorer에서만 악용 될 수 있습니다 그래,이 경우 끈의 XSS는 일종의 HTML 컨텐트로 실행되기 때문에 트리거됩니다

그래서, 파일 내용과 검은 스크린 샷을 볼 수 있습니다 "안녕하세요"라고 말하면서 XSS 페이로드는 배포 된 단어를 확인하는 것과 같습니다 괜찮아 네 그 링크에 대한 자세한 내용은 여기에 있습니다 당신이 가고 있다면, 정말로 원한다면 이 인코딩 때문에 POC 자체 및이를 악용하는 방법에 대해 자세히 알아 보려면 인코딩은 까다로운 일입니다

쉽지만 까다 롭습니다 네 그래서 우리는 이제 개발자가 사용하는 블랙리스트 기술을 알고 있습니다 허용 목록이란 무엇입니까? 개발자가 블랙리스트에 올라 있지는 않지만 화이트리스트에 올라 있다면, like, 허용 된 확장 기능 만 웹 사이트에 업로드 할 수 있습니다 괜찮아

대본 4이 정규식에 어떤 문제가 있는지 알아볼 수 있습니까? 뭐라고 생각하니? 이 거절에 여기에 잘못 가고 있니? 네 따라서 개발자는 파일에는 해당 확장이 들어 있습니다 하지만 그는 만들고 있으며, 만들고 있지 않습니다 파일은이 확장자로 끝납니다

그래서, shellJPGPHP라는 파일을 업로드하면 JPG가 포함되어 있습니다 그러나 그것으로 끝난다 PHP

따라서 파일에 해당 이름이 포함되어 있는지 확인하는 중이지만 만들지는 않습니다 물론, 허용 된 확장 기능으로 만 끝납니다 그래서, 이것은 우리의 백색입니다 네 그래서, 예를 들어,이 정규식에서 이것을 볼 수 있습니다 : regex 101이라는 사이트가 있다면이 웹 사이트를 사용하여 일종의 문자열에 대한 정규 표현식, 작동하는지 여부

예, 예를 들어 JPGPHP를 동일한 파일로 저장하는 것을 보았습니다 이전 코드에서 사용 된 regex와 일치하는 바이 패스입니다 파일에 JPG가 있지만 JPG로 끝나지 않습니다 맞습니까? 괜찮아

지금 시나리오 번호 5 널 바이트 주입입니다 null 바이트 란 무엇입니까? 누군가가 우리에게 손을 줄 수 있습니까? null 바이트 란 무엇입니까? 네, null 바이트는이 사람들을위한 터미네이터입니다 "C"배경에서 그것은 터미네이터의 일종으로 100 % 0입니다

제로 이것은 null 바이트입니다 내 말은, 코드처럼, PHP는 갈래졌습니다 C, 맞지? 따라서, 그들은 "C"에 주로 기초를두고 있습니다 구문에 상관없이 C에있는 문제가 PHP에 존재할 수 있습니다

네 그래서, 터미네이터 건 뭐니? 예를 들어 일부 개발자는 파일 이름은 자신을 업로드하지만, 파일의 이름을 지정하면 쉘과 같은 이름이됩니다 PHP100 % 00JPG JPG, 무슨 일이 일어날 지 알 수 있습니다

우연히 있다 문제는 관찰자가 점만 이해하고 처음에는 확장자는 일반적으로 100 % 00이므로 종료 문자입니다 그래서, PHP는 무엇이든지 후, "P"는 종료됩니까? 그것은 존재하지 않는다 당신은 그것이 존재하지 않는다고 말할 수 있습니다 이제 파일의 이름은 shadow PHV입니다

너는 할 수있다 또한 16 진수 표현을 사용하여 바꿉니다 그것은 또한 작동합니다 어쨌든 같은 기술 이것은 샘플 코드입니다

만약 당신이 이것을보고 있다면, 나는 의미합니다 이것은 코드 자체 내에서 어떻게 보이는지입니다 시나리오 6 예 약간 웹 사이트는 SVG이기 때문에 그렇습니까? SVG는 일종의 이미지이지만 거의 발명 했어

내 말은, 그들은 html5와 관련이있다 그것이 갔을 때, html5는 html5로 시작하여 성장하기 시작했습니다 SVG는 비슷한 XML 컨텐츠 따라서 개발자가 SVG 이미지를 업로드 할 수 있도록 허용하는 경우 여전히 XML 콘텐츠를 넣을 수 있습니까? XML 컨텐트는 무엇을 할 수 있습니까? 정확하게 XXE 또한 XML에서 많은 것을 할 수 있지만 왜 개발자가 SVG 파일에 XML이 포함되어있는 경우 SVG 파일을 신뢰합니까? 왜냐하면 이것은 개발자가 생각하는 방식입니다 개발자는 항상 보안이 아닌 유용성에 대해 생각하고 있습니다

그들은 이 방법을 사용하여 고객이 만족하게 될지에 대해 생각해보십시오 신청 우리 고객을 만족시키는 것은 무엇이든 허용해야합니다 이것은 개발자의 업무 방식과 해커가 좋아하는 방식입니다 네, 이것은 비디오 업로드 된 것을 허용합니다

이것은 착취입니다 나는 설명 할거야 그것은 VK에 반대 해왔다 VK, 나는 러시아의 페이스 북이 비슷하다고 생각한다 또한, facebook

com에는 동일한 취약점이 있었지만 YouTube에는 동일한 취약점이 있으며 이게 바로 솔직히 말하면, 이것은 개발자를 악용하는 것이 아닙니다 잘못 당신은 당신이 개발 한 서버 측 라이브러리를 이용하고 있습니다 FFmpeg, 예 그래서 FFMPEG 일 때, 예를 들어 YouTube와 같은 비디오를 업로드 할 때, 이 명령을 실행합니다

예를 들어,이 명령을 실행할 것입니다 그것은 FFMPEG-I 배치 끝에 있습니다 videoavi 또는 m3u 또는 기타 확장을 누른 다음 mp4로 변환합니다 따라서 사용자는 미리보기 할 수 있습니다

이 파일은 내용이 다음과 같이 보이는 경우입니다 예를 들어 m3u로 저장하면됩니다 그래서, 당신이 알아 차릴 때, 거기에 무언가가 고무로되어 있고 ETC passwd를 제출하지 않은 파일입니다 너는 ETC passwd 파일을 읽으려고합니다 파일이 서버에 업로드되면 이 명령을 사용하여 변환 된 다음 파일을 볼 때 명령이 실행됩니다

그래서 FFMPEG의 취약점이었습니다 당신이 개발자들을 비난 할 수있는 무언가가 아닙니다 왜냐하면, 모든 것이 YouTube와 같은 모든 웹 사이트, Facebook은 어쨌든 취약했고 트릭은 여전히 ​​작동합니다 사실, 나는 많은 침투를 경험했다 테스트, 맹세,이 트릭을 사용하고 작동하지만 지금은 수정되었습니다

내말은, 물론 서버를 업데이트하면 문제가 해결됩니다 네, 트래버스 덕분에 여전히 화이트리스트에 포함됩니다 예를 들어, 개발자는 흰색입니다 JPG 이미지 만 업로드되고 올바른 방식으로이를 수행하고 있음을 나열하면, 그것을 무시할 수는 없으며 PHP 파일을로드 할 수 없습니다 네가 할 수 있는게 뭐지? 케이스? 왜냐하면, 내가 말했듯이, 테스터 또는 취약성 사냥꾼으로서, 당신은 여전히 시원한 걸 찾으려면, 맞지? 당신은 버그 현상금 창조자를 편리하게해야합니다

프로그램 제작자 또는 소유자와 마찬가지로 관리자 일 수도 있습니다 복용하는 경우 침투 테스트, 당신은 뭔가 멋지다는 것을 발견해야합니다, 맞습니까? 그러나, 당신은 단지 JPG 파일 업로드 허용 이 경우 "디렉토리"라는 것을 사용할 수 있습니다 탐색 (traversal) "을합니다 따라서 PHP / images / 2017 / thumbnails / images

JPG, 이것은 매우 긴 것입니다 정상이야, 맞지? 하지만 내 파일을 logoJPG 또는 logoPNG를 클릭 한 다음 "/", "/"을 실행하면 메인 웹 사이트 디렉토리에 저장하고 파일을 대체했습니다 내말은, 그것은 웹 사이트의 로고를 대체했습니다

이제 로고 웹 사이트를 대체 할 수 있습니다 내 회사 이름과 같은 멋진 정보 또는 시체를 해킹하거나 테스트를 원한다면 테스트하십시오 이것은 불리는 것입니다 – "디렉토리 트래버 설" 파일을 업로드하여 디렉토리를 벗어나려고합니다 디렉토리가 아닌 다른 디렉토리 에있다

그래서, 이것은 정상적인 것입니다, 당신은 단지 당신의 파일 이름을 유지할 수 있습니다 로고 그대로입니다 JPG 그리고 /

// 이것이 될 것입니다 당신의 파일 이름

그리고 이것은 취약한 코드 샘플입니다 예, 복사되었습니다 페이스 북 팀에서 예 그리고 시나리오 번호 9 그럼, 또한 전체 내용 및 파일 이름

PHP 라이브러리라는 펑크가 있습니다 PHP-GD 그래서, 개발자로서, 나는 파일 업로드가 JPG로만 파일 이름을 가지고 있지만 내용도 JPG입니다 그래서, 어떤 개발자는 이미지 리사이즈 또는 PHP 함수 호출을 PHP 함수에 전달하고자합니다 같은,하지만 그들은 주로 PHP는 – GD 일에 따라 변환하는 업로드 된 파일을 이미지 파일에 업로드하면 파일을 JPG 파일입니다

그들은 악의적 인 내용을 업로드하지 않도록하고 싶습니다 내용을 파일 자체에 저장합니다 예 그 놈이 여기 멋진 물건을 만들었 어 이것에 대해

이것은 "책 신선한"이라는 웹 사이트의 취약점이었습니다 네 그래서 그것을 우회하는 방법? 이미지 파일을 동일한 정확한 개발자 설정 따라서 PHP 코드를 로컬 서버 또는 뭔가 그런 다음 JPG 파일을 일반 JPG 파일을 선택한 다음 해당 파일의 변경 내용을 확인합니다 그래서, 어떻게 했어? 후

변환 중입니다 이전 파일과의 유사점은 무엇입니까? 그리고 새로운 파일, 왜냐하면 무언가와 JPG 자체가 대체 될 수 없었기 때문에, 권리? 예를 들어 공격자가 업로드 또는 삽입하는 것을 보았 기 때문에 메타 데이터 내부의 PHP 코드도 추적됩니다 이 PHP-GD는 이미지 내부에 메타 데이터가 존재하지 않도록합니다 따라서,이 작업을 우회하려면 16 진수를 사용하여이 작업을 수행 할 수 있습니다 사실은

그래서 이미지를 JPG로 변환하고 있습니다 PHP-GD를 사용하는 것과 같습니다 의회 이제 JPG 파일 두 개, 이전 파일과 JPG, 새 파일 인 JPG가 있습니다 개종했습니다

그는 두 가지 모두를 16 진수로 변환 한 다음 검색을 시작합니다 유사점 페이로드와 유사한 유사성 예를 들어, 페이로드가 20 자와 같은 경우 20 개를 찾아야합니다 문자, 20 유사점 따라서 코드에서 20 비트 유사도로 다음과 같이 할 수 있습니다

PHP 컨텐츠로 대체하십시오 삽입하고 싶습니다 그런 다음 이미지가있는 페이지를 업로드하십시오 변환 될 때, 같은 비트가 거기에 남아있을 것이고 PHP 코드를 실행할 수 있습니다 이 스크린 샷과 같습니다 이것은 링크이거나 POC 파일로 이동할 수도 있습니다

그만큼 당신이 사용할 수있는 링크와 POC 파일은 실제로 중요하지 않습니다 SVG Facebook에서 4 만 달러를 샀던 사람에 대해 들어 본 적이 있습니까? 그것은 약간이었다 "이미지 매직 (image magic)"이라 불리는 도서관에서 악용됩니다 "Image magic"은 취약점이있었습니다 영향을받는 서버 나 "이미지"를 사용하는 서버가 실행될 때 코드를 실행할 수 있습니다 마술 "이라고 부르며 그 이미지를"비극적 인 이미지 "라고 부릅니다

그렇지 않았습니다 아무도 없었습니다 그 사람은 페이스 북에서 그것을 발견하고 40,000 달러를 얻을만큼 충분히 운이 좋았다 하나 네

따라서 코드 자체를 볼 수 있는지 잘 모르겠지만 나는 여기에서 이것을 극대화 할 수 없다 그러나 어쨌든, 그가 사용한 페이로드는 간단하게, 당신이 실행하는 것을 쓰고있을 때, 나는 말할 수있다 괜찮아 그래서, 그는 리눅스 '/'의 메인 디렉토리에있는 디렉토리 목록 '/'다음 도메인으로, 하위 도메인으로 자신의 도메인 이름으로 하위 도메인을 보냅니다 그래서, 이 경우 어떻게됩니까? 핵심은 모든 DNS 로그 작업을 수행하기 때문에 DNS 쿼리 먼저

따라서 DNS 쿼리가 공격자 서버로 이동하면 로그를 모니터링 할 수 있습니다 이제는 서버의 데이터가 무엇인지 알고 있습니다 파일, ETC / PASSWD 코드의 내용은 무엇입니까? 그것 하지만 아시다시피 도메인 이름의 최대 크기는 64입니다 따라서 할 수 없습니다 따라서 64 비트를 16 진수로 변환하거나 Base64와 같이 변환 할 수 있습니다

각 요청에 대해 64 바이트를 보내는 동일한 시작 네 그래서 그 남자는 좋은 페이 스북 서버에서 명령을 실행합니다 네 시나리오 번호 11

이것은 모든 해커 또는 모든 오래된 학교와 같습니다 IIS 버전 6 및 65의 사용자 7이 작동하는지 여부는 확실하지 않지만, 왜냐하면 내가 그렇게하지 않았기 때문입니다 7 따라서 파일 이름을 ASPX로 업로드 할 수 있습니다

ASPX : 1JPG 그래서,이 일은 어떻게 될까요? 케이스? IIS 서버, 서버 자체가 다음 첫 번째 실행합니다 신장 그러나 개발자 코드는 항상 마지막 확장자에서 유효성을 검사합니다 그러나 거기 구분 기호입니다

구분 기호는 ':'입니다 그래서 IIS는 IIS가 ':'를 볼 때 거의 실행 된 FRX가 첫 번째 확장 프로그램입니다 첫 번째 명령 만 실행합니다 신장 그래서,이 경우 어떻게됩니까? 즉, 파일을 검증하는 개발자 그가 원하는 파일 이름이 같기 때문에 이름이 만족됩니다

웹 서버 자체가 첫 번째 확장을 실행합니다 그래서, 그 공격자도 만족, 이것이 실행되고 있기 때문입니다 더 이상 작동하지 않습니다 나는 아무도 IIS 6 또는 65를 사용하지 않는 것처럼 말입니다

하지만 내가 말했듯이, 나는 모든 것을 갖기를 기대하고있다 한 곳에서 가능한 기술 그래서 나는 옛 학교에 대해서도 이것을 언급했다 해커 물론 DOS

그것은 파일 크기 유효성 검사의 일부였습니다 그래서, 개발자가 거의 모든 것을 검증한다고 가정 해 봅시다 업로드 할 수 없습니다 악의적 인 파일, 디렉토리 트래버 설을 할 수 없으며, 자신을 우회 할 수 없다 파일 이름에 대한 유효성 검사가 가능하지만 여전히 파일의 가능성이 있습니다

크기가 확인되지 않습니다 그래서, 업로드 할 수 있다면 100 개의 요청을 보내고, 백 업로드 요청 및 각 파일은 20MB와 같습니다 이 서버는 DOS가 될 것입니다 모두 서비스 거부 공격입니다 그래서, 그것은 여전히 ​​가능성이 있습니다

개발자는 파일 업로드 크기의 유효성을 검사해야하며 네 그리고 나서, 시나리오 11, 그저 돌아온 것과 같습니다 승인 WordPress의 마법의 숫자 플러그인에서 뭔가를 가리 키려면 페이지, 너, 너, 미안, 이미지 업로드, 페이지 업로드 중

파일을 업로드 한 경우 PHP는 여전히 파일이지만 이미지에 마법 번호가 포함되어 있습니다 예를 들어, GIF 이미지에서 GIF와 같은 것입니다 98 죄송합니다 89 또는 87을 입력하고 ':'다음 일반 PHP 콘텐츠를 입력하십시오 PHP는 그 당시에는 WordPress를 사용 했었지만 그 당시에는 파일 내용 만 검증하고 있었고, 이 코드는 어쨌든 작동하도록 이미징됩니다

그리고 나서, 매직 넘버 이 마법 번호를 PHP 코드에 삽입하여 우회 할 수도 있습니다 또한 RCE의 zip 파일을 통해 그래서 페이스 북에서도이 사이트를 시도 할 때 정상적인 운영 체제 명령 인 파일을 압축 해제합니다 이상해 네

시나리오 14 당신이 할 수 있다면 잘 모르겠다 속도 태깅에서 페이로드를 확인 하시겠습니까? 그래서,이 경우, 나는 시나리오, 내가 테스트 한 웹 사이트에서 묻고있는 시나리오 사용자가 직업을 신청할 수 있습니다 그래서, 그들의 웹 사이트 또는 무엇인가 그렇게, 그들은 묻고있다 당신은 CV를 업로드 할 수 있습니다

하지만 업로드 한 파일이나 시도하려는 파일 업로드가 파일 이름의 유효성을 검사하지 않습니다 방금 데이터베이스에 삽입되었습니다 그 자체로 파일 이름 자체는 검증되지 않습니다 따라서 파일이 삽입 된 경우 다시 데이터베이스에 직접 들어가면 두 번째 주사를 할 수 있습니다 맞습니까? 하지만 너는 이것은 데이터베이스 측에 저장된 것이기 때문에 출력을 볼 수 없습니다

HR 직원과 같은 사람 또는 누구나 볼 수 있습니다 출력을 볼 수 없습니다 이 때 시간이 흐르면 ​​"대역 외 (out-of-band)"보안 주입이라고하는 것을 사용해야합니다 뭐 "out-of-band"안전한 주입은 무엇입니까? 너는 보통처럼 요청,이 경우 정상 요청은 요청해야합니다 외부 파일은 귀하가 관리합니다

따라서 개발자, 예를 들어 X가 실행되면 코드가 실행되고 일부 HR 담당자는 다음과 같습니다 이 메시지는 서버 로그에서 정상적인 요청으로 간주됩니다 그래서, 이제 우리가 작성한 SQL 명령이 실행되었음을 알게되었습니다 그러나 이것은 단지 SQL Server 및 aspnet에서만 작동합니다

불행히도 PHP에서는 작동하지 않습니다 및 MySQL 예, 이것이 마지막 기술입니다 "십자가 도메인 데이터 하이재킹 (hijacking) "또는"크로스 사이트 데이터 하이재킹 (cross site data hijacking) "등이 있습니다 그래서

이 경우 우리는 플래시 파일을 이용하고 있습니다 파일 그래서, 왜 플래시 파일입니까? 네, 이름을 바꿀 수 있다면 PDF, JPG 또는 확장명이 허용되는 것과 같은 플래시 파일 그리고 파일 내용 자체, 웹 서버를 기반으로 파일을 업로드합니다 주문 했어, 알았어, 알았어

웹 브라우저는 실제로 사이에 무엇이든 실행하는 것을 좋아합니다 플래시 파일과 마찬가지로 일반 객체 태그입니다 예를 들어,이 페이로드입니다 만약 너라면 이 태그 안에 언로드 된 플래시 파일이나 JPG 파일을 넣으면 객체 태그가 실행되지 않으면 일반 플래시 파일로 실행됩니다 사용 당신이 그것을 제어 할 수 있기 때문에 플래시 파일, 당신은 크로스 도메인 요청을 할 수있는, 권리? 교차 할 수 있으며 교차 도메인 요청을 제어 할 수 있습니다

플래시 그것은 항상 같은 스트라이크와 같습니다 : 허용 된 모든 것, 모두 허용하는 것 태만 네, 이제 우리는 이것을 URL과 함께 할 것입니다 POC 파일 그리고 지금, 개발자들을위한 결론

당신이 할 수있는 일은 무엇입니까? 이 모든 우회 기술을 완화하거나 유효성 검사를 우회 할 수 있습니까? 그래, 우선, 나는 그것을 좋아한다 사실, CDN 콘텐츠 전송 네트워크를 사용할 때 콘텐츠 배달 네트워크, 정말, 캐시에만 모든 콘텐츠의 캐시, 같은 JS 파일, CSS 파일은 일반적인 파일을 캐싱하고 실행할 수있는 것처럼 말합니다 하지만 그들은 기본적으로 PHP 나 HTML과 같은 내용을 실행합니다 실행 파일을 무시하십시오 항상 가장 먼저 파일을 만드는 것입니다

다운로드 가능하며 실행 가능하지 않습니다 그래서, "content position"이라는 헤더가 있습니다 이 헤더를 사용하여 예를 들어 당신은 브라우저가 항상 실행 불가능한 파일을 다운로드하도록 요청할 수 있습니다 따라서 파일이 다운로드되고 있기 때문에 대부분의 공격에 안전합니다 실행되지 않으면 PHP 코드가 실행되지 않습니다

그래서, 당신은 대부분 안전합니다 또한 파일 크기를 항상 확인하십시오 왜냐하면 물론 당신이 원하지 않기 때문입니다 귀하의 사이트에 대한 DoS 공격처럼 느껴지십시오 또 다른 좋은 기술은 – 거의 업로드 된 파일의 이름을 바꿉니다

그래서, 파일 이름이 무엇이든간에; 너는해야한다 신경 쓰지 마세요 무작위로 파일 이름을 바꾸면됩니다 허용 된 확장자를 파일 끝에 추가하십시오 그래서 이것이 PHP이고 그것이 어떻게 든 우회 되었더라도 여전히 무대입니다

JPG로 이름을 바꾸고 임의의 파일처럼 만들면 공격자가되지 않습니다 그것을 붙잡을 수 있습니다 그리고 그것을 잡으면 여전히 JPG 파일입니다 맞습니까? 예 그것들은 개발자를위한 조언입니다

바라건대, 너희들, 이거 좋아 그리고 우크라이나 사람을 읽는 사람들은 내가 생각하기에, 당신은 내가 무엇인지 이해할 것입니다 여기에 [음악]

Type declarations! – What’s new in PHP7?

PHP7까지, 우리가 숫자로 작업하고 검증을 원할 때마다, 우리는 is_int, is_float, is_bool 또는 is_string 형식으로 항상 검사를 수행해야했습니다 예를 들어, 양식을 작성하는 경우 수량이 실제로 있는지 확인하고자합니다 숫자가 아닌 문자열

이 함수를 지금 보시면, 현재 우리는 이것은 정수임을 나타냅니다 우리가 이것을 float로 변경하면, 이제는 이것이 업데이트되어 사실을 반영합니다 그것은 부유물입니다 물론 우리는 부울로 바꿀 수 있습니다 부울은 제대로 반영 될뿐만 아니라 문자열, 그리고 다시, 제대로 반영됩니다

그러나 PHP7에서는 더 엄격하게 처리 할 수 ​​있으며 실제 매개 변수에서 유형을 사용할 수 있습니다 성명서 이 경우 입력을 항상 정수로 지정하고 우리는이 문자열로 실행하려고 시도합니다 우리는 이것이 실제로 우리의 웹 페이지를 망가 뜨리는 것을 보게 될 것입니다 이 문자열을 실제 숫자로 파싱 할 수 없기 때문입니다

이것은 항상 그런 것은 아닙니다 예를 들어이를 다시 부울로 변경하고 새로 고침 우리의 페이지가 다시, 우리는 그것이 정수라는 것을 볼 것입니다 이는 부울도 1 또는 0으로 간주 될 수 있기 때문입니다 우리는 또한 부유물을 통과하려고 시도 할 수 있으며, 이것이 실제로 실제로 작동한다는 것을 알 수 있습니다 그리고 이것은 PHP7의 기본 동작입니다

이러한 잘못된 유형이 통과하도록 허용 필터가 선택 취소되었습니다 그러나 우리는 이러한 모드가 PHP에 의해 강제적으로 시행되도록 할 수 있습니다 이렇게하려면 간단히 입력하면됩니다 괄호 안의 strict_types = 1을 선언하십시오 이제 여기에 float이 있고 정수로 전달하려고합니다

우리가 웹 페이지로 돌아가서 다시 새로 고침을하면, 이제 이것이 적절하게 충돌한다는 것을 알 수 있습니다 우리 페이지 부울 값을 전달하려고하면 페이지가 계속 충돌합니다 이것은 더 이상 이러한 값을 정수로 파싱 할 수 없기 때문입니다 그들은 반드시 기본적으로 정수가되어야한다

페이지를 새로 고치면 이제 제대로 다시 작동하는 것을 볼 수 있습니다 따라서 어떤 유형의 데이터 유형을 사용할 수 있는지에 관해서는 클래스, 객체, 배열과 같은 PHP5, 우리는이 새로운 것들을 가지고 있습니다 float, integer, boolean 및 string을 반환합니다

이 비디오에 대해 어떻게 생각하십니까? 도움이 되었습니까? 새로운 것을 배웠습니까? 나를 시켜줘 댓글에서 알기, 구독 버튼을 눌렀을 때, 그리고 다른 동영상을 확인해보십시오

Novedades de PHP 7: Parte 1

안녕하세요, 저는 Carlos Benito Santiago Portas입니다 저는 대학에서 멀티미디어 공학을 전공하고 있습니다

알리 칸테 "웹 개발 소개"과정의 일부인이 비디오에서 새로운 PHP 버전의 주요 변경 사항에 대해 설명하겠습니다 이 비디오에서는 PHP와 관련하여 PHP가 제공하는 주요 신기한 것들을 보여 드리려고합니다 56

새로운 기능인 그들은 언어를보다 강력하고 안전하게 만들어 주며, 통역사는 엄청나게 빠릅니다 그리고 나는 그것을 헛되이 말하지 않습니다 왜냐하면 이제는 초당 요청 수를 3 배로 늘릴 수 있기 때문입니다 WordPress와 같은 콘텐츠 관리자에서! 웹 kinstacom은 수많은 최신 PHP 7

3 버전이 많이 있음을 보여주는 콘텐츠 관리 플랫폼 그들 모두에게 더 나은 성능 phpnet 웹 사이트에서 찾을 수 있습니다 이 비디오에서 보여지는 것과 유사한 많은 예가 있습니다 인수와 리턴을위한 타입 선언으로 시작하겠습니다

이 새 버전에서 우리는 통과하는 인수 유형을 지정할 수 있습니다 매개 변수는 문자열, 정수, 십진수, 부울 또는 기타 유형이어야합니다 배열 또는 반환 호출과 같은 복합체 이 예에서 볼 수 있듯이 함수 sumaEnEnteros는 여러 숫자를 인수로 받아서 "$ integer"배열에 삽입합니다 모든 것이 정수는 아니지만 (정수, 문자 및 소수가 있으므로) 배열을 만들 때 모두 변형됩니다 그런 다음, array_sum 함수를 호출하십시오

합계의 결과를 반환하는 배열을 전달합니다 마지막으로 var_dump를 사용하여 메소드를 제공합니다 그리고 우리가 볼 수 있듯이, 변수 같은 값으로 9를 가진 정수입니다 함수가 반환 한 인수의 형식은 앞에서 설명한 것과 같습니다 이 예제에서 알 수 있듯이, 두 가지 기능 만 있습니다

하나는 리턴 될 유형이 지정되고 다른 유형은 지정되지 않습니다 따라서 첫 번째 함수 float를 지정했기 때문에 float를 반환하지만, 두 번째는 float를 반환하지 않습니다 형식 선언으로 끝내려면 이러한 예제가 만들어 졌음을 주목할 가치가 있습니다 강제 모드에서 모드를 엄격하게하려면 문장을 사용할 수 있습니다

"선언 (strict_types = 1);"파일의 시작 부분에 엄격 모드에서, 메소드 항목을 사용하면 두 번째 및 세 번째 항목을 지정하도록 오류가 발생합니다 인수는 정수가 아닙니다 신기한 것의 한개는 업무를 촉진 할 것입니다 GET 및 POST에 의해 전달 된 데이터의 필터링입니다 이 예제에서 우리는 변수가 null이거나 정의되지 않은 경우, 그 값은 텍스트 "nobody"로 대체됩니다

우리가 볼 수 있듯이, 두 번째 성명서 처음보다 약간 더 간단합니다 마지막으로, 세 번째 문장에서 우리는 이 연산자로 수행 할 수있는 작업의 실용적인 예를 참조하십시오 정의 된 3 개의 값 중 첫 번째 값 변수가 정의되지 않았기 때문에, 화면에 "아무도 없음"텍스트가있는 세 단락을 보여줍니다 이 연산자는 표현식을 비교하고, 1, 0 또는 -1을 반환하는 데 유용합니다

나이가 들다 이 예에서 볼 수 있듯이, 0이 표시됩니다 첫 번째 것이 더 크면 1을 표시합니다 그렇지 않으면 두 번째가 더 크다 -1이 표시됩니다 문자열의 경우 1, 0 또는 -1을 반환합니다

알파벳 순서 PHP 7에서 상수 배열을 선언 할 수 있습니다 정의를 사용하여 이전 버전에서는 const를 사용하지만 이제는 똑같은 결과를 얻는 정의를 사용할 수 있습니다 우리가 화면에서 볼 수 있듯이 이제 PHP는 익명 클래스 생성을 지원합니다

일회용 물체를 만드는 데 매우 유용합니다 이 예제에서는 PHP 매뉴얼에서 가져온 것입니다 실제로 생성 된 클래스가 이름이없는 것을 볼 수 있습니다 이 버전에서 해당 유니 코드 문자를 얻는 것이 훨씬 쉬울 것입니다 표시된 코드로 이동하십시오 예제에서 볼 수 있듯이 이전 예제에서 볼 수 있듯이 버전은 더 복잡한 것이 었습니다

또한 앞에 오는 0을 생략 할 수 있습니다 작은 수에 그리고 이것으로, 이것의 첫번째 부분 비디오는 사이드 웹 코스에 속한다 나는 우리가 볼 두 번째 부분을 보도록 당신을 초대합니다 이 버전의 다른 참신

Twitter (@iCbsp) 또는 내 이메일 cbsp1@aluuaes 이 비디오는 코스의 일부임을 기억하십시오 "웹 개발 개론"은 idesweb

es 주소에서 구할 수 있으며, 주의 해 주셔서 대단히 감사합니다

How to use the SQL UPDATE Statement

UPDATE 문 (또는 일반적으로 "UPDATE 쿼리"라고 함) 데이터베이스 테이블의 기존 레코드를 업데이트하는 데 사용되는 SQL 문입니다 UPDATE 문을 이해하는 가장 좋은 방법은 예제를 보는 것입니다

시작하자 여기에 다음 데이터가 포함 된 고객이라는 테이블이 있습니다 first_name을 Judy로 변경하는 UPDATE 문을 작성해 보겠습니다 여기서 customer_id 값은 8000과 같습니다 우리는 UPDATE 고객을 입력하여 시작할 것입니다

이렇게하면 데이터베이스가 UPDATE 쿼리를 작성한다는 것을 알 수 있습니다 고객 테이블의 레코드를 변경합니다 다음으로 SET 키워드를 입력해야합니다 여기에서 업데이트 할 열의 목록을 입력합니다 및 우리가 업데이 트하려는 값 이 예에서는 first_name = 'Judy'를 입력합니다

이제 쿼리는 customers 테이블에서 first_name 열을 'Judy'로 설정하는 것을 알고 있습니다 'Judy'값은 문자열 값이므로 따옴표로 묶습니다 업데이트 할 열을 두 개 이상 입력해야하는 경우 추가 열 / 값 쌍을 쉼표로 구분합니다 WHERE 절은 선택 사항입니다 갱신 될 레코드에 대해 충족되어야하는 조건을 지정하는 데 사용됩니다 조건이 제공되지 않으면 고객 테이블의 모든 레코드가 업데이트됩니다

customer_id가 8000 인 레코드 만 업데이트하려고하기 때문에 우리는 다음과 같이 WHERE 절을 입력 할 것이다 이제 UPDATE 문을 실행하고 우리가 얻은 결과를 봅시다 이 예에서 데이터베이스는 하나의 레코드가 업데이트되었음을 ​​알려주는 메시지를 반환합니다 고객 표를 보면 우리는 first_name이 이제 customer_id 8000에 대해 'Judy'로 설정되었음을 확인해야합니다 여기에는 SQL UPDATE 문을 사용하는 방법에 대한 간단한 예제가 들어 있습니다 더 많은 업데이트 예제를보고 싶다면 이 자습서에서 사용한 샘플 날짜를 다운로드하고 싶습니다 TechOnTheNet

com의 웹 사이트를 방문하십시오 웹 사이트의 SQL 편집기에서 예제를 시험해 볼 수도 있습니다 각 예제 옆의 "Try It"버튼을 찾으십시오 튜토리얼이 도움이된다고 생각되면이 비디오와 비슷하게 남겨주세요 보다 훌륭한 SQL 튜토리얼을 보려면 YouTube 채널을 구독하는 것을 잊지 마십시오