วันอาทิตย์ที่ 13 มีนาคม พ.ศ. 2554

มีสาระ.......ใครอยากแฮกเว็บ(โดยใช้Javaกับเว็บบ้านๆ)

A little introduction to Java Script
คำ ว่า Script มีความหมายว่าเป็น lightweight programming อ่าครับหมายถึง โปรแกรมที่เบาๆสั้นๆง่ายๆ ( อาจจะยาวก็ได้นะครับ หรือจะเขียนให้ซับซ้อนก็ได้ ) ใช้ในการควบคุมการทำงานของ application ต่างๆ

ถ้า หากเราพูดถึง Java Script มันก็เป็นภาษาโปรแกรมภาษาหนึ่งที่มี Syntax คล้ายๆกับภาษา C ไม่เหมือนกับ Java นะ( Java มีรากฐานมาจาก C/C++ ) นั่นก็คือถ้าหากว่าเขียนภาษา C เป็นก็จะอ่านภาษา Java Script ได้สบายสบายเลยล่ะครับ ลืมบอกไปว่า java script สามารถที่จะไม่ต้องประกาศตัวแปรก็ได้ครับผมใช้ได้เลย
Keyword และความหมาย
string :- ข้อความที่ถูกครอบด้วย ' หรือ " เช่น "a", "abc", 'a', 'abc'

การ เชื่อมต่อ string จะใช้เครื่องหมาย + ครับเช่น tempstring = "Phoenix" + "Snake"; จะได้ว่าค่าในตัวแปร tempstring มีค่าเป็น "PhoenixSnake" หรือเราจะใช้กับตัวแปรก็ได้ครับผมเช่นให้ a = "I"; b = "You"; c = 555; result = a + " Love " + b + " " + c; จะได้ว่า result มีค่าเป็น "I Love You 555" อ่าครับง่ายมั้ยครับ ^^ จะเห็นว่า string + ตัวเลขก็ได้เป็น string นะครับผม ค่าที่รับมาจาก form ทั้งหมดมันจะมองเป็น string ครับผม
วิธีการให้ Java Script ทำงานอย่างง่ายๆ ( สำหรับคนที่ไม่รู้ครับผมใครรู้แล้วข้ามไปโลด )
เปิด notepad หรือ text editor อาไรก็ได้ที่คุณมีอ่าครับ

พิมโค้ดลงไประหว่าง ครับผมหรือ copy มาวางก็ได้ หรือจะไม่เขียน ก็ได้ครับแต่ต้องเขียนให้มันอยู่ภายใต้ ครับ

เสร็จแล้วก็ save ครับผมให้เป็น .html นะครับ .htm ก็ได้

เสร็จ แล้วให้ double click file html ที่เราสร้างขึ้นมาอ่าครับถ้ามันมีเหลืองๆข้างบนหน้าต่าง IE ก็ click ขวาแล้วเลือก allow block content อาไรประมาณนี้อ่าครับผม ^^

ลองมาดูคำสั่งสำคัญๆที่จำเป็นต่อการ hack กันดีกว่านะครับ ^^
alert( string หรือ ตัวแปร หรือ รวมๆกัน ); เป็น function ที่ใช้ในการแสดงผลลัพธ์ขึ้นมาที่หน้าจอครับผม วิธีการใช้งานเช่น

มันจะแสดงผลลัพธ์ดังรูป

ตัวอย่างการใช้งาน

ลองมาดูเทคนิคการเปลี่ยนค่าตัวแปรในขั้นตอนการ alert ดูนะครับผม ^^

