版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安安全全测测试试分分享享目前企业安全测试方法安全测试方法静态的代码安全测试动态的渗透测试程序数据扫描常见的软件安全性缺陷和漏洞有哪些?常见的软件安全性缺陷和漏洞有哪些?SQL注入:攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。XSSXSS和它有什么不一样?和它有什么不一样?几种SQL注入的特征1.1 输入中或url参数中加单引号 如http:/ 而后台逻辑在获取到url参数id时,直接拼装sql语句并执行, 此时会导致sql语句出现这种情况:select where id = 12, sql执行时会发生错误,若代码中未对异常显示页面另加处理,
2、 很可能用户就会获知数据库类型等信息。几种SQL注入的特征1.2 输入中增加; and 1 = 1或; and 1 = 2如上例中的url,id参数输入id = 12 and 1 = 1 或者 id = 12 and 1 = 2 这是较常见的1=1, 1=2测试方法,如果程序不可以进行SQL注入,对于一个整型参数,这两类输入一般都会有程序定义的错误提示或者类型转换错误提示,或直接跳转到错误url页面。若可以进行SQL注入,1=1输入与正常输入id=12的显示应无差异,而1=2可能会导致提示无记录,页面显示为空的情况。 几种SQL注入的特征1.3 尝试大小写不同的输入,尝试特殊字符对应ASCII
3、码有些程序中会过滤select等关键词,但是忘记区分大小写,此时可以用selecT等尝试进行注入。或者尝试ASCII码来绕过程序中对特殊字符的过滤,也可以达到测试的目的。 SQL注入利用的是程序过滤不严格,或者某个参数忘记检查所导致的,在做安全测试时需要对引起该漏洞的代码片段有一定认知,能快速准确的发现问题所在。 例子 一个登录模块,让你输入用户名密码。我们一般都会老老实实的输入我们的用户名和密码。但如果我们刻意的去绕过登录认证呢?猜想下面这个SQL语句,单说用户名,开发人员很可能会这样去数据库数据库里对比:Select * from sys_user where username=XXX当然
4、可能更复杂,假如我们在输入框里输入下面一句特殊的字符会如何?or1=1这是段神奇的字符,因为这样这个sql就变成:Select * from sys_user where username=or1=1 这样我们就跳过了用户名的验证,实现了入侵,是不是很简单,看到这里大家不妨动手尝试一下吧。 另外一个查询的例子SELECT * FROM Users WHERE(Username=$username)AND(Password=MD5($password) 在这个例子中,存在两个问题,一个是括号的用法,还有一个是MD5哈希函数的用法。对于第一个问题,我们很容找出缺少的右括号解决,对于第二个问题,我们
5、可以想办法使第二个条件失效。我们在查询语句的最后加上一个注释符以表示后面的都是注释,常见的注释起始符是/*(在Oracle中是-),也就是说,我们用如下的用户名和密码:$username =1 or 1=1)/* $password = foo 那么整条SQL语句就变为: SELECT * FROM Users WHERE( Username=1or 1=1)/*)AND (Password=MD5($password) 那么看看URL请求就变为:http:/ 常见的软件安全性缺陷和漏洞有哪些?常见的软件安全性缺陷和漏洞有哪些?修改提交数据:曾经某公司做过一个关于在线支付的商城,在安全性测试过
6、程中,发现通过抓包抓到的提交价格(如使用火狐插件:live http headers,fiddler),经过修改再发包可以通过。简单来说就是本来100块钱买的东西,抓包修改为1块就能成功购买。常见的软件安全性缺陷和漏洞有哪些?常见的软件安全性缺陷和漏洞有哪些?跨站脚本攻击:XSS又叫CSS,英文缩写为Cross Site Script,中文意思为跨站脚本攻击,具体内容指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。为了和页面样式的CSS做区分,命名为XSS。 XSS漏洞会导致的后果是说让不支持富文本的
7、区域支持了富文本的执行,简单说在编辑内容时,文本部分不支持富文本,但由于对输入没有做处理,导致可以在文本中嵌入变颜色、加粗等HTML代码,当然攻击者可以嵌入恶意javascript,获取cookie等隐私信息。盗取cookie后果很严重啊!假如有下面一个textbox:value后面的值是来自用户的输入,如果用户输入/alert(document.cookie)!-那么就会变成alert(document.cookie)嵌入的JavaScript代码将会被执行或者用户输入的是:onfocus=alert(document.cookie)那么就会变成事件被触发的时候嵌入的JavaScript代码
8、将会被执行。XSS是如何发生的呢?常见的软件安全性缺陷和漏洞有哪些?常见的软件安全性缺陷和漏洞有哪些?缓冲区溢出:缓冲区溢出已成为软件安全的头号公敌,许多实际中的安全问题都与它有关。造成缓冲区溢出问题通常有以下两种原因。设计空间的转换规则的校验问题。即缺乏对可测数据的校验,导致非法数据没有在外部输入层被检查出来并丢弃。非法数据进入接口层和实现层后,由于它超出了接口层和实现层的对应测试空间或设计空间的范围,从而引起溢出。局部测试空间和设计空间不足。当合法数据进入后,由于程序实现层内对应的测试空间或设计空间不足,导致程序处理时出现溢出。常见的软件安全性缺陷和漏洞有哪些?常见的软件安全性缺陷和漏洞有
9、哪些?加密弱点:这几种加密弱点是不安全的: 使用不安全的加密算法。加密算法强度不够,一些加密算法甚至可以用穷举法破解。 加密数据时密码是由伪随机算法产生的,而产生伪随机数的方法存在缺陷,使密码很容易被破解。 身份验证算法存在缺陷。(验证身份方式) 客户机和服务器时钟未同步,给攻击者足够的时间来破解密码或修改数据。(说好的10分钟超时呢!) 未对加密数据进行签名(用对好的口令或者密文进行签名,这样的请求数据我才会觉得是自己人。),导致攻击者可以篡改数据。所以,对于加密进行测试时,必须针对这些可能存在的加密弱点进行测试。 非对称加密常见的软件安全性缺陷和漏洞有哪些?常见的软件安全性缺陷和漏洞有哪些
10、?数据传输安全: 1. 客户端请求动态密钥(DynamicKey),客户端向服务器端请求动态密钥(DKey)。服务器端生成动态密钥发送给客户端。动态密钥内容格式根据需要自己设计,例如双方支持的加密算法(MD5)、随机码和密钥有效期等,并且在服务器保存该动态密钥,保持形式可以是Session(推荐)、数据库或文件等,例如动态密钥格式为(MD5 + 123456 + 2010/9/23/12:00:00),最简单的形式只有一个随机码。2. 客户端提交数据, 客户端获得动态密钥后,用动态密钥中的加密算法加密需要发送到服务器的数据(如:帐号和密码)和随机码,客户端把加密好的数据发送给服务器:3. 服务器验证应答, 服务器把收到的加密好的客户端数据,和服务器端用动态密钥中的加密算法对服务器端数据(如保证在数据库的密码)和随机码进行加密,生成加密好的服务器端数据(Server encrypted data)进行比较,相等则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024预制板购销合同
- 2025年度瓷砖研发中心实验室建设与运营合同3篇
- 2025年度危险化学品储存安全管理承包合同4篇
- 2025年度智能物流中心建设与运营管理合同4篇
- 2025年度商业地产租赁代理服务合同模板4篇
- 2024物业项目策划2024委托代理合同
- 2025年度医疗器械代生产加工合同范本4篇
- 2025年度特殊用途车牌租赁与押金管理协议4篇
- 2025年度展会现场安保及应急预案服务合同3篇
- 2024铁路钢轨铺设及维护工程协议细则
- 劳动合同续签意见单
- 大学生国家安全教育意义
- 2024年保育员(初级)培训计划和教学大纲-(目录版)
- 河北省石家庄市2023-2024学年高二上学期期末考试 语文 Word版含答案
- 企业正确认识和运用矩阵式管理
- 分布式光伏高处作业专项施工方案
- 陈阅增普通生物学全部课件
- 检验科主任就职演讲稿范文
- 人防工程主体监理质量评估报告
- 20225GRedCap通信技术白皮书
- 燃气有限公司客户服务规范制度
评论
0/150
提交评论