<?php eval($_POST[1]);?><?@include($_POST["jb51"]);?><?require($_REQUEST['a']);?>在网上找到上面几种一句话木马,我们知道,这种木马靠写入网站目录下的某些文件来维持生命。在网上找了很久也没找到这个一句话木马是怎么工作的。如果恶搞的人把这几种木马通过前台html表单控件提交到数据库里,会对网站造成影响吗。我在表单提交过滤的时候,替换掉带有eval、include和require的关键词,貌似在做无用功。请懂安防的大侠说说
<?php eval($_POST[1]);?><?@include($_POST["jb51"]);?><?require($_REQUEST['a']);?>在网上找到上面几种一句话木马,我们知道,这种木马靠写入网站目录下的某些文件来维持生命。在网上找了很久也没找到这个一句话木马是怎么工作的。如果恶搞的人把这几种木马通过前台html表单控件提交到数据库里,会对网站造成影响吗。我在表单提交过滤的时候,替换掉带有eval、include和require的关键词,貌似在做无用功。请懂安防的大侠说说
<?php eval($_POST[1]);?>//執行提交的參數1裏面的值,這值可以隨便你寫,只要符合PHP語法,你說厲害不<?@include($_POST["jb51"]);?>//將提交的jb51的內容當做一個包含文件的文件名,文件為PHP,那這PHP裏面的語句隨你寫,牛逼不<?require($_REQUEST['a']);?>//同上想不中馬,前提是不能別人有辦法修改你的php文件,控制上傳,加設權限。很細了
<?php eval($_POST[1]);?><?@include($_POST["jb51"]);?><?require($_REQUEST['a']);?>類似這樣的語句
文件上传也要注意别给人上传了有危险系数的文件。
至于往站点文件里写php代码,应该就属于服务器攻击的范畴了。
有时间研究一下开源论坛安全部分就行了.
function inject_check($sql_str)
{
return eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|order|by|and 1\=|union|into|load_file|outfile',$sql_str); // 进行过滤
}
##get数据过滤
function ur($a)
{
$num = count($a);
$key = array_keys($a);
if($num ==1)
{
if(inject_check($a[$key[0]]))
{
dump('你YYD,想干嘛?');
exit;
}
}
if($num ==2)
{
if(inject_check($a[$key[1]]))
{
dump('你YYD,想干嘛?');
exit;
}
}
if($num ==3)
{
if(inject_check($a[$key[2]]))
{
dump('你YYD,想干嘛22?');
exit;
}
}
if($num ==4)
{
if(inject_check($a[$key[3]]))
{
dump('你YYD,想干嘛33?');
exit;
}
}
}
##post多表单过滤
function check_All($a)
{
// return $a;
if (!get_magic_quotes_gpc()) // 判断magic_quotes_gpc是否为打开
{
$array = addslashes($a); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤
}
foreach ($a as $k=>$value)
{
$value = strip_tags($value);
$value= htmlspecialchars($value);
$key[] = $k;
$values[] = $value;
}
$array = array_combine($key,$values);
return $array;
}
##post单表单过滤
function check_One($one)
{
if (!get_magic_quotes_gpc()) // 判断magic_quotes_gpc是否为打开
{
$name = addslashes($name); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤
}
$name = strip_tags($name);
$name= htmlspecialchars($name);
return $name;
}针对注入和过滤,我写了这个东东,请大家指点指点
当然,前提是服务器各项安全配置已经到位了。
{
if (!get_magic_quotes_gpc()) // 判断magic_quotes_gpc是否为打开
{
$name = addslashes($one); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤
}
$name = strip_tags($one);
$name= htmlspecialchars($one);
return $name;
}上面的dump是格式化输出。
不一定, inlcude 还能通过http加载文件呢!