如何检测SQL注入技术以及跨站脚本攻击(2)

 
如何检测SQL注入技术以及跨站脚本攻击(2)
2016-09-27 01:14:22 /故事大全

解释:

这个规则首先留意=号或它的hex值(%3D),然后考虑零个或多个除换行符以外的任意字符,最后检测单引号,双重破折号或分号。

典型的SQL注入会尝试围绕单引号的用途操作原来的查询,以便得到有用的价值。讨论这个攻击一般使用1’or’1’=’1字符串.但是,这个串的侦查很容易被逃避,譬如用1’or2>1--.然而唯一恒定的部分是最初的字符的值,跟随一单引号,再加’or’。随后的布尔逻辑可能在一定范围上变化,可以是普通样式也可能是非常复杂的。这些攻击可以相当精确被侦测,通过以下的正则表达式。2.3章节讲解。

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

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

解释:

w*-零个或多个字符或者下划线。

(%27)|’-单引号或它的hex等值。

(%6F)|o|(%4F))((%72)|r|-(%52)-‘or’的大小写以及它的hex等值。

’union’SQL查询在SQL注入各种数据库中攻击中同样是很常见的。如果前面的正则表达式仅仅检测单引号或则其他的 SQLmetacharacters,会造成很多的错误存在。你应该进一步修改查询,检测单引号和关键字‘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注入漏洞,他将尝试利用它。如果他认识到后端服务器式MSSQLserver,他一般会尝试运行一些危险的储存和扩展储存过程。这些过程一般以‘sp’或‘xp’字母开头。典型的,他可能尝试运行‘xp_cmdshell’扩展储存过程(通过 SQLServer执行Windows命令)。SQL服务器的SA权限有执行这些命令的权限。同样他们可以通过 xp_regread,xp_regwrite等储存过程修改注册表。

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

/exec(s|+)+(s|x)pw+/ix

解释:

exec-请求执行储存或扩展储存过程的关键字

(s|+)+-一个或多个的空白或它们的http等值编码

(s|x)p-‘sp’或‘xp’字母用来辨认储存或扩展储存过程

w+-一个或多个字符或下划线来匹配过程的名称

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

当发动CSS攻击或检测一个网站漏洞的时候,攻击者可能首先使简单的HTML标签如(粗体),(斜体)或(下划线),或者他可能尝试简单的script 标签如alert("OK").因为大多数出版物和网络传播的检测网站是否有css漏洞都拿这个作为例子。这些尝试都可以很简单的被检测出来。然而,高明点的攻击者可能用它的hex值替换整个字符串。这样标签会以%3C%73%63%72%69%70%74%3E出现。另一方面,攻击者可能使用web代理服务器像Achilles会自动转换一些特殊字符如换成%3E.这样攻击发生时,URL中通常以hex等值代替角括号。

下列正则表达式将检测任何文本中包含的html的。它将捉住试图使用、、或。这正则表达式应该忽略大小写。我们需要同时检测角括号和它的hex等值(%3C|

3.1一般CSS攻击的正则表达式

/((%3C)|)/ix

解释:

((%3C)|)-检查>或它的hex等值

Snort规则:

alerttcp$EXTERNAL_NETany->$HTTP_SERVERS$HTTP_PORTS(msg:"NIICross-sitescriptingattempt";flow:to_server,established;pcre:"/((%3C)|)/i";classtype:Web-application-attack;sid:9000;rev:5;)

跨站脚本同样可以使用技术。现行默认的snort规则可以被轻易避开。

3.2章节提供了防止这种技术的方法。

3.2"

/((%3C)|)/I

解释:

(%3C)|)->或它的hex等值

3.3CSS攻击的极端的正则表达式

/((%3C)|)/I

解释:

这个规则简单寻找。由于你的web服务器和web应用程序的构架,这个规则可能产生一些错误。但它能保证捉住任何CCS或者类似CSS的攻击。

一个不错避开过滤的CSS方法请参考Bugtraq投稿的

//wsw.securityfocus.com/archive/1/272...rchive/1/272037.

但是请注意最后一种极端的规则将能检测这所有的攻击。

总结:

在这篇文章中,我们提出了不同种类的正则表达式规则来检测SQL注入和跨站脚本攻击。有些规则简单而极端,一个潜在的攻击都将提高警惕。但这些极端的规则可能导致一些主动的错误。考虑到这点,我们修改了这些简单的规则,利用了另外的样式,他们可以检查的更准确些。在这些网络应用成的攻击检测中,我们推荐将这些作为调试你IDS或日志分析方法的起点。再经过几次修改后,在你对正常网交易部分的非恶意应答进行评估以后,你应该可以准备的检测那些攻击了。

所属专题:
如果您觉得本文或图片不错,请把它分享给您的朋友吧!

 
搜索
 
 
广告
 
 
广告
 
故事大全
 
版权所有- © 2012-2026 · 故事大全 SITEMAP站点地图 Power by Foton Truck手机看故事 站点地图 Power by flip clock online