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

来源:互联网 发布:nginx 开机自启动 编辑:程序博客网 时间:2024/05/08 11:06
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

2.3典型的SQL注入攻击的

//w*((/')|(/’))((/o)|o|(/O))((/r)|r|(/R))/ix 

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

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

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

/((/')|(/’))union/ix

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

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

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

2.5检测MSSQLServerSQL注入攻击的正则表达式

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

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

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

当发动CSS攻击或检测一个漏洞的时候,攻击者可能首先使简单的标签如<b>(粗体),<i>(斜体)或<u>(下划线),或者他可能尝试简单的script标签如<script>alert("OK")</script>.因为大多数出版物和网络传播的检测网站是否有css漏洞都拿这个作为例子。这些尝试都可以很简单的被检测出来。然而,高明点的攻击者可能用它的hex值替换整个字符串。这样<script>标签会以

1

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>