浅析SQL注入PPT课件.ppt
《浅析SQL注入PPT课件.ppt》由会员分享,可在线阅读,更多相关《浅析SQL注入PPT课件.ppt(14页珍藏版)》请在三一文库上搜索。
1、浅析浅析浅析浅析SqlSql注入注入注入注入(SqlSql Injection Injection)什么是什么是Sql注入注入 随着随着B/S模式应用开发的发展,使用这模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,序员在编写代码的时候,没有对用户输入数没有对用户输入数据的合法性进行判断据的合法性进行判断,使应用程序存在安全,使应用程序存在安全隐患。隐患。用户可以提交一
2、段数据库查询代码,根用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据程序返回的结果,获得某些他想得知的数据,这就是所谓的据,这就是所谓的SQL Injection,即,即SQL注注入。入。2SQL注入是从正常的注入是从正常的WWW端口访问,而且表面看起来跟一般的端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看注入发出警报,如果管理员没查看IIS(Web服务器)日志的习惯,服务器)日志的习惯,可能被入侵很长时间都不会发觉。可能被入侵很长时间都不会发觉
3、但是,但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,语句,从而成功获取想要的数据,是高手与从而成功获取想要的数据,是高手与“菜鸟菜鸟”的根本区别。的根本区别。为什么会用为什么会用Sql注入注入31.没有使用没有使用PreparedStatement对象的对象的setString()等方法进行传参,等方法进行传参,而是使用的而是使用的“拼串拼串”方式。方式。例如:例如:Sql注入是怎样产生的注入是怎样产生的(Java Web)publ
4、ic public foodBeanfoodBean getFoodById(StringgetFoodById(String id)id)con=con=this.getConthis.getCon();();String String sqlsql=select*from=select*from foodinfofoodinfo where where foodIdfoodId=+id+;=+id+;System.out.println(sqlSystem.out.println(sql););stmt=stmt=con.prepareStatement(sqlcon.prepareSta
5、tement(sql););rsrs=stmt.executeQuerystmt.executeQuery();();2.导致非法参数传入,构造成非法的导致非法参数传入,构造成非法的sql语句!语句!例如在此处给例如在此处给id传入值为传入值为“20;(任意任意sql语句语句);-”,构造成构造成 select*from select*from foodinfofoodinfo where where foodIdfoodId=20 20 ;(;(任意任意sqlsql语语句句);-);-4怎样进行怎样进行Sql注入注入(Java Web)如何测试是否存在如何测试是否存在Sql注入(一)注入(一
6、示例:示例:如如 http:/localhost:8080/restrantNew/details.jsp?foodID=021.在此在此URL尾处加上单引符号尾处加上单引符号“”2.最终执行的最终执行的sql语句则是语句则是 select*from select*from foodinfofoodinfo where where foodIdfoodId=2020 3.3.页面出现错误,因为语句中出现未闭合的单引号。页面出现错误,因为语句中出现未闭合的单引号。结论:结论:加单引号加单引号和和不加此单引号不加此单引号返回显示的页面不相同,可判断为返回显示的页面不相同,可判断为此处存在此处存在
7、SqlSql注入漏洞!注入漏洞!5怎样进行怎样进行Sql注入注入(Java Web)如何测试是否存在如何测试是否存在Sql注入(二)注入(二)有些程序中简单的过滤掉了单引号,如果你用单引号测试,是测不到注入点的有些程序中简单的过滤掉了单引号,如果你用单引号测试,是测不到注入点的 那么,什么样的测试方法才是比较准确呢?答案如下:那么,什么样的测试方法才是比较准确呢?答案如下:http:/localhost:8080/restrantNew/details.jsp?foodID=02http:/localhost:8080/restrantNew/details.jsp?foodID=02 and
8、 1=1 and 1=1 http:/localhost:8080/restrantNew/details.jsp?foodID=02http:/localhost:8080/restrantNew/details.jsp?foodID=02 and 1=2 and 1=2 这就是经典的这就是经典的1=1、1=2测试法了,怎么判断呢?测试法了,怎么判断呢?返回正常页面,返回正常页面,出现错误,则出现错误,则此处存在此处存在SqlSql注入漏洞!注入漏洞!6怎样进行怎样进行Sql注入注入(Java Web)SQL注入的一般步骤注入的一般步骤(一)(一)1.判断环境,寻找注入点,判断数据库类型判断
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浅析 SQL 注入 PPT 课件
