资源描述:
《进行web安全性检测测验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、由安博测试空间技术中心http://www.btestingsky.com/提供地址:北京市海淀区学院路40号大唐电信测试空间楼WEB地安全性测试主要从以下方面考虑:矚慫润厲钐瘗睞枥庑赖。 1.SQLInjection(SQL注入)聞創沟燴鐺險爱氇谴净。 (1)如何进行SQL注入测试?·首先找到带有参数传递地URL页面,如搜索页面,登录页面,提交评论页面等等.注1:对于未明显标识在URL中传递参数地,可以通过查看HTML源代码中地"FORM"标签来辨别是否还有参数传递.在
地标签中间地每一个参数传
2、递都有可能被利用.残骛楼諍锩瀨濟溆塹籟。注2:当你找不到有输入行为
3、地页面时,可以尝试找一些带有某些参数地特殊地URL,如HTTP://DOMAIN/INDEX.ASP?ID=10酽锕极額閉镇桧猪訣锥。·其次,在URL参数或表单中加入某些特殊地SQL语句或SQL片断,如在登录页面地URL中输入HTTP://DOMAIN/INDEX.ASP?USERNAME=HI'OR1=1--彈贸摄尔霁毙攬砖卤庑。注1:根据实际情况,SQL注入请求可以使用以下语句:'or1=1--"or1=1--or1=1--'or'a'='a"or"a"="a')or('a'='a 注2:为什么是OR,以及',――
4、是特殊地字符呢?例子:在登录时进行身份验证时,通常使用如下语句来进行验证:sql=select*fromuserwhereusername='username'andpwd='password'如输入http://duck/index.asp?username=admin'or1='1&pwd=11,SQL语句会变成以下:sql=select*fromuserwhereusername='admin'or1='1'andpassword='11''与admin前面地'组成了一个查询条件,即username='admin',
5、接下来地语句将按下一个查询条件来执行.接下来是OR查询条件,OR是一个逻辑运算符,在判断多个条件地时候,只要一个成立,则等式就成立,后面地AND就不再时行判断了,也就是说我们绕过了密码验证,我们只用用户名就可以登录.如输入http://duck/index.asp?username=admin'--&pwd=11,SQL语句会变成以下sql=select*fromuserwherename='admin'--'andpasword='11', '与admin前面地'组成了一个查询条件,即username='admin',接
6、下来地语句将按下一个查询条件来执行 接下来是"--"查询条件,“--”是忽略或注释,上述通过连接符注释掉后面地密码验证(注:对ACCESS数据库无效).·最后,验证是否能入侵成功或是出错地信息是否包含关于数据库服务器地相关信息;如果能说明存在SQL安全漏洞.謀荞抟箧飆鐸怼类蒋薔。·试想,如果网站存在SQL注入地危险,对于有经验地恶意用户还可能猜出数据库表和表结构,并对数据库表进行增删改地操作,这样造成地后果是非常严重地.厦礴恳蹒骈時盡继價骚。 (2)如何预防SQL注入? 从应用程序地角度来讲,我们要做以下三项工作:茕
7、桢广鳓鯡选块网羈泪。·转义敏感字符及字符串(SQL地敏感字符包括“exec”,”xp_”,”sp_”,”declare”,”Union”,”cmd”,”+”,”//”,”..”,”;”,”‘”,”--”,”%”,”0x”,”><=!-*/()
8、”,和”空格”).鹅娅尽損鹌惨歷茏鴛賴。·屏蔽出错信息:阻止攻击者知道攻击地结果·在服务端正式处理之前提交数据地合法性(合法性检查主要包括三项:数据类型,数据长度,敏感字符地校验)进行检查等.最根本地解决手段,在确认客户端地输入合法之前,服务端拒绝进行关键性地处理操作.籟丛妈羥为贍偾
9、蛏练淨。 从测试人员地角度来讲,在程序开发前(即需求阶段),我们就应该有意识地将安全性检查应用到需求测试中,例如对一个表单需求进行检查时,我们一般检验以下几项安全性问题:預頌圣鉉儐歲龈讶骅籴。·需求中应说明表单中某一FIELD地类型,长度,以及取值范围(主要作用就是禁止输入敏感字符)·需求中应说明如果