vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   ibProArcade Archive (https://vborg.vbsupport.ru/forumdisplay.php?f=174)
-   -   Alternate fix to injection code in comments (https://vborg.vbsupport.ru/showthread.php?t=279305)

g7jgq 03-08-2012 07:40 PM

Quote:

Originally Posted by rpgamersnet (Post 2305022)
If you refer to this post: https://vborg.vbsupport.ru/showpost....91&postcount=5

The code I am asking about is the loop that removes all the SQL keywords from the comments. Most I'm sure won't come across in normal comments, but filtering out parts like "or" and "and" are going to catch and mess up standard comments, as given in the example on that post.

"I got the high score!" becomes "I got the high sce!"

"Got a great hand on the last round!" -> "Got a great h on the last round"

Some basic words will get filtered as well, not just the bad SQL data, which is why I suggested that maybe this fix is not the best solution. Code I am questioning is quoted here:

PHP Code:

function recursive_str_ireplace($replacethis,$withthis,$inthis)
{
    while (
1==1)
    {
        
$inthis str_ireplace($replacethis,$withthis,$inthis);
        if(
stristr($inthis$replacethis) === FALSE)
        {
            RETURN 
$inthis;
        }
    }
    RETURN 
$inthis;


PHP Code:

 // remove any SQL-commands
    
$sqlcomm[] = 'create';
    
$sqlcomm[] = 'database';
    
$sqlcomm[] = 'table';
    
$sqlcomm[] = 'insert';
    
$sqlcomm[] = 'update';
    
$sqlcomm[] = 'rename';
    
$sqlcomm[] = 'replace';
    
$sqlcomm[] = 'select';
    
$sqlcomm[] = 'handler';
    
$sqlcomm[] = 'delete';
    
$sqlcomm[] = 'truncate';
    
$sqlcomm[] = 'drop';
    
$sqlcomm[] = 'where';
    
$sqlcomm[] = 'or';
    
$sqlcomm[] = 'and';
    
$sqlcomm[] = 'values';
    
$sqlcomm[] = 'set';
    
$sqlcomm[] = 'password';
    
$sqlcomm[] = 'salt';
    
$sqlcomm[] = 'concat';
    
$sqlcomm[] = 'schema';
    
$value recursive_str_ireplace($sqlcomm''$value); 

Some recent threads have started to appear complaining of errors appearing, this new code is also the source of those new problems; the new recursive_str_ireplace loop to replace these parts of the comment field.... and any other field being filtered by the ibp_cleansql function.

As I posted in another thread, before searching !!!!!!!!!! its also stripping the words out of game names which I suspect will break a lot of games.

When it gets the game name from the posted data

PHP Code:

$game_name ibp_cleansql($_POST['gname']); 

A game such as wordrace will end up as wdrace

For now I have just modified the replacement list as follows, its NOT a good fix but at least all of the games will submit scores now :-)

PHP Code:

    $sqlcomm[] = 'create ';
    
$sqlcomm[] = 'database';
    
$sqlcomm[] = 'table';
    
$sqlcomm[] = 'insert';
    
$sqlcomm[] = 'update ';
    
$sqlcomm[] = 'rename';
    
$sqlcomm[] = 'replace ';
    
$sqlcomm[] = 'select ';
    
$sqlcomm[] = 'handler';
    
$sqlcomm[] = 'delete ';
    
$sqlcomm[] = 'truncate ';
    
$sqlcomm[] = 'drop ';
    
$sqlcomm[] = ' where ';
    
$sqlcomm[] = ' or ';
    
$sqlcomm[] = ' and ';
    
$sqlcomm[] = 'values';
    
$sqlcomm[] = ' set ';
    
$sqlcomm[] = 'password';
    
$sqlcomm[] = 'salt';
    
$sqlcomm[] = 'concat';
    
$sqlcomm[] = 'schema'

I know that won't solve the problem in comments but we don't really use comments. I am going to look at an alternative fix for this over the weekend

Cheers

Alex

stangger5 03-09-2012 01:13 AM

Quote:

Originally Posted by g7jgq (Post 2307610)

I know that won't solve the problem in comments but we don't really use comments. I am going to look at an alternative fix for this over the weekend

Cheers

Alex

Give this a try : https://vborg.vbsupport.ru/showpost....04&postcount=6

g7jgq 03-09-2012 12:04 PM

Quote:

Originally Posted by stangger5 (Post 2307706)

Thanks for that.

Looking at that code it will do the same thing, the problem is you cannot get rid of SQL command by simply doing replaces in the posted data.

Cheers

Alex


All times are GMT. The time now is 07:05 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01114 seconds
  • Memory Usage 1,752KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (4)bbcode_php_printable
  • (3)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (3)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete