当前位置:Gxlcms > mysql > SQL注入技术和跨站脚本攻击的检测(2)_MySQL

SQL注入技术和跨站脚本攻击的检测(2)_MySQL

时间:2021-07-01 10:21:17 帮助过:16人阅读

2.3 典型的 SQL 注入攻击的正则表达式

//w*((/%27)|(/’))((/%6F)|o|(/%4F))((/%72)|r|(/%52))/ix

解释:
/w* - 零个或多个字符或者下划线。
(/%27)|/’ - 单引号或它的hex等值。
(/%6 F)|o|(/%4 F))((/%72)|r|-(/%52) -‘or’的大小写以及它的hex等值。

union’SQL 查询在SQL注入各种数据库中攻击中同样是很常见的。如果前面的正则表达式仅仅检测单引号或则其他的SQL meta characters ,会造成很多的错误存在。你应该进一步修改查询,检测单引号和关键字‘union’。这同样可以进一步扩展其他的SQL关键字,像’select’, ’insert’, ’update’, ’delete’, 等等。

2.4 检测SQL注入,UNION查询关键字的正则表达式

/((/%27)|(/’))union/ix

(/%27)|(/’) - 单引号和它的hex等值
union - union关键字

可以同样为其他SQL查询定制表达式,如 >select, insert, update, delete, drop, 等等.

如果,到这个阶段,攻击者已经发现web应用程序存在SQL注入漏洞,他将尝试利用它。如果他认识到后端服务器式MS SQL server,他一般会尝试运行一些危险的储存和扩展储存过程。这些过程一般以‘sp’或‘xp’字母开头。典型的,他可能尝试运行 ‘xp_cmdshell’扩展储存过程(通过SQL Server执行Windows 命令)。SQL服务器的SA权限有执行这些命令的权限。同样他们可以通过xp_regread, xp_regwrite等储存过程修改注册表。

2.5 检测MS SQL Server SQL注入攻击的正则表达式

/exec(/s|/+)+(s|x)p/w+/ix

解释:
exec - 请求执行储存或扩展储存过程的关键字
(/s|/+)+ - 一个或多个的空白或它们的http等值编码
(s|x) p- ‘sp’或‘xp’字母用来辨认储存或扩展储存过程
/w+ - 一个或多个字符或下划线来匹配过程的名称

3. 跨站脚本(CSS)的正则表达式

当发动CSS攻击或检测一个网站漏洞的时候, 攻击者可能首先使简单的HTML标签如(粗体),(斜体)或(下划线),或者他可能尝试简单的 script标签如