How to fix XSS-Reflected (GET)?
สำหรับบทความนี้จะเป็นการ POC XSS-Reflected(GET) บน bWAPP
Step 1: Go to Cross-site-Scripting-Reflected(GET) จาก Drop-Down จากนั้นเลือก Hack
Step 2: ภายใน XSS-Reflected(GET) จะมีช่องให้ใส่ Firstname และ Lastname ซึ่งเมื่อทดสอบใส่ค่าชื่อ foo/bar ก็จะขึ้นข้อความด้านล่างเป็น Welcome foo bar
Step 3: ถ้าสังเกตดีๆ จะเห็นในช่อง URL มีค่าของ Firstname และ Lastname ที่เราได้กรอกไปก่อนหน้า
Step 4: แล้วถ้าหากเราใส่ Tag ไว้ในช่องละจะเกิดอะไรขึ้น
Firstname = <font size='50'>Hack</font>
Lastname = <font size='50' color='#f00'>XXS</font>
จากภาพด้านบน แสดงให้เห็นว่าเราสามารถแทรกบางสิ่งบางอย่างลงไปได้
Step 5: คราวนี้เราลองใส่
Firstname = <script>alert('HACK')</script>
Lastname = bar
จากภาพด้านบน จะเห็นได้ว่าเราสามารถใส่ Script อะไรก็ได้เข้าไปในช่องใส่ ซึ่งรวมถึง Shell ด้วย
Step 6: ในขั้นตอนนี้เราต้องเข้าไปดูที่ไฟล์ xss_get.php ของเราเพื่อไปดูว่า Code ของเรามีส่วนไหนที่ผิดปกติ โดยเราสามารถใช้ WinSCP เพื่อเข้าไปดู Path ของ Code เรา
Step 7: เมื่อได้ Path ของ Code เราก็สามารถตรวจสอบด้วย rips เพื่อหา Vulnerability ภายใน Code จากโปรแกรม rips ซึ่งเป็น Static Web Scan ซึ่งสามารถกด Scan ได้เลยเมื่อใส่ข้อมุล Path ถูกต้อง
Step 8: เมื่อ Scan เสร็จเรียบร้อยเราสามารถเห็นได้ว่า Code มีช่องโหว่อะไรบ้าง ซึ่งเราสามารถเลือก Help เพื่อตรวจสอบวิธีการแก้ไข Code
Step 9: จากนั้นทำการแก้ไข Code โดยในที่นี้ให้ใส่ Function เพิ่มเติมไปในส่วนที่โปรแกรม Rips ได้แจ้งให้เราทราบ ในที่นี้เราจะใช้ Function htmlentities
Step 10: เข้าไปแก้ไข Code ของเราตาม Help ได้เลยครับ
ก่อนใส่
หลังใส่
Step 11: ลอง Scan ด้วย Rips อีกครั้ง จะเห็นได้ว่าช่องโหว่ของเราได้หายไปแล้ว
Step 12: ลองทดสอบอีกทีบนหน้า Page จะเห็นได้ว่า Script เราไม่ได้ผลแล้ว
Powered By : Icesuntisuk and Sakarin ๒๗ ธ.ค.๖๓