SQL注入技术和跨站脚本攻击的检测(2)[MSSQL防范]
本文“SQL注入技术和跨站脚本攻击的检测(2)[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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标签如<b>(粗体),<i>(斜体)或<u>(下划线),大概他大概尝试简单的 script标签如<script>alert("OK")</script>. 因为大大都出版物和网络传达的检测网站能否有css漏洞都拿这个作为例子.这些尝试都可以很简单的被检测出来. 但是,高超点的攻击者大概用它的hex值替换整个字符串.这样<script>标签会以%3C%73%63%72%69%70%74%3E出 现. 另一方面,攻击者大概利用web代理服务器像Achilles会自动转换一些特别字符如<换成%3C、>换成%3E.这样攻击发生时,URL 中普通以hex等值替换角括号.
下列正则表达式将检测任何文本中包含的html的<、>.它将抓住试牟利用< b>、<u>、或<script>.这正则表达式应当忽视大小写.我们需求同时检测角括号和它的hex等值(% 3C|<).检测hex进制转化的整个字符串,我们必须检测用户输入的数字和%号,即便用[a-z0-9%] .这大概会招致一些错误呈现,不是大部份会检测到真实攻击的.
3.1 普通 CSS 攻击的正则表达式
/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/ix
注释:
((\%3C)|<) -查抄<和它hex等值
((\%2F)|\/)*-完毕标签/或它的 hex等值
[a-z0-9\%]+ -查抄标签里的字母或它hex等值
((\%3E)|>) -查抄>或它的hex等值
Snort 法则:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"NII Cross-site scripting attempt"; flow:to_server,established; pcre:"/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/i"; classtype:Web-application-attack; sid:9000; rev:5;)
跨站脚本一样可以利用<img src=>技术.现行默许的snort法则可以被简单避开.
3.2章节供应了避免这种技术的办法.
3.2 "<img src" CSS 攻击正则表达式
/((\%3C)|<)((\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47))[^\n]+((\%3E)|>)/I
注释:
(\%3 C)|<) -<或它的hex等值
(\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47) -’img’字母或它的大小写hex等值的改变组合
[^\n]+ -除了换行符以外的任何跟随<img的字符
(\%3E)|>) ->或它的hex等值
3.3 CSS 攻击的极度的正则表达式
/((\%3C)|<)[^\n]+((\%3E)|>)/I
注释:
这个法则简单探求<+除换行符外的任何字符+>.由于你的Web服务器和web利用程序的构架,这个法则大概产生一些错误.但它能保证抓住任何CCS大概近似CSS的攻击.
总结:
在 这篇文章中,我们提出了差别种类的正则表达式法则来检测SQL注入和跨站脚本攻击.有些法则简单而极度,一个潜在的攻击都将提高鉴戒.但这些极度的法则可 能招致一些主动的错误.考虑到这点,我们改正了这些简单的法则,操纵了别的的款式,他们可以查抄的更精确些.在这些网络利用成的攻击检测中,我们举荐将这 些作为调试你IDS或日记解析办法的起点.再经过几次改正后,在你对正常网交易部份的非恶意应答举行评价今后,你应当可以预备的检测那些攻击了.
参考
1. SQL Injection
http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf
2. Cross Site Scripting FAQ http://www.cgisecurity.com/articles/xss-
faq.shtml
3. The Snort IDS http://www.snort.org
4. Perl-compatible regular expressions (pcre) http://www.pcre.org
5. Web application proxy, Achilles http://achilles.mavensecurity.com
3. Advanced SQL Injection
http://www.nextgenss.com/papers/advanced_sql_injection.pdf
7. Secure Programming HOWTO, David Wheeler www.dwheeler.com
8. Threats and Countermeasures, MSDN, Microsoft
以上是“SQL注入技术和跨站脚本攻击的检测(2)[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |