web安全专项技术培训(共51张).pptx
安全安全漏洞利用手工注入工具使用答疑讨论漏洞描述利用演示安全防护 商达讯网店系统提供免费网上商城的搭建,其代码从创立商达讯网店系统提供免费网上商城的搭建,其代码从创立初期,存在多处注入,作为我们研究安全的入门,我们以这款初期,存在多处注入,作为我们研究安全的入门,我们以这款免费的商城代码进行注入分析。免费的商城代码进行注入分析。 查询订单页面中,对输入的查询函数缺乏过滤查询订单页面中,对输入的查询函数缺乏过滤 导致注入导致注入 注入,即将我们的数据放进数据库执行,非法注入,将导致注入,即将我们的数据放进数据库执行,非法注入,将导致操作数据库完成他想要做的任何事情。操作数据库完成他想要做的任何事情。 针对订单页面查询,输入针对订单页面查询,输入 1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24 =24 = 注入的防护,即将传递给数据库的所有数据进行验证输入。注入的防护,即将传递给数据库的所有数据进行验证输入。 分析代码,将赋值前进行验证过滤,如设置(分析代码,将赋值前进行验证过滤,如设置(( (“”“”) ))漏洞描述利用演示安全防护文件包含漏洞指的是可以通过定义和改写变量,从而演变成操控网页脚本,加载其它文件的控制流程,其核心思路必须使用漏洞代码: = = 漏洞利用:目标注入点查找猜测数据库表、字段、数据内容寻找后台上传利用演示目标注入点查通过我们 1=1 和 1=2 我们判断页面是典型数字类型注入点此处省略1W字利用演示上传这里我们用到方法是上传小马,然后通过数据库备份功能修改上传小马后缀名称 之后上次大马。通过大马来提权。详细方法如图利用演示上传上传小马 注入原理分析:注入原理分析:1 1)查询注入点,基本测试)查询注入点,基本测试2 2)确认后,查)确认后,查 数字正常则表示字段大于等于此数字数字正常则表示字段大于等于此数字3 3)查询出能爆信息的字段)查询出能爆信息的字段 1=2 1 1=2 1,2 2,3 3,4 4,5 5,6/6/* * (假设字段长度为(假设字段长度为6 6) 判断注入点权限判断注入点权限 : ( ( ( (* *) )0/) )0/* *4 4)查询各种数据信息,假设爆出字段)查询各种数据信息,假设爆出字段5 5显示信息,则将显示信息,则将5 5换成需要显示的信息换成需要显示的信息5 5()()()()5 5)主要根据最新的)主要根据最新的 库的表中,从中查询信息,如库的表中,从中查询信息,如 1=2 1 1=2 1,2 2,3 3,4 4, () (),6 6 , 查询各数据库名称查询各数据库名称6 6)查询你想查询库中的所有表名,如已经查询到包含数据库,想看其中的表,)查询你想查询库中的所有表名,如已经查询到包含数据库,想看其中的表,则将换成则将换成1616进制进行查询,如进制进行查询,如 1=2 1 1=2 1,2 2,3 3,4 4,()(),6 6 0 x70687062620 x70687062627 7)如果表名太多,可通过(,)分离表名,即)如果表名太多,可通过(,)分离表名,即 (()(),1 1,5050)8 8)查询出你感兴趣的表名后,可继续查列名)查询出你感兴趣的表名后,可继续查列名1=2/1=2/* * * * * * */1,2,3(),5,6/1,2,3(),5,6/* * * * * * * * * 0 x62685F61646D696E 0 x62685F61646D696E9 9)库,表,列名皆知,则可查询具体信息:)库,表,列名皆知,则可查询具体信息: 1=2 / 1=2 /* * * * * * */1,2,3, (),5,6/1,2,3, (),5,6/* * * * * 本地过程演示注入原理分析:本地过程演示注入原理分析: 本地搭建测试环境本地搭建测试环境 以某书籍上表明的问题测试文件为例,其给出一个参数,以某书籍上表明的问题测试文件为例,其给出一个参数,未进行任何过滤,问题代码如下未进行任何过滤,问题代码如下: : 一步步测试,首先查看当前表有多少个字段,当一步步测试,首先查看当前表有多少个字段,当 38 38时出现无此列,时出现无此列, 37 37正正常常 ,则肯定字段数为,则肯定字段数为37.37.本地过程演示注入原理分析:本地过程演示注入原理分析: 现在可以屏蔽正确的查询信息,以此回显我们的查询。先查询基本信息,如下所示现在可以屏蔽正确的查询信息,以此回显我们的查询。先查询基本信息,如下所示: : 本地过程演示注入原理分析:本地过程演示注入原理分析: 可以看出查询正常,支持查询并在多处支持回显,现在我们查询当前网站服务器上有多少个数据库,各是什么,必要时,以()读取可以看出查询正常,支持查询并在多处支持回显,现在我们查询当前网站服务器上有多少个数据库,各是什么,必要时,以()读取 本地过程演示注入原理分析:本地过程演示注入原理分析: 本例查询数据库,直接查询数据库会被编码为不识别,使用本例查询数据库,直接查询数据库会被编码为不识别,使用1616进制加密,查询此数据库的表情况:进制加密,查询此数据库的表情况: 此库中表比较多,那么需要以()来分步读取 本地过程演示注入原理分析:本地过程演示注入原理分析: 有理由相信表中存放着关键信息,查询此表的字段信息:有理由相信表中存放着关键信息,查询此表的字段信息: 本地过程演示注入原理分析:本地过程演示注入原理分析: 很明显,管理员的账户密码,能够获取了:很明显,管理员的账户密码,能够获取了: 本地过程演示注入原理分析:本地过程演示注入原理分析: 接下来该做什么了?将密文解密,登录后台,执行操作,获取,提权,获取接下来该做什么了?将密文解密,登录后台,执行操作,获取,提权,获取服务器权限。服务器权限。 还有没有更好的途径?还有没有更好的途径? 数据库结构分析:数据库结构分析:库:库:库: 函数1)语法:需要权限 ()201,2,3,4,5(0 x2F6574632F68747470642F636F6E662F68747470642E636F6E66),7 必要时 以/*/代替空格2)各常用配置文件:注入中,()函数在获得以及提权过程中起着十分重要的作用,常被用来读取各种配置文件,如:5 相关设置 配置文件 的配置文件c: 存储了表中的数据库连接密码c: 存储了虚拟主机网站路径和密码等等。实际上,()的作用不止于此,它还可以用来读取系统中的二进制文件,c: 6.0版本以前的管理员密码存储于此C: *文件存储了的登陆密码 函数1) 必须为,否则的“ ” 会被转义,而此函数的符号不能被其它加密替代2)获得物理路径( 物理路径) 这样才能写对目录3)能够使用 (也就是说需要3以上的版本)4) 就是用户拥有权限(不然就不能写文件 或者把文件内容读出)5)对目录有写权限 的系统一般都有权限,但是通常都是 也就是说组跟其他用户都没有权限写操作可备份到上传目录 ( (*) )0 (写权限判断 下写入到上传目录)示例:数据库密码的本地恢复:应用文件读取: 多在,等文件中存储着数据库的明文连接密码下密码恢复:打开命令行窗口,停止服务: 启动,一般到的安装路径,找到 执行: 另外打开一个命令行窗口,进入相应目录下,执行 () ; ;用,找到的进程杀掉它,在重新启动服务,就可以用新密码登录了下密码恢复: 一般位于 存储用户的文件数据 于 一 覆盖文件 (覆盖前 此文件最好备份一份 以防意外) 然后 再修改任意密码 慎用! () 二 无认证登录首先,关闭服务 然后安全模式登录: 现在可以改密码了 () ; ;再杀掉此时的进程 重启服务 ,新密码登录1.准备扫描数据准备扫描数据在谷歌和百度里面高级搜索,打开百度或者谷歌,在谷歌和百度里面高级搜索,打开百度或者谷歌,“(我以百度为例来进(我以百度为例来进行这个步骤)选择行这个步骤)选择“高级高级”在在“包含以下全部的关键词包含以下全部的关键词”中输入中输入 “:”(可以是可以是任意的数字任意的数字)在在”选择搜索结果显示的条数选择搜索结果显示的条数“中选择中选择”每页显示每页显示100条条“然后然后点击点击“百度一下百度一下”,在弹,在弹 出的窗口中复制出完整的地址。出的窗口中复制出完整的地址。2.扫描注入点扫描注入点打开啊打开啊D注入工具,选择注入工具,选择”注入检测注入检测“的的”扫描注入点扫描注入点“子项。在检测网址子项。在检测网址中粘贴刚复制出来的地址,单击中粘贴刚复制出来的地址,单击“打开网页打开网页” 或者直接回车。或者直接回车。此时啊此时啊D注入工具会扫该链接下的所有可用注入点。注入工具会扫该链接下的所有可用注入点。注入点会在界面的下方的“可用注入点”列表框中以红色字体显示。(刚打开时有可能没 有可用注入点,因为此时此工具正在扫描注入点,随着扫描的时间推移就会有更多的注入点。如果当扫描结束了没有注入点的话就要更换“: ”的数字了,再重复上面的步骤直到出现可用的注入点才能进行下面的步骤。)3.注入点检测注入点检测双击一条扫描出来的地址,界面自动跳转到双击一条扫描出来的地址,界面自动跳转到“注入检测注入检测”,单击,单击“检测检测”按按钮。(如果提示钮。(如果提示“这个链接不能注入!请选择别的链接这个链接不能注入!请选择别的链接”,则重新换一条,则重新换一条链接再执行本步骤。直到不出现提示,链接再执行本步骤。直到不出现提示, 左下角提示左下角提示“检测完成检测完成”。)可以。)可以得出数据库类型。得出数据库类型。4.“检测表段检测表段”和和“检测字段检测字段”此时会扫描数据库中可注入的数据表。当检测完成之后没有可用的表时此时会扫描数据库中可注入的数据表。当检测完成之后没有可用的表时重新执行步骤重新执行步骤3,直到有可用的数据表。,直到有可用的数据表。这里我们选择“”这个表段进行字段检测。勾选要检测的字段进行内容检测。55解密解密将检测得到的字段中的内容复制到5在线解密网站上解密。6.管理入口检测管理入口检测单击单击“检测管理入口检测管理入口”,检测到的登陆入口会在,检测到的登陆入口会在“可用链接和目录位置可用链接和目录位置”的的列表框中显示。然后选择一个匹配的链接输入检测到的内容即可进入网列表框中显示。然后选择一个匹配的链接输入检测到的内容即可进入网站的管理后台。注:一条数据只能和该条数据关联的页面匹配,如果在站的管理后台。注:一条数据只能和该条数据关联的页面匹配,如果在一个界面登陆不成功则考虑换一个链接从新来过。一个界面登陆不成功则考虑换一个链接从新来过。登录后台登录后台是一个具有欺骗功能的小工具,可以进行远程渗透入侵。解压后,里面有3个文件:“”、“”和“”。其中“”和“”是必需的。前者是程序主文件,后者是嗅探所需数据包的自解压版本。将文件上传到远程主机上,这里以C盘根目录为例。在使用工具进行渗透入侵前,必须安装组件入侵控制的主机,可能是单独的一台主机,也可能位于某个网络中;主机上可能只安装了一块网卡,也可能安装了多块网块全面地了解远程主机上的网络信息是进一步渗透入侵攻击前所必需的。在远程控制木马的命令控制窗口中,执行命令: 可以看到远程主机上网卡的设备名、地址、物理地址和子网掩码等各种网络信息,如图所示。其中,比较重要的是列显示的信息,也就是网卡索引号。如果是单网卡,那么网卡索引号为1。扫描远程主机子网中所有的主机地址,命令格式为: 网卡索引号 可以从远程主机所在的子网中扫描并显示所有主机的地址,以及其网卡的物理地址。这里可以看到,在子网中有5台主机。嗅探所有“172.16.2.*网段的主机与服务器172.16.2.102之间的网络信息数据,并从中捕获密码,保存在文件中。 1 172.16.0.* 172.16.0.102以上命令,只是进行单向嗅探,也可以添加参数进行双向嗅探,命令格式如下: 1 122.16.2.* 172.16.2.102 也可以设置嗅探指定协议的密码,如嗅探密码,可执行命令: 1 192.168.1.* 192.168.1.10 21 要嗅探常见的密码,可执行命令: 1 192.168.1.* 192.168.1.10 80 假设在子网内某台计算机公网的地址为“172.16.2.102,该主机设置了地址限制,只允许地址“172.16.2.105访问,而攻击者本机的地址是“172.16.2.109,如果想入侵这台连接受制限的主机,可以执行命令 d1 172.16.2.102 172.16.2.1 172.16.2.109 172.16.2.105 尽管不能算是完全的开源共享,还是应该要向7致敬。 将已知的的漏洞进行汇总,允许测试人员进行漏洞测试利用,并允许测试人员选择合适的利用方式,同时提供一个平台,供大家开发自己的漏洞测试程序。演讲完毕,谢谢观看!