【安全测试】sql注入

SQL注入攻击是黑客对 数据库 进行攻击的常用手段之一,随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员越来越多,但是由于程序员水平及经验页参差不齐,相当大部分程序员在编写代码的时候没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的WEB页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相仿灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据。

一般出现在web或者任何有输入框的地方。

1988年《Phrack》第54期一篇文章“NT Web Technology Vulnerabilities”第一次提到SQL注入

注入的本质:把用户输入的数据当作代码执行

SQL 注入(SQL Injection):就是通过将恶意的SQL指令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL指令。

一、SQL注入的危害

非法读取 篡改 添加 删除数据库中的数据(脱裤)

盗取用户各类敏感信息,获取利益

私自添加删除账号

上传木马后门

二、sql注入类型

按有无错误回显信息来分类

1.有回显注入

会将数据库内的错误点暴露出来

2.盲注   SQL InjectionBlind

内建报错信息可以帮助开发人员发现和修复问题

内建报错信息有大量关于系统的信息

不显示数据库内建的报错信息,使用通用的报错信息

三、SQL注入的方法

1、自动进行SQL注入神器——sqlmap

2、手工注入

eg. 可以对某些普通网址进行检测  也可以 直接 到 DVWA 网站进行检测

①判断是否有注入点

基于报错的检测

基于布尔的检测

基于时间的检测

基于UNION联合查询的检测

基于堆叠查询的检测

在文本框内

我们在浏览一个网站时经常看到url地址栏里出现类似这样的情况:http://www.xxx.com/product.asp?id=12 ,这就是一个典型的get型asp动态网站。

那么如果我们在看到这类网站时,第一反应就应该是看看有没有注入,可以使用烂大街的【后面加单引号’】【and 1=1】这些来进行测试。

猜你喜欢

转载自www.cnblogs.com/chenxiaomeng/p/9109213.html