基于MySQL的SQL注入攻击的设计与开发.docx
《基于MySQL的SQL注入攻击的设计与开发.docx》由会员分享,可在线阅读,更多相关《基于MySQL的SQL注入攻击的设计与开发.docx(12页珍藏版)》请在第一文库网上搜索。
1、基于 MySQL 的 SQL 注入攻击(SEC-W05-003.1)SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,可能被入侵很长时间管理员都不会发觉。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交段数据库查询代码,根据程序返回的结果,获得某些用户想得知的数据,这就是所谓的SQL Injection,即 SQL注入。实验目的 掌握SQL注入基本手段 了解WEB站点的
2、脆弱性 修复存在SQL注入可能的漏洞实验准备 了解网络常见php+mysql架构应用,如Discuz论坛、PHPBB系统 熟悉简单sql语句的构成 获取服务器IP地址实验步骤PHP注入漏洞知识了解步骤说明:通过实验样例,了解PHP程序注入漏洞的原理,以及SQL注入的简单实现1.PHP程序的运行,需要配合后台数据库数据操作,所以要求程序构建的SQL语句正常执行,事实上简单的SELECT语句就可能存在安全问题,如下两条SQL语句:1) SELECT * FROM article WHERE articleid=,$id,2) SELECT * FROM article WHERE articlei
3、d=$id2 .两种写法在各种程序中都很普遍,但安全性是不同的。注:第1句由于把变量$id放在一对单引号中,这样使得我们所提交的变量都变成了字符串,即使包含了正确的SQL语句也不会正常执行;而第2句不同,由于没有把变量放进单引号中,那我们所提交的一切,只要包含空格,那空格后的变量都会作为SQL语句执行,我们针对两个句子可以分别提交两个成功注入的畸形语句。3 .在第1句中,当变量$id值为:1, and 1=2 union select * from user where userid=l#此时整个SQL语句变为:SELECT * FROM article WHERE articleid=,r
4、and 1=2 union select * from user whereuserid=l#*4.在第2句中,指定变量$11为:1 and 1=2 union select * from user where userid=l此时整个SQL语句变为:SELECT * FROM article WHERE articleid=l and 1=2 union select * from user whereuserid=l5 .由于第1句SQL语句用单引号包含$id,我们必须先闭合前面的单引号,并要注释掉后面原SQL语句中的后面的单引号,这样就能使PHP程序认为SQL合法,从而执行非法的SQL。
5、注:如果php.ini中magic_quotes_gpc设置为on或者变量前使用了 addslashes。函数,我们的攻击就会化为乌有,具体请参考PHP用户手册。6 .第2句没有用引号包含变量,那我们也不用考虑去闭合、注释,这样的代码非常危险,直接提交非法SQL就能运行。SQL注入实例步骤说明:通过分析存在SQL注入漏洞的PHP系统实例,掌握常见SQL注入的基础知识1 .预备知识:相信大家都曾使用过留言本、BBS之类的程序,大部分管理后台都是需要登录才能留言管理的。一般情况下,用户输入了密码,单击登录后,登录页面会把用户输入的密码提交给一个动态网页,这个网页就自动到数据库去查看这个提交.上来的
6、密码跟数据库里的密码是否匹配,如果匹配则登录成功,否则就会提示输入错误。本例中就提供了一个简单的PHP+Mysql的WEB环境,如图1所示:文件但)编辑(X)查看(V)收藏R)工具任)帮助国)I后退。团心户搜索收藏夹 3地址)I劭嬴 美懒幽热Gocigle |G一MYSQL SQL INJECTION TESTUsernamePasswordlogin IClear I司完毕2 .假设我们知道该系统管理员用户名为admin,使用正确的帐户密码登录将会进入以下页而,如图2:3 http:/10. 92. 92. 24/login. php - licrosoft Internet Explore
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MySQL SQL 注入 攻击 设计 开发