อันเดียวก็เพียงพอแล้วครับผม ^^
Javascript Injection
มา เข้าเรื่องเราซักทีนะครับผม วิธีการข้างต้นเนี่ยสามารถที่จะทำได้ในกรณีที่หน้าเวบไม่มีการตรวจสอบว่า ข้อมูลที่ส่งมานั้นส่งมาจากที่ไหนเราสามารถที่ view source แล้วเอามา save แก้ไขค่าต่างๆแล้วก็สั่งให้มันทำงานด้วยการเรียก file ที่มีนามสกุล .html ขึ้นมาทำงาน หรืออาจจะกด refresh ถ้าเปิดขึ้นมาแล้วแต่ถ้าหากว่า server มีการตรวจสอบให้ค่าที่ส่งต้องส่งมาจากหน้าที่ทำงานอยู่บน server นันเท่านั้น ( ถ้าส่งจากที่อื่นมันจะบอกว่า wrong refer )เราก็ไม่สามารถที่จะใช้งานแบบธรรมดาได้ ดังนั้นเราจะใช้จุดอ่อนของ Java script ในการ hack เราเรียกวิธีการนี้ว่า Java Injection เนื่องจากว่าใน header ของแต่ละ content มีการใช้งาน protocols ที่เรียกว่า javascript ดังนั้นเราสามารถที่จะเขียน code ลงไปบนหน้านั้นได้เลยโดยโค้ดนั้นสามารถที่จะไปเปลี่ยนแปลงค่าที่มีอยู่ได้ อ่าครับผม

I. Injection Basics
เราสามารถที่จะทำการ inject( แปลว่าแทรกเข้าไป ใส่เข้าไป เหมือน การฉีดยาอ่าครับ ) ด้วยการเขียนคำว่า javascript: แล้วตามด้วย code ธรรมดาๆของเรานี่แหละครับผมลองทำดูนะ

ขั้นแรกเรยก็เข้าเวบที่ต้องการจา hack อ่านะครับผม สมุติว่าเป็น hotmail

click 1 ทีที่ URL จะทำให้เป็นสีฟ้าอ่านะครับ

พิม javascript: ลงไปเลยเย่

ลองพิมอาไรก็ได้อ่าครับผม ใช้แต่ alert ก็ได้ไม่ต้องใช้ void หรอกพวกเราเก่งอ่า ^^ เนอะๆ

เสร็จแล้วกด Enter เลย

เป็นกันแล้วใช่มั้ยล่ะครับผม ต่อไปมาลองเล่นๆกันดูนะ click ไป training ground กันเลย นี่แหละครับ

II. Cookie Editing
นี่เรื่อง cookie นะครับผมใช้ alert(); ก็ได้ไม่ต้องใช้ void(); อิอิลองอ่านเพิ่มนะครับผม ไม่ยากๆอ่านไม่ออกดูตัวอย่างเค้าก็ได้ครับ

คือว่าเห็นว่าบางคนอ่านภาษาอังกฤษไม่ออกอาครับก็เลยแปลให้

ขั้นแรกก็ไปที่เวบที่ต้องการจะ hack แล้วก็ใส่ไอนี่ เข้าไปนะครับ ทำเหมือนด่าน 9 ง่ะครับ

javascript:alert( document.cookie );

แล้ว เราก็จะเห็นข้อมูล cookie นะครับมันจะเป็นชื่อตัวแปรแล้วก็จะเป็นค่าของมันครับ ( ถ้าหากว่าบางทีไม่เห็นล่ะก็ลองกด submit ดูก่อนนะครับแล้วค่อยใส่ไอนั่นเข้าไป ) เวลาเราจะแก้ค่าที่อยู่ในนั้นก็ใส่

javascript:void(document.cookie="Field = myValue");

แบบนี้นะครับจะใช้เป็นเหมือน alert แทนก็ได้ไม่ต้องใช้ void(); ถ้าจาใช้เป็น alert ก็อย่างนี้ครับ

javascript:alert( document.cookie="Field = myValue" );

ตัวอย่างเช่น

javascript:alert( document.cookie="Authorized=yes" );

มันจะเป็นการทำให้ค่าในตัวแปร Authorized ซึ่งอยู่ใน cookie มีค่าเท่ากับ yes

ไม่ ต้องใช้ void() ก็ได้ครับ void() มันทำหน้าที่แค่ไม่ส่งค่า return ออกมาครับไม่ได้ต่างจาก alert() เพราะ ว่า alert() มันก็ return เป็น void อยู่แล้ว เอาเป็นว่ามันใช้แทนกันได้ครับ ^^

0 ความคิดเห็น:

แสดงความคิดเห็น

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More