[Hard core] How to get TOKEN out side Joomla 1.5 - จะเอาค่า token จากข้างนอกจุมล่ายังไง?
ออกตัวก่อนเลยว่า นี่ไม่ใช่การ Hack นะครับ
แต่บางทีเราต้องการเขียนระบบอะไรสักอย่างที่อยู่ข้างนอกจุมล่า แต่ดั้นนนนน ต้องคืนค่ากลับไปให้จุมล่าทำงานต่อ
อย่างเช่น
เขียนฟอร์มจากทาง CI(CodeIgniter) ให้มันทำงานกับจุมล่า(ส่งเข้า Controller)
** ตรงนี้ถ้าใครงงว่า "ส่งเข้า Controller แล้วมันเกี่ยวกับ Token ยังไงวะ?" คือ token เอง อย่างน้อยๆ ก็เป็นตัวสกรีนในระดับหนึ่งแล้วว่า user นั้นกำลังถูกใช้งานในเบราเซอร์จริงๆ อะไรประมาณนั้น
สเต็ปง่ายมั๊กๆ เลยฮะ
ณ จุดนี้ เราก็หลอกๆ มันได้อยู่นะ เช่น
@define(JPATH_BASE, '1');
require_once FCPATH.'../libraries/joomla/crypt/crypt.php';
แต่บางทีเราต้องการเขียนระบบอะไรสักอย่างที่อยู่ข้างนอกจุมล่า แต่ดั้นนนนน ต้องคืนค่ากลับไปให้จุมล่าทำงานต่อ
อย่างเช่น
เขียนฟอร์มจากทาง CI(CodeIgniter) ให้มันทำงานกับจุมล่า(ส่งเข้า Controller)
** ตรงนี้ถ้าใครงงว่า "ส่งเข้า Controller แล้วมันเกี่ยวกับ Token ยังไงวะ?" คือ token เอง อย่างน้อยๆ ก็เป็นตัวสกรีนในระดับหนึ่งแล้วว่า user นั้นกำลังถูกใช้งานในเบราเซอร์จริงๆ อะไรประมาณนั้น
สเต็ปง่ายมั๊กๆ เลยฮะ
- หา #__session ที่กำลังใช้งาน ตรงนี้ถ้า user login อยู่แล้วก็เอา userid ไปหาได้เลยไม่ยุ่งยากอะไร โดยที่มันจะอยู่ในฟิลด์ที่ชื่อว่า data นั่นเอง
พอ query ได้มาแล้วก็ตัด __default| ออกซะ จากนั้นก็ทำการ unserialize ต่อไปให้หา Array ที่ชื่อว่า session.token แค่นี้ล่ะจ้า - เอา secret จากใน configuration ออกมา
- เอา id ของ user คนดังกล่าวออกมา
- จับเอาค่าทั้งสามตัวมารวมร่างเรียงกัน ผ่าน md5 ดังนี้
md5(CONFIG_SECRET.USER_ID.SESSION_TOKEN);
แค่นี้ล่ะ เราก็จะได้ token ไว้ใช้งานใน CI แบ๊วววว
แถมท้าย
ถ้าเราไม่มี user id จากทาง CI เราจะทำยังไงดี?
คำตอบก็คือ หาจากใน COOKIE เลยครับ คือใน Value ของ COOKIE มันจะมีค่าของ session_id ที่อยู่ใน #__session อยู่นั่นเอง
แถมท้ายฝุดๆ
บางครั้งเราจะเจอปัญหา อยาก include class สักตัวหนึ่ง ที่มันไม่ได้ Extends อะไรมาเลยแต่มันติด
defined('JPATH_BASE') or die();
แถมท้ายฝุดๆ
บางครั้งเราจะเจอปัญหา อยาก include class สักตัวหนึ่ง ที่มันไม่ได้ Extends อะไรมาเลยแต่มันติด
defined('JPATH_BASE') or die();
ณ จุดนี้ เราก็หลอกๆ มันได้อยู่นะ เช่น
@define(JPATH_BASE, '1');
require_once FCPATH.'../libraries/joomla/crypt/crypt.php';
เอามาใช้ได้แหล่ววว
Comments
Post a Comment