สวัสดีครับ ห่างหายไปนานเลยเนื่องจากอยู่ในช่วงสอบจึงไม่ค่อยได้เขียนบล๊อกหรือไม่รู้จะเขียนเรื่องอะไรดี วันนี้เลยจะมานำเสนอพื้นฐานการหา Bug จาก CMS มาให้ดูเป็นตัวอย่างกันครับ
เนื่องด้วยเว็บที่ผมใช้เช็คว่า CMS ไหนมี Bug อะไรให้ศึกษามีอยู่ประมาณ 3-4 เว็บ แต่ขอยกตัวอย่าง Exploit-DB.com และ 1337day.com นะครับ ซึ้งเราก็จะเห็นว่ามีการประกาศ ก็จะมีโค้ดให้ทราบว่า บัคตรงนั้นนะ มีรูตรงนี้ให้เราเข้าไปซนได้ แต่ถ้าไม่ีมีโค้ดบอกว่า บัคยังไงล่ะ เรามาหาจุดตรงที่มันบัคกันดีกว่าครับ
บทความนี้ขอยกตัวอย่าง Peel SHOPPING - Version 2.8 and Version 2.9 XSS/SQL Inject Vulnerability ซึ้งถ้าเข้าไปจะเห็นแค่
http://localhost/peel/index.php/achat/recherche.php?motclef=[Xss Here ]&action=Rechercher
http://localhost/peel/administrer/tva.php?mode=modif&id=[SQL]
http://localhost/peel/index.php/[XSS]
แต่จะไม่มีบอกว่าบัคได้อย่างไร เราก็แค่เข้าไปที่ Software Link ครับ ไปโหลด CMS นี้มาชำแหละโค้ดดูกันครับ บทความนี้ขอยกตัวอย่าง SQL Injection นะครับ
เรามาดูกันที่ไฟล์ tva.php ที่มีบัคอยู่นะครับจะรู้ได้อย่างไรว่าบัคตรงไหน ถ้าสังเกตุจะเห็น ?mode=modif&id= ตรงนี้ก็เป็นการรับค่า $_GET ในภาษา PHP นั้นเอง ซึ้งใครเป็นก็คงจะร้องอ่อแล้ว เราก็ค้นหาด้วย Keyword modif ก็จะได้เป็น
case "modif" : affiche_formulaire_modif_tva($_GET['id']); break;
จะเห็นว่ามีการเรียกใช้ Function affiche_formulaire_modif_tva อยู่นะครับสังเกตุได้จาก affiche_formulaire_modif_tva($_GET['id']); อย่างที่ผมบอกไว้ตั้งแต่แรกว่ามันเป็นการรับค่า GET นั้นเอง เราก็ค้นว่า affiche_formulaire_modif_tva อยู่ตรงไหน...
function affiche_formulaire_modif_tva(&$id) { /* Affiche le formulaire de modification pour le tvas้lectionn้ */ global $frm; /* Charge les informations du produit */ $qid = mysql_query(" SELECT * FROM peel_tva WHERE id = $id "); $frm = mysql_fetch_array($qid); $frm['nouveau_mode'] = "maj"; $frm['titre_bouton'] = "Sauvegarder"; affiche_formulaire_tva(); }
มีการรับค่ามาสังเกตุจาก
$_GET['id'];และการ Query ตรงนี้
$qid = mysql_query("SELECT * FROM peel_tva WHERE id = $id");รับค่ามาโดยตรงโดยไม่มีการป้องกัน SQL Injection เลยจึงเกิดบัค SQL Injection ส่วนวิธีป้องกันและวิธี By Pass ลองหาดูในบล๊อกผมครับ เคยเขียนไว้แล้ว :P
ขอจบบทความการหาจุดที่ Bug จาก CMS แบบพื้นฐานเพียงแค่นี้ครับ ขอบคุณทุกท่านที่อ่านจนจบ ,, ICheer_No0M
ไม่มีความคิดเห็น:
แสดงความคิดเห็น