时间:2015-1-21 作者:admin 分类: 技术交流
cmseasy使用的是360webscan,下载最新版本20141015,其中360webscan防御的正则为
\\<.+javascript:window\\[.{1}\\\\x|<.*=(&#\\d+?;?)+?>|<.*(data|src)=data:text\\/html.*>|\\b(alert\\(|confirm\\(|expression\\(|prompt\\(|benchmark\s*?\(.*\)|sleep\s*?\(.*\)|load_file\s*?\\()|<[a-z]+?\\b[^>]*?\\bon([a-z]{4,})\s*?=|^\\+\\/v(8|9)|\\b(and|or)\\b\\s*?([\\(\\)'\"\\d]+?=[\\(\\)'\"\\d]+?|[\\(\\)'\"a-zA-Z]+?=[\\(\\)'\"a-zA-Z]+?|>|<|\s+?[\\w]+?\\s+?\\bin\\b\\s*?\(|\\blike\\b\\s+?[\"'])|\\/\\*.*\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT@{0,2}(\\(.+\\)|\\s+?.+?|(`|'|\").*?(`|'|\"))|UPDATE@{0,2}(\\(.+\\)|\\s+?.+?|(`|'|\").*?(`|'|\"))SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE)@{0,2}(\\(.+\\)|\\s+?.+?\\s+?|(`|'|\").*?(`|'|\"))FROM(\\(.+\\)|\\s+?.+?|(`|'|\").*?(`|'|\"))|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)|\\/\\*.*?\\*\\/|'
我们看关键部分,第一部分是union部分UNION.+?SELECT@{0,2}(\\(.+\\)|\\s+?.+?|(`|'|\").*?(`|'|\"))
此部分关键的是\s+?这里的意思是非贪婪的匹配1个或多个空白,注意mysql中的%a0哦,貌似输入在这会有效果
第二部分是select部分的
(SELECT|DELETE)@{0,2}(\\(.+\\)|\\s+?.+?\\s+?
同样注意这里的\s+?,原理同上
6:我们在浏览器中输入
http://192.168.4.70/cmseasy/uploads/index.php?id=1 union select 1 from table
查看结果如下:
7:我将%a0放置在select和from的后面
标签: 绕过 360webscan