一、SQL注入概念、分类、形成原因
1、SQL注入概念
所谓SQL注入,就是利用现用的应有程序的特性,攻击者通过在Web表单,URL等可输入数据的地方插入(恶意)SQL语句一并原有的SQL语句被代库执行。SQL命令就是前端应用程序和后端数据库之间的接口。
2、SQL注入的危害
> 数据库库敏感信息泄露
> 网页被篡改,挂马
> 数据库被恶意操作
> 服务器被远程控制,被安装后门
.......
3、SQL注入常见分类
(1)按数据类型
> 数字形
> 字符型
(2)按返回结果
> 显错注入
> 盲注(Boolean/Time-Based Blind)
4、SQL注入形成
> 数据与代码未严格分离
> 用户提交的参数数据未做充分的检查过滤即被带入到SQL命令中,改变了原有SQL命令的语义,且成功被数据库执行。
5、SQL注入过程
6、SQL注入在渗透测试过程中的作用
> 绕过登录验证:使用万能密码登录网站后台等
> 获取敏感数据:获取网站管理员账号密码等
> 文件系统操作:列目录,读取,写入文件等
> 注册表操作:读取,写入,删除注册表等
> 执行系统命令:远程执行命令
二、SQL注入常见利用方式、寻找方式、判断依据
1、SQL注入漏洞频繁出现位置
2、SQL注入漏洞如何寻找
(1) 使用工具
> 优点:自动化,范围广,效率高
> 缺点:误报,漏报,测试方法有限。
(2) 手工测试
> 优点:测试方法灵活
> 缺点:效率低,范围窄,因测试者水平而已
3、SQL注入漏洞判断依据
(1) 常用工具
Safe3wvs ,BurpSuite,AppScan,AWVS,
(2) 判断依据
4、常见SQL测试语句和技巧
(1) 常用语句
(2) 注释字符
三、SQLSverver数据库注入实例演示
1、SQLServer注入常见测试语句
2、SQLServer手工注入实例演示
构造 SQL注入语句,
发现返回结果符合预期,说明存在SQL注入漏洞
验证是否为sqlserver数据库
返回正常界面,说明是sqlserver数据库