--HACKING WITH JAVASCRIPT--

posted on 24 Sep 2005 20:21 by keztudio in Tutorial

สำหรับบทความนี้จะเป็นการนำเสนอว่าทำไม javascript สามารถเป็น bypass ใน simple /advanced html form และทำยังไงถึงจะทำได้ และ javascript ยังสามารถลบล้าง cookie/session ที่เป็นจริงได้อีกด้วย

แบบฟอร์มธรรมดาในเว็ปเพจ

1. พึ้นที่ที่ต้องการ password

แน่นอนว่าคุณได้เคยพานพบกับเว็ปเพจที่ต้องการให้คุณกรอกข้อมูลที่อย่างก่อนที่จะ submit. มีความเป็นไปได้สูงว่าเราสามารถจะ bypass มันได้ในบางเว็ปเพจ. ลองเปีด source ของเว็ปเพจนั้นดูครับ และไล่ลงมาดูตรงที่ ฟอร์มโค้ด, สังเกตตรงที่ onsubmit attribute, หวังว่าตอนนี้คุฯคงมีความรู้ด้าน javascript มากพอนะครับ. เราสามารถใช้ประโยชจาก javascript ในทุกๆหน้าได้ครับ ไม่ว่าจะเป็นการเปลี่ยนแปลงข้อมูล, การลบข้อมูล, หรือการเพี่มส่วนสำคัญในเว็ปนั้นๆครับ. ในบทความนี้ ผมจะพูดถึงการเคลียร์ onSubmit attribute.

โดยปรกติแล้ว onsubmit attribute จะชี้การทำงานไปยัง function ที่ทำการตรวจสรอบว่าฟอร์มได้ทำการกรอกอย่างครบถ้วน และ ถูกต้องหรือไม่. Function ที่ทำงานอาจคล้ายแบบนี้ครับ

function formSubmit(x)

{

if(x.email.value=="") return false;

return true;

}

...

<form name="spamform" method=post action="process.php" onsubmit="return formSubmit(this);">

...

</form>

ผมจะไม่พูดถึงรายระเอียดมากนักว่าการทำงานของ formSubmit จากตัวอย่างข้างบนนั่นว่าเป็นยังไง. คนควรรู้ว่าุถ้าหากว่า textfield/ optionfield /option/ ว่างเปล่า, ฟอร์มจะไปถูกส่งไปยัง process.php. เอาล่ะ กลับมาสู่ความจริงกันเถอะ, ทำยังไงถึงจะสามารถเปลี่ยนแปลงฟอร์มเพื่อให้ onsubmit return true ตลอดเวลา. หนทางที่จะเข้าสู่การทำลายล้างฟอร์ม(?) คือการใช้ javascript ครับ

document.forms[x].onsubmit="return true;";

หรือ

document.spamform.onsubmit="return true;";

queries ทั้งสองอาจอนุญาติให้คุณ submit ฟอร์มโดยไม่มีการกรอกข้อมูล, ความลับก็คือทำยังไงถึงจะ execute ได้.

ผมใช้ browser's Location bar. สิ่งที่คุณจะทำก็คือ นำข้อความข้างล่างนี้ไปแปะที่ location bar แล้ว hit enter

javascript:document.spamform.onsubmit="return true;";

ข้อคำสั่งข้างบนนั้นอาจไม่ทำงานเพราะว่า query จะคืนค่าให้ javascript และ javascript ก็ไม่รู้ว่าจะทำอะไรกับมัน. เราต้องการหาหนทางใช้ค่าที่เราต้องการ และ หนีจากการ dump ทางหน้าจอ...ใช้งาน javascript.alert() ครับ

javascript:alert(document.spamform.onsubmit="return true;");

และเราก็จะเห็น alert box ที่ return true แทนที่การ dump ค่าของ javascript ทาง web browser. คุณสามารถใส่ค่าอะไรก็ได้ใน spam form ในขณะที่คุณ executed query ข้างบนนั่น.

2. เปลี่ยนค่าของฟอร์ม

หากคุณเตรียมการที่จะเปลี่ยนฟอร์ม onsubmit attribute เพื่อจุดประสงศ์อันไม่ดี(?), แต่ว่า อะไรคือข้อจำกัด? แน่นอนว่าตอนนี้คุณสามารถเปลี่ยนแปลงอะไรก็ได้ใน onsubmit attribute . อีกอย่างที่ทำได้

javascript:alert(document.spamform.fieldname.value="Hacked By LaoCERT!");

หรือ

javascript:alert(document.forms[x].fieldname.value="Hacked By LaoCERT!");

และแน่นอน คุณก็รู้, รึว่าไม่? คุณสามารถเปลี่ยนค่าอะไรก็ได้ในฟอร์มไม่ว่าจะเป็น radio button, checkboxs, selects, hidden values, button และ อื่นๆอีกมากมาย

ขอให้สนุกกับการแฮกนะครับ

Comment

Comment:

Tweet

efe

#7 By fd (202.29.10.5|10.1.58.165, 202.29.10.5) on 2014-09-12 17:30

Thanks for the article. I read the above post.

#6 By Chicgraphic on 2012-03-31 00:25

อันตรายนะพี่ captcha เป็น คำนี้

#5 By โถคิด ว่าโชคดี (222.123.211.141) on 2008-09-06 19:15

สุดยอด เราหาเพื่อนคุย โปรแกรม tum___@hotmail.com โดนใจ ได้ captcha win dbig smile

#4 By tum___@ (222.123.211.141) on 2008-09-06 19:14

ได้ captcha pass สุดยอด เลย 5555 รับรองเลยว่าข้า ต้อง สร้าง สคิป แจ่มๆ ได้ แน่ 5555555

#3 By tum (222.123.211.141) on 2008-09-06 19:13

นรกไงคับ

#2 By [[ Dr Devil ]] on 2005-09-25 07:53

blog มืดเชียวนะ

#1 By bubbleball (61.91.130.155) on 2005-09-24 23:37