预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共170页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Web应用安全 张晓峰 2015-10 目录Web来源于WorldWideWeb,Web系统是Internet的重要组成部分,形形色色的Web系统正在改变着我们的生活:作为一种新型的市场渠道,网上营业厅能够为用户提供方便快捷的服务,能够降低实体店铺的成本,因此在各大运营商市场战略中占有重要的位置。近年以来,网上营业厅的安全问题越来越受到大众的关注,主要可以划分成4个方面:而Web系统的安全性参差不齐……定制开发的Web应用=企业安全的阿基里斯之踵Web攻击动机Web攻击工具:WebScarabWeb攻击漏洞:安全漏洞库Web攻击漏洞:2007OWASPTop102007OWASPTop10:第一名~第四名2007OWASPTop10:第五名~第十名OWASPTOP10,您打算从哪里开始?目录2007OWASP第10名:URL访问控制不当2007OWASP第9名2007OWASP第8名2007OWASP第8名:CasevBulletin2007OWASP第8名:CasevBulletin2007OWASP第8名:CasevBulletin2007OWASP第8名:CasevBulletin2007OWASP第8名:CasevBulletin2007OWASP第7名实验环境搭建2007OWASP第7名:CaseBrute2007OWASP第7名:CaseBrute2007OWASP第7名:CaseBrute2007OWASP第7名:CaseBrute2007OWASP第7名:CaseBrute2007OWASP第7名:CaseBrute2007OWASP第7名:CaseBrute2007OWASP第6名2007OWASP第6名:Case12007OWASP第6名:Case22007OWASP第6名:Case32007OWASP第6名:Case42007OWASP第6名:Case52007OWASP第6名:IE设置12007OWASP第6名:IE设置22007OWASP第6名:IE设置3总结目录对象直接引用一对象直接引用对象直接引用对象直接引用对象直接引用对象直接引用对象直接引用其他资源类型真实的故事防范措施目录恶意代码执行恶意代码执行:Casedvbbs恶意代码执行:Casedvbbs恶意代码执行:Casedvbbs恶意代码执行:Casedvbbs恶意代码执行:Casedvbbs恶意代码执行:Casedvbbs恶意代码执行:Casedvbbs恶意代码执行:Casedvbbs恶意代码执行:Casedvbbs防范措施目录注入攻击:OWASP2007Top2SQLInjection:字符串参数程序员未预料到的结果…… Username:admin'OR1=1-- Password:1 SELECTCOUNT(*) FROMUsers WHEREusername='admin'OR1=1--'andpassword='1'SQLInjection可能影响的系统SQLInjection:数字参数打开培训示范论坛,不用登录,直接查看用户属性一个简单的测试显示这里可能存在注入漏洞。从错误看出是MSSQLServer。 从链接的形式id=?来看应该可能是数字型。因此’报错是必然的。 从报错来看,程序员把’替换成了’’ 用—试验,发现出来了一部分数据,test用户名及其email地址,这证明至少有一条SQL正确运行。 但是依然有SQL报错,很可能是后台有两条SQL语句都分别用到了id变量,而两语句使用的环境不同。 实际情况是第一条SQL是whereid=?…,第二条SQL是where(xx=xx)and(id=?)。 因此要第二条不错,id只能用2)--,但这样第一条又会出错,难以两全。 从错误行号来看,第一句SQL位于84行,第二句SQL位于207行。对于Select查询,几乎都可以用Union查询来暴库。 Union要求前后两句对应的数据项数量相同,类型一致,因此需要首先检查第一句SQL的数据项数量。 方法是用orderbyn,逐步增加n。 N=30正常,N=31错误!因此第一句SQL有30项。 由于union还要求类型一致,30项要逐个猜测类型是不现实的,因此用通配符null!准备30个null。 提示这个错误的原因说明前一句sql中有image类型,而union缺省是distinct的,要解决这个问题,使用unionall即可。 使用UnionAll后,终于又看到了test的信息。 调整union第一句的条件为“不可能满足”,这样显示出来的始终是第二句,即使为null 需要找到这两个数据位于30个null中的何处。首先试验把第二个null换成字符型的’null’。 错误提示不是告诉类型不匹配,而是说有语法错误。从而