切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
php过滤get和post的注入函数,记录攻击日志[复制链接]
发表于 2014-7-3 10:47:42 | 显示全部楼层 |!read_mode!
function StopAttack($StrFiltKey,$StrFiltValue,$ArrFiltReq){
	if(is_array($StrFiltValue))
	{
	    $StrFiltValue=implode($StrFiltValue);
	}  
	if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue)==1){   
	        slog("<br><br>操作IP: ".$_SERVER["REMOTE_ADDR"]."<br>操作时间: ".strftime("%Y-%m-%d %H:%M:%S")."<br>操作页面:".$_SERVER["PHP_SELF"]."<br>提交方式: ".$_SERVER["REQUEST_METHOD"]."<br>提交参数: ".$StrFiltKey."<br>提交数据: ".$StrFiltValue);
	        print "360websec notice:Illegal operation!";
	        exit();
	}      
} 
function slog($logs)
{
  $toppath=$_SERVER["DOCUMENT_ROOT"]."/log.htm";
  $Ts=fopen($toppath,"a+");
  fputs($Ts,$logs."\r\n");
  fclose($Ts);
}
function get($varname,$handle){
	$value = $_GET[$varname];
	switch ($handle) {
		case 'sql':
			$getfilter="'|(and|or)\\b.+?(>|<|=|in|like)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
			StopAttack($varname,$value,$getfilter);
			break;
		case 'html':
			$value = trim(strip_tags($value));
			break;
		default:
			$value =$value;
			break;
	}
	return $value;
}
function post($varname,$handle){
	$value = $_POST[$varname];
	switch ($handle) {
		case 'sql':
			$postfilter="\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
			StopAttack($varname,$value,$postfilter);
			break;
		case 'html':
			$value = trim(strip_tags($value));
			break;
		default:
			$value =$value;
			break;
	}
	return $value;
}


前段时间公司开发用到的,自己的水平有限,这些过滤代码是参考360给出的,然后在360的基础上进行了修改以适用自己公司。

主要功能,就是通过自定义的 get 和post函数 来代替$_GET和$_POST来取值,并且加入了第二个参数,参数为2种,html,sql,如果是sql就执行过滤sql注入,如果是html就过滤html标签

然后 返回过滤后的值。
发表于 2014-7-3 10:54:31 | 显示全部楼层
求 审核 恢复身份:[url =http://codesec.net/thread-2638-1-1.html]http://codesec.net/thread-2638-1-1.html[/url]
发表于 2014-7-3 11:08:54 | 显示全部楼层
后台也是这样过滤的吗?你们公司的后台没有用到富文本编辑器么?
发表于 2014-7-3 11:32:57 | 显示全部楼层
店小二01 发表于 2014-7-3 11:08
后台也是这样过滤的吗?你们公司的后台没有用到富文本编辑器么?

后台 自己添加的地方 不过滤,要不估计自己添加的东西就要被拦截了,

主要过滤前台 input 和textarea 的post提交数据 和 网址传参数的get传递的数据
发表于 2014-7-4 09:08:50 | 显示全部楼层
这是要闹哪样啊…………
发表于 2014-7-5 17:31:55 | 显示全部楼层
感觉不错呦,php靠的是逻辑思维
发表于 2014-7-5 19:48:27 | 显示全部楼层
函数可以对后台路径等加白名单,不进行处理
发表于 2014-7-5 22:25:45 | 显示全部楼层
表示$postfilter="\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";  
这个正则表达式看得有点晕乎了。。
发表于 2014-7-7 08:49:05 | 显示全部楼层
不错 赞个,不过对url的参数判断依靠正则规则,是不是目前就只有这种方式过滤??
发表于 2014-7-7 23:36:31 | 显示全部楼层
正则好牛逼,mark下,回头明天看看

代码区

GMT+8, 2019-11-15 16:36

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部