下载此文档

第4章+sql注入攻击.ppt


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
注入攻击:OWASP 2013 Top 1
A1
注入
Injection Flaws
如果Web应用没有对攻击者的输入进行适当的编码和过滤,就用于构造数据库查询或操作系统命令时,可能导致注入漏洞。
攻击者可利用注入漏洞诱使Web应用执行未预见的命令(即命令注入攻击)或数据库查询(即SQL注入攻击)。
搜索用户。
目标:借Web应用的”刀“来攻击服务器数据库或操作系统
SQL Injection:字符串参数
/
管理员
管理员
程序员考虑的场景:
Username: admin
Password: p@$$w0rd
SELECT COUNT(*)
FROM Users
WHERE username='admin' and password='p@$$w0rd'
登录成功!
程序员未预料到的结果……
Username: admin' OR 1=1 --
Password: 1
SELECT COUNT(*)
FROM Users
WHERE username='admin' OR 1=1 -- 'and password='1'
SQL Injection :字符串参数
/
攻击者
登录成功!
学员练****br/>3Min
‘是SQL字符串变量的定界符
攻击关键
通过定界符成功地将攻击者的意图注入到SQL语句中!
通过注释保证SQL语句正确!
--是MS SQL的注释符
SQL Injection:字符型注入
字符型例句如下:
select * from table where username=‘admin’ and password=‘password’
字符型注入最关键的是如何闭合sql语句以及注释多余的代码。
例:输入:admin or 1=1,则无法进行注入。因为admin or 1=1会被数据库当作查询的字符串,SQL语句如下:
select * from table where username=‘admin or 1=1’ and password=‘password’
这时要想进行注入则必须注意字符串的闭合问题。如果输入admin‘ or 1=1--,就可以继续注入,SQL语句如下:
select * from table where username=‘admin’ or 1=1--’ and password=‘password’
SQL Injection可能影响的系统
几乎所有的关系数据库系统和相应的SQL语言都面临SQL注入的潜在威胁
MS SQL Server
Oracle
MySQL
MS Access
Postgres, DB2, Sybase, Informix, 等等
各种后台语言/系统进行数据库访问的方式
ASP, JSP, PHP
访问后台数据库的Perl和CGI脚本
XML, XSL 和XSQL
VB, MFC, 以及其他基于ODBC的工具和API
等等
SQL Injection:数字参数
管理员
程序员考虑的场景:
age: 20
SELECT name, age, location
FROM Users
WHERE age>20
程序员未预料到的结果……
age: 1000000 union select name, age, password from users
SELECT name, age, location
FROM Users
WHERE age>999 union select name, age, password from users
Fact:
大多数程序员都注意到了’的问题,他们用’’来代替用户输入的’,从而防止字符串SQL注入;
但很多人缺忽略了同样严重的数字注入问题。其防范方法是检查用户输入的数字是否合法。
Union暴库是常见的注入方法
Union语法要求前后两句SQL中Select的数据项类型和数量一致;这两句sql都符合string,int,string的模式
>999是不可能符合的条件,这样union的结果就只剩第二句sql查询的内容
SQL Injection:数字参数
什么叫单引号注入
通过在动态URL(如 asp?id= php?id=)的传递参数的值后面添加一个特殊符号,比如单引号,使程序出现错误,比如一条查询语句 select * from table where id=2 ‘这样就会报错,导致泄漏服务器信息,就能从错误的提示判断出你数据库的表的信息,这类漏洞通常是程序没有很好的过滤这些符号导致的。
这个主要是针对数据库进行的攻击,一般是SQL数据库,SQL语言中字符串尽量用变量代替而不要用单引号括住字符串使用,不然可能

第4章+sql注入攻击 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ranfand
  • 文件大小880 KB
  • 时间2017-09-19