SQL注入攻击的网络分析

SQL注入攻击其实是由于数据库的一个由来已久的安全漏洞,是每一个web程序开发人员,无论什么平台,技术,或数据层,都需要了解和防范的东西。但是不幸的是,WEB开发人员往往不愿意花时间了解他们编程的应用程序是否容易遭攻击。

Michael Sutton迈克尔·萨顿最近发表的一个非常发人深省的文章,网上关于这个问题多少公众一般。他使用谷歌的搜索API构建一个c#客户端程序,寻找这些网站容易受到SQL注入攻击。这是一个简单的步骤:

1、找到网站的查询字符串(例如,查询URL的URL)和” id = “

2,给这些来确定动态网站发送一个请求更改id =语句,单引号,一个额外的尝试取消的SQL语句(例如,如id = 6”)

3、分析返回的响应,在搜索如“SQL”和“查询”这个词,人们常说应用程序返回到详细的错误消息(这本身是非常糟糕的)

4说,检查是否错误消息被发送到SQL server参数不是正确超重(编码),如果是这样,那么对SQL注入攻击的网站说

通过谷歌搜索找到随机抽样,1000个网站测试,他发现11.3%的人容易受到SQL注入攻击的可能性。这是非常可怕的。这意味着黑客可以利用应用程序中的数据,远程访问任何散列加密密码或信用卡数据,甚至有可能作为管理员登录到应用程序。这不仅对于开发web站点开发人员来说是非常糟糕的,更糟糕的是对消费者或用户使用网站,因为他们给网站提供数据,考虑网站是安全的?

那么到底是谁SQL注入攻击?

有几种情况下使SQL注入攻击成为可能。最常见的原因是,你动态构造的SQL语句,但是没有使用正确添加代码(编码)参数。例如,考虑SQL查询编码、基于社会保险号码的目的提供的查询字符串(社会安全号码)查询作者(作者):

昏暗的SSN作为字符串

昏暗的这是一个字符串

SSN =请求。查询字符串(SSN)

这= “选择au_lname,不同从作者au_id = + SSN +“”

如果你有这样的SQL代码片段,然后整个数据库和应用程序远程攻击。那是怎么发生的?在正常情况下,用户将使用一个社会保障号码访问网站,执行编码如下:

对页面的URL包含上面的代码

http://mysite.com/listauthordetails.aspx?SSN = 172-32-9999

对数据库执行SQL查询

选择au_lname,不同作者au_id =‘172-32-9999’

有预期的实践,开发人员通过查询数据库信息的社会安全号码的作者。而是因为正确参数值不超重,黑客可以很容易地修改查询字符串值,嵌入在SQL语句执行额外的价值。例如,

对页面的URL包含上面的代码

http://mysite.com/listauthordetails.aspx?SSN = 172-32-9999 ‘;数据库酒吧——下降

对数据库执行SQL查询

选择au_lname,不同作者在au_id =“;减少数据库酒吧—

注意:不,你可以添加一个“背后的SSN查询字符串值;减少数据库酒吧——”,通过“;”字符终止当前的SQL语句,然后添加自己的恶意SQL语句,然后把其余的语句被注释掉了”——“字符串。因为SQL语句是手工的代码结构,最后将字符串传递给数据库,数据库将查询作者表,然后把我们的酒吧数据库删除。1“爆炸,爆炸”,数据库不是!

可能你觉得匿名黑客删除数据库的结果非常糟糕,但是,不幸的是,这在SQL注入攻击所涉及的情况更好。黑客可以不仅破坏数据,而是使用是弱点在上面的代码中,执行JOIN语句,数据库中所有数据,你显示在页面上,让他们得到的用户名,密码,信用卡号等。他们还可以添加更新/插入语句改变产品的价格,添加新的管理员帐户,真的搞砸你的(搞砸了你的生活?想象到月底,检查库存,发现实际产品的数量在你的仓库和会计系统(会计系统)报告的数量不同。




顶部