Web安全测试
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
权限漏洞测试用例和方法
对于部分敏感信息页面,不同权限应该看到不同的数据
1、帐号A(管理员)可以看到该系统所有用户的个人信息数据,帐号B(一般)不 应该看到该系统用户的个人信息。用帐号A登录后复制URL地址,粘贴到B帐号已 登录的浏览器地址栏中,点击回车。如果能看到系统用户个人信息数据则表示存 在漏洞
SQL注入漏洞危害
这些危害包括但不局限于: 1.数据库信息泄漏:数据库中存放的用户的隐私信息的泄露 。 2.网页篡改:通过操作数据库对特定网页进行篡改。 3.网站被挂马,传播恶意软件:修改数据库一些字段的值, 嵌入网马链接,进行挂马攻击。 4.数据库被恶意操作:数据库服务器被攻击,数据库的系统 管理员帐户被窜改。 5.服务器被远程控制,被安装后门。经由数据库服务器提供 的操作系统支持,让黑客得以修改或控制操作系统。 6.破坏硬盘数据,瘫痪全系统。
何为SQL注入
所谓的SQL注入,就是把SQL命令插入到提交给WEB服务器 处理的各种参数中,以达到欺骗WEB后台数据库服务器,执 行恶意的SQL命令的一种攻击方法。
SQL注入漏ຫໍສະໝຸດ Baidu成因
SQL注入攻击是通过构造巧妙的SQL语句,同网页提交的内容 结合起来进行注入攻击。比较常用的手段有使用注释符号、恒等 式(如1=1)、使用insert或update语句插入或修改 数据等,此外还可以利用一些内置函数辅助攻击。通过SQL注入 漏洞攻击网站的步骤一般如下: 第一步:探测网站是否存在SQL注入漏洞。 第二步:探测后台数据库的类型。 第三步:根据后台数据库的类型,探测系统表的信息。 第四步:探测存在的表信息。 第五步:探测表中存在的列信息。 第六步:探测表中的数据信息。
跨站脚本漏洞测试用例和方法
对于内容录入功能页面,在录入文本框中提交如下一些内容,并观察其返回 的内容浏览页面
1、尖括号及其编码方式:<>%3C%3E%253C%253E录入内容写在HTML标签间或者标 签属性值中,且<>以明文的方式显示而未被编码为字符实体名:&IF;&GF或编码 :<;&62,录入内容写在页面的JS脚本内容中,且未被/转义,则表明漏洞存 在 2、单引号及其编码方式:’ “ %2的%2d%252d%252d,录入内容写在HTML标签 属性中,且’ “以明文的方式显示而未被编码为字符实体名或编码,录入内容 写在页面JS脚本内容中,且未被/转义,表明漏洞可能存在 3、圆括号及其编码方式()%28%29%2528%2529,录入内容写在页面的JS脚本内 容中,且未被/转义,则表明漏洞可能存在
Web安全测试
讲师:
日期:2014-5-11
Web安全测试定义 Web安全测试就是要提供证据表明,在 面对敌意和恶意输入的时候,web系统应用仍 然能够充分地满足它的需求。
目录
• Web普遍漏洞类型 • Web漏洞成因及危害 • 漏洞测试用例设计和方法
2019/1/23
常见web漏洞类型 • • • • sql注入漏洞 跨目录文件读取漏洞 跨站脚本漏洞 权限漏洞
THANK!
siemarketing@chinasie.com
SQL注入漏洞成因
SQL注入攻击是通过构造巧妙的SQL语句,同网页提交的内容 结合起来进行注入攻击。比较常用的手段有使用注释符号、恒等 式(如1=1)、使用insert或update语句插入或修改 数据等,此外还可以利用一些内置函数辅助攻击。通过SQL注入
SQL注入实例
类型1:数字型 $id = $_GET[id]; $sql = “SELECT *FROM“.$tablepre.”announcements WHERE id=$id”; $result = $db->fetchsingleassocbysql( $sql ); $content = $result[„content‟]; 提交and 1=1,语句变成 select * from tablepre announcements where id = 71 and 1=1 这时语句前值后值都为真,and以后也为真,返回查询到的 数据。执行了攻击者额外的SQL查询语句,导致SQL注入漏洞
Web安全测试
跨目录文件读取危害
跨越用户权限限定,获得网站系统中的所有文件内容 读取应用服务器及主机系统的特定配置文件,如XML配置文 件,密码文件等等,控制系统和数据库获取网站系统源代码
跨站脚本是什么
所谓跨站脚本,就是利用网站程序对用户输入过滤不严 ,输入可以显示在页面上对其他用户造成影响的HTML代码, 从而盗取用户资料,利用用户身份进行某种活动,或者对访 问者造成侵害的一种攻击方式
跨目录文件读取攻击
所谓跨目录文件读取,就是利用网站程序在读取本地文 件是,试用文件路径作为参数,而又没有对文件路径做限制 ,导致可以构造特定的文件路径参数跨过文件目录,读取目 录外文件的一种攻击方式
跨目录文件读取漏洞成因
该漏洞的特征是通过服务器端程序读取参数指定的文件,有两种类型: 1、网站程序限定了服务端应用程序读取本地文件目录,使用相对路径读取 目录中的文件,但可以通过../向上级目录回溯,从而读取限定目录外 的文件 如 WWW.XXX.com/servlet?attachfile=/document/foo.doc 修改参数attachfile为/../../../etc/passwd WWW.XXX.com/servlet?attachfile=/../../../etc/passwd 2、网站程序未限定目录,通过参数指定的目录和文件名,构造文件的绝对 路径的方式来读取本地文件: 如:WWW.XXX.com/servlet?filedir=/data/document/&filename=foo.doc 修改参数filedir为/etc/,filename为passwd WWW.XXX.com/servlet?filedir=/etc/&filename=passwd
Web安全测试
跨站脚本漏洞实例
类型3: Javascript跨站<script> var UID = '0'; var isLogin = false; var KEY = '';//KEY变量用户可控var FROMTAG = 1; </script> 用户可以提交: [url]http://www.test.com/news/tag.jsp?key=%27[/url];alert%281%29;// 变量key包含在JavaScript代码段中。原始代码被修改为: <script> var UID = '0'; var isLogin = false; var KEY = '';alert(1);//恶意用户修改了页面输出代码'; var FROMTAG = 1; </script> 导致恶意用户可以控制变量值,将任意JS代码写入到输出页面
跨站目录文件读取漏洞测试用例和方法
该测试用例只适用于文件路径参数读取文件内容的页面中
。 如果页面使用文件绝对路径读取文件,则尝试使用它来读取系 统中可能存在的文件,比如UNIX的/etc/passwd或Windows的C :/boot.init,如成功则表明漏洞存在 如果页面使用文件相对路径读取文件,则尝试目录回溯../是 否能够成功识别,如某个页面为 XXX.COM/image?file=image/pic.jpg,则尝试 XXX.COM/image.serviet?file=image/../image/pic.jpg是否 也能读取Pic.jpg,如成功则表明漏洞存在 当然还要对目录回溯符../的编码方式%2E%2E%2F和%252E%252F 进行相同的尝试
跨站脚本漏洞危害
向目标页面插入恶意的脚本,控制用户浏览器行为,盗 取用户Cookies和SMBHASH等信息向目标页面挂载网页木马、 危害用户计算机,降低网站的信誉度
SQL注入漏洞测试用例和方法
对于内容查询功能页面,在客户端传递到服务端的所有参 数(GET,POST)后添加以下形式的一些字符并观察提交后的页 面: 1、单引号及其编码方式:‘ %27 %2527提交后观察返回页面 ,看是否出现类似单引号不闭合数据库异常 2、SQL注释符及其编码方式:%2d%2d%252d%252d,提交后观察 返回页面,看是否出现累世单引号不闭合或SQL语句不完整的 数据库异常 3、对于数字型参数,在参数后添加 and1=1 和 and1=2,分别 提交后观察是否出现有内容和无内容两个不同的页面 4、对于字符串型参数,在参数后添加 and”1=1” 和 and”1=2”,分别提交后观察是否出现有内容和无内容两个不 同的页面
SQL注入实例
类型2:字符型 $search = $_GET[key]; $sql = “SELECT * FROM users WHERE username LIKE „%$search%‟ ORDER BY username”; $result= $db>fetchsingleassocbysql( $sql ); $content = $result[„content‟]; 提交%‟order by id /* 语句变成SELECT * FROM users WHERE username LIKE „% % ‟ order by id /*ORDER BY username 通过闭合单引号并闭合后面 的原始语句,执行攻击者额外的SQL语句,导致SQL注入漏洞
跨站脚本漏洞成因
跨站脚本漏洞是因为程序没有对用户提交的变量中的 HTML代码进行过滤或转换。
跨站脚本漏洞实例
类型1: CSS跨站<IMG STYLE="">//style属性值用户可控或者用户可以直接编辑模板 恶意用户可以提交“xss:expr/*XSS*/ession(alert('XSS'))”作为STYLE 标签的属性值,或者在编辑模板的地方,恶意用户可以将JS代码写入CSS文件 ,导致跨站漏洞 类型2: HTML标签跨站<input type=text name=keyword value="<?echo $_GET[„evil_content ‟];>"> 由于程序没有对标签进行转义 ,恶意用户可以提交[url]http://www.test.com/search.php?[/url] evil_content ="><script>alert(/XSS/)</script>< 执行任意JS代码,导致 跨站漏洞