生活总是需要一点新的色彩,最近看Mysql基于数据类型溢出的报错注入,又重新燃起了我以前对SQLi的激情。感觉自己还是很喜欢这个东西的。发现凡是 能和“绕过”有关系的(想了想,还真不包括那些硬件DEP ASLR啥的哈,脑子不够用 那个真爱不起)东西我都很喜欢,而且欲罢不能。所以找回来了之前绕过360webscan时的那个文件,看看防注入是否也能绕过(当然,这个已经被@phith0n利用$_SERVER[‘PHP_SELF’]那块的缺陷绕过了一次 ,我这个是另外一个故事).下面是这个兼备了防注入和防XSS功能的防御文件的正则部分:
//拦截get
$getfilter = "\\b(alert\\(|confirm\\(|prompt\\()\\b|]*?\\b(onerror|onmousemove|onload|onclick|onmouseover)\\b[^>]*?>|^\\+\\/v(8|9)|\\b(and|or)\\b\\s*?([\\(\\)'\"\\d]+?=[\\(\\)'\"\\d]+?|[\\(\\)'\"a-zA-Z]+?=[\\(\\)'\"a-zA-Z]+?|>|
//拦截POST
$postfilter = "\\b(alert\\(|confirm\\(|prompt\\()\\b|]*?\\b(onerror|onmousemove|onload|onclick|onmouseover)\\b[^>]*?>|\\b(and|or)\\b\\s*?([\\(\\)'\"\\d]+?=[\\(\\)'\"\\d]+?|[\\(\\)'\"a-zA-Z]+?=[\\(\\)'\"a-zA