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

作者&投稿:钭牲 (若有异议请与网页底部的电邮联系)
~ 在最近两年中,安全专家应该对网络应用层的攻击更加重视。因为无论你有多强壮的防火墙规则设置或者非常勤于补漏的修补机制,如果你的网络应用程序开发者没有遵循安全代码进行开发,攻击者将通过80端口进入你的系统。广泛被使用的两个主要攻击技术是SQL注入[ref1]和CSS[ref2]攻击。SQL 注入是指:通过互联网的输入区域,插入SQLmeta-characters(特殊字符代表一些数据)和指令,操纵执行后端的SQL查询的技术。这些攻击主要针对其他组织的WEB服务器。CSS攻击通过在URL里插入script标签,然后诱导信任它们的用户点击它们,确保恶意Javascript代码在受害人的机器上运行。这些攻击利用了用户和服务器之间的信任关系,事实上服务器没有对输入、输出进行检测,从而未拒绝javascript代码。
这篇文章讨论SQL注入和CSS攻击漏洞的检测技术。网上已经有很多关于这两种基于WEB攻击的讨论,比如如何实施攻击,他们的影响,怎样更好的编制和设计程序防止这些攻击。然而,对如何检测这些攻击并没有足够的讨论。我们采用流行的开源的IDSSnort[ref3],组建根据检测这些攻击的规则的正则表达式。附带,Snort默认规则设定包含检测CSS的方法,但是这些容易被避开检测。比如大多通过hex进制编码,如%3C%73%63%72%69 %70%74%3E代替避开检测。
依赖levelofparanoia组织的能力,我们已经编写了多种检测相同攻击的规则。如果你希望检测各种可能的SQL注入攻击,那么你需要简单的留意任何现行的SQLmeta-characters,如单引号,分号和双重破折号。同样的一个极端检测CSS攻击的方法,只要简单地提防HTML标记的角括号。但这样会检测出很多错误。为了避免这些,这些规则需要修改使它检测更精确些,当仍然不能避免错误。
在Snort规则中使用pcre(PerlCompatibleRegularExpressions)[ref4]关键字,每个规则可以带或不带其他规则动作。这些规则也可以被公用软件如grep(文档搜索工具)使用,来审阅网络服务器日志。但是,需要警惕的是,用户的输入只有当以GET提交请求时,WEB服务器才会记录日记,如果是以POST提交的请求在日记中是不会记录的。
2.SQL注入的正则表示式
当你为SQL注入攻击选择正则表示式的时候,重点要记住攻击者可以通过提交表单进行SQL注入,也可以通过Cookie区域。你的输入检测逻辑应该考虑用户组织的各类型输入(比如表单或Cookie信息)。并且如果你发现许多警告来自一个规则,请留意单引号或者是分号,也许些字符是你的Web应用程序创造的合法的在CookieS中的输入。因此,您需要根据你的特殊的WEB应用程序评估每个规则。
依照前面提到,一个琐细的检测SQL射入攻击的正则表达式要留意SQL特殊的meta-characters譬如单引号(’)双重扩则号(--),为了查出这些字符和他们hex等值数,以下正则表达式适用:
2.1检测SQLmeta-characters的正则表达式
/(%27)|(’)|(--)|(%23)|(#)/ix
解释:
我们首先检查单引号等值的hex,单引号本身或者双重扩折号。这些是MSSQLServer或Oracle的字符,表示后边的为评论,随后的都将被忽略。另外,如果你使用MySQL,你需要留意’#’和它等值的hex的出现。注意我们不需要检查双重破折号等值的hex,因为这不是HTMLmeta- character,浏览器不会进行编码。并且,如果攻击者设法手工修改双重破折号为它的hex值%2D(使用代理像 Achilles[ref5]),SQL注入将失败。
加入上述正则表达式的新的Snort规则如下:
alerttcp$EXTERNAL_NETany-$HTTP_SERVERS$HTTP_PORTS(msg:"SQLInjection-Paranoid";flow:to_server,established;uricontent:".pl";pcre:"/(%27)|(’)|(--)|(%23)|(#)/i";classtype:Web-application-attack;sid:9099;rev:5;)
在本篇讨论中,uricontent关键字的值为".pl",因为在我们的测试环境里,CGI程序是用Perl写的。uricontent关键字的值取决于您的特殊应用,这个值也许是".php",或".asp",或".jsp",等。从这点考虑,我们不显示对应的Snort规则,但是我们会给出创造这些规则的正则表达式。通过这些正则表达式你可以很简单的创造很多的Snort规则.在前面的正则表达式里,我们检测双重破折号是因为:即便没有单引号的存在那里也可能是SQL射入点[ref6]。例如,SQL查询条目只包含数值,如下:
selectvalue1,value2,num_value3fromdatabase
wherenum_value3=some_user_supplied_number
这种情况,攻击者可以执行额外的SQL查询,示范提交如下输入:
3;insertvaluesintosome_other_table
最后,pcre的修饰符’i’和’x’是用于分别匹配大小写和忽略空白处的。上面的规则也可以另外扩展来检查分号的存在。然而,分号很可以是正常HTTP应答的一部分。为了减少这种错误,也是为了任何正常的单引号和双重扩折号的出
现,上面的规则应该被修改成先检测=号的存。用户输入会响应一个GET或POST请求,一般输入提交如下:
username=some_user_supplied_valuepassword=some_user_supplied_value
因此,SQL注入尝试将导致用户的输入出现在a=号或它等效的hex值之后。
2.2修正检测SQLmeta-characters的正则表达式
/((%3D)|(=))[^n]*((%27)|(’)|(--)|(%3B)|(:))/i


sql注入攻击的基本步骤
1. 探测和发现SQL注入点。2. 构建并发送恶意SQL查询。3. 获取数据库敏感信息或执行恶意操作。详细解释:1. 探测和发现SQL注入点 攻击者首先会尝试确定网站哪些输入点可能存在SQL注入漏洞。他们可能会通过输入一些特殊的字符或字符串来测试网页的反应,这些特殊字符可能包括引号、分号等,用以观察服务器返回...

如何判断是否存在SQL注入以及注入类型?
POST注入操作介绍:1.POST注入一般发生在表单数据传输时、抓取POST提交的数据进行SQL语句测试POST注入操作流程:比如抓取的POST数据为:userName=admin&password=admin测试诸如语句填写:userName=admin&password='admin 1=1--像这样userName 参数后面加一些SQL语句(注入测试语句)进行POST数据注入测试即可。

如何检测SQL注入技术以及跨站脚本攻击
2. SQL注入的正则表示式 当你为SQL注入攻击选择正则表示式的时候,重点要记住攻击者可以通过提交表单进行SQL注入,也可以通过Cookie区域。你的输入检测逻辑应该考虑用户 组织的各类型输入(比如表单或Cookie信息)。并且如果你发现许多警告来自一个规则,请留意单引号或者是分号,也许些字符是你的Web应用程序创造的 合法的在...

如何防范SQL注入漏洞及检测
确保应用程序要检查以下字符:分号、等号、破折号、括号以及SQL关键字。另外限制表单数据输入和查询字符串输入的长度也是一个好方法。如果用户的登录名最多只有10个字符,那么不要认可表单中输入10个以上的字符,这将大大增加攻击者在SQL命令中插入有害代码的难度。(2)封装数据信息。对客户端提交的数据进行...

怎么检测sql server注入漏洞
防御SQL注入有妙法 第一步:很多新手从网上下载SQL通用防注入系统的程序,在需要防范注入的页面头部用来防止别人进行手动注入测试。可是如果通过SQL注入分析器就可轻松跳过防注入系统并自动分析其注入点。然后只需要几分钟,你的管理员账号及密码就会被分析出来。第二步:对于注入分析器的防范,通过实验,发现了...

防御sql注入的方法有哪几种
如删除数据表等。而Web应用防火墙则可以检测和拦截恶意的SQL注入攻击,从而保护Web应用的安全。总的来说,防御SQL注入需要我们从多个方面入手,包括改进代码编写习惯、提高数据库的安全性、对用户输入进行严格的验证和处理等。只有这样,我们才能有效地防止SQL注入攻击,保护我们的数据安全。

sql注入漏洞有哪些
“1=1和1=2”法 “加引号”法很直接,也很简单,但是对SQL注入有一定了解的程序员在编写程序时,都会将单引号过滤掉。如果再使用单引号测试,无法检测到注入点了。这时,可以使用经典的“1=1和1=2”法进行检测。如果正常页面链接地址为:http:\/\/www.xxx.com\/xxx.asp? id=YY,在浏览器中分别...

sql注入漏洞检测引言怎么写?
SQL注入漏洞是一种常见的网络安全漏洞,它可以允许攻击者通过构造恶意的SQL语句来绕过应用程序的身份验证和授权机制,从而获取敏感数据或者对系统进行进一步的攻击。SQL注入攻击是一种常见的攻击方式,它可以影响到各种类型的应用程序,包括Web应用程序、数据库应用程序等。为了保障应用程序的安全性,检测SQL注入...

什么是SQL注入,如何防止SQL注入?
应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装\\x0d\\x0a6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。

如何检测sql注入
不要拼接SQL语句,即防止传入参数问题,举例:select * from a where password = ' 变量 ';假如传入的变量是: ' or 1=1 or 1=',那么最后这个语句就是:select * from a where password = '' ' or 1=1 or 1='';你说会得到什么结果 如果你使用ADO,则尽量使用parameter方式传入...

东方市13954919363: 如何检测SQL注入技术以及跨站脚本攻击 -
罗饼排毒: 有遵循 安全代码进行开发,攻击者将通过80端口进入你的系统.广泛被使用的两个主要攻击技术是SQL注入[ref1]和CSS[ref2]攻击.SQL注入是 指:通过互联网的输入区域,插入SQL meta-characters(特殊字符

东方市13954919363: SQL注入漏洞扫描工具有哪些 -
罗饼排毒: WebCruiser Web Vulnerability Scanner是一个功能不凡的Web应用漏洞扫描器,能够对整个网站进行漏洞扫描,并能够对发现的漏洞(SQL注入,跨站脚本)进行验证;它也可以单独进行漏洞验证. 网站爬虫(目录及文件);漏洞扫描(...

东方市13954919363: 如何查自己 的网站代码有没有漏洞 可以用什么工具 -
罗饼排毒: 可以用一些注入工具 啊D 名小子之类的 还有可以用网站安全检测器

东方市13954919363: SQL注入攻击原理和漏洞检测技术 -
罗饼排毒: SQL注入指的是当用户提交给服务器的数据不在程序员的预料范围内时,服务器返回了一些敏感信息.通常这个是参数过滤不严格造成的,是程序员的责任. 举个例子吧 比如有这个页面 http://www.xxx.com/showdetail.asp?id=1 这个地址后有个...

东方市13954919363: 通过对HTTP(S)请求进行检测,识别并阻断SQL注入、跨站脚本攻击...
罗饼排毒: SQL注入的思路 思路最重要.其实好多人都不知道SQL到底能做什么呢?这里总结一下SQL注入入侵的总体的思路: 1. SQL注入漏洞的判断,即寻找注入点 2. 判断后台数据库类型 3. 确定XP_CMDSHELL可执行情况;若当前连接数据的帐号具...

东方市13954919363: SQL注入攻击是指恶意使用者将程序代码(恶意脚本)注入到网... - 上学吧
罗饼排毒: 跨站点脚本(XSS)允许攻击者通过利用因特网服务器的漏洞来发送恶意代码到其他用户.攻击者利用跨站点脚本(XSS)攻击向那些看似可信任的链接中注入恶意代码.当用户点击了链接后,内嵌的程序将被提交并且会在用户的电脑上执行,...

东方市13954919363: 如何扫描论坛漏洞 -
罗饼排毒: Web安全扫描工具WebCruiser - Web Vulnerability Scanner 一个小巧但功能不凡的Web应用漏洞扫描器,能够对整个网站进行漏洞扫描,并能够对发现的漏洞(SQL注入,跨站脚本,XPath注入等)进行验证;它也可以单独进行漏洞验证,作为SQL注入工具、XPath注入工具、跨站检测工具使用.

东方市13954919363: web漏洞要怎么验证 -
罗饼排毒: 要根据网站的具体程序架构 如php+mysql 或asp+acc或aspx+sql2005 根据web的常见的漏洞如 sql注入 跨站脚本攻击 图片上传 逻辑漏洞测试 绕过验证测试等一系列的安全代码审计和渗透测试.有条件的话建议找专门做安全的安全公司来给你做安全渗透和安全评估国内也就Sinesafe和绿盟等安全公司比较专业.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网