Web安全攻防——渗透测试实战指南

第1章
渗透测试之信息收集

进行渗诱测试之前,最重要的一步就是信息收集,在这个阶段,我们要尽可能地收集目标组织的信息。所谓“知己知彼,百战不殆”,我们越是了解测试目标,测试的工作就越容易。在信息收集中,最主要的就是收集服务器的配置信息和网站的敏感信息,其中包括域名及子域名信息、目标网站系统、CMS指纹、目标网站真实IP、开放的端口等。换句话说,只要是与目标网站相关的信息,我们都应该去尽量搜集。

第2章
搭建漏洞环境及实战

第3章
常用的渗透测试工具

SQLMap详解
SQLMap是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL、Oracle、PostgreSQL、Microsoft SQL Server、 Microsoft Access、IBM DB2、SQLite.Firebird、Sybase和SAP MaxDB。SQLMap采用了以下5种独特的SQL注入技术
。基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入。
。基于时间的盲注,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已执行 (即页面返回时间是否增加) 来判断。
。基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中。
。联合查询注入,在可以使用Union的情况下的注入。
。堆查询注入,可以同时执行多条语句时的注入。
SQLMap的强大的功能包括数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时实行任意命令。SQLMap的功能强大到让人惊叹,当常规的注入工具不能利用SQL注入漏洞进行注入时,使用SQLMap会有意想不到的效果。

第4章
Web安全原理剖析

4.1 SQL注入的基础
4.1.1 介绍SQL注入
SQL注入就是指Web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数带入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。一般情况下,开发人员可以使用动态SQL语句创建通用、灵活的应用。动态SQL语句是在执行过程中构造的,它根据不同的条件产生不同的SQL语句。当开发人员在运行过程中需要根据不同的查询标准决定提取什么字段 (如select语句),或者根据不同的条件选择不同的查询表时,动态地构造SQL语句会非常有用。
下面以PHP语句为例。
$query="SELECT * FROM users WHERE id=S GET [id] ",
由于这里的参数ID可控,且带入数据库查询,所以非法用户可以任意拼接SQL语句进行攻击。
当然,SQL注入按照不同的分类方法可以分为很多种,如报错注入、盲注.Union注入等。
4.1.2 SQL注入的原理
SQL注入漏洞的产生需要满足以下两个条件。
。参数用户可控: 前端传给后端的参数内容是用户可以控制的。
。参数带入数据库查询: 传入的参数拼接到SQL语句,且带入数据库询当传入的ID参数为1’时,数据库执行的代码如下所示。
select * from users where id=1'
这不符合数据库语法规范,所以会报错。当传入的ID参数为and 1=1时,执行的SQL语句如下所示。
select * from users where id=1 and 1=1
因为1=1为真,且where语句中id=1也为真,所以页面会返回与id=1相同的结果。当传入的ID参数为and 1=2时,由于1=2不成立,所以返回假,页面就会返回与id=1不同的结果。
由此可以初步判断ID参数存在SQL注入漏洞,攻击者可以进一步拼接SQL语句进行攻击,致使数据库信息泄露,甚至进一步获取服务器权限等在实际环境中,凡是满足上述两个条件的参数皆可能存在SQL注入漏洞,因此开发者需秉持“外部参数皆不可信的原则”进行开发...........

第5章
Metasploit技术

 5.1 Metasploit简介
Metasploit是当前信息安全与渗诱测试领域最流行的术语,它完全颠覆了已有的渗透测试方式。几乎所有流行的操作系统都支持Metasploit,而且Metasploit框架在这些系统上的工作流程基本都一样。本章中的示例以Kali操作系统为基础,该操作系统预装Metasploit及在其上运行的第三方工具。Kali系统的下载地址为http://www.kali.org/downloads/.


Metasploit框架 (Metasploit Framework,MSF) 是一个开源工具,旨在方便渗透测试,它是由Ruby程序语言编写的模板化框架,具有很好的扩展性,便于渗透测试人员开发、使用定制的工具模板。Metasploit可向后端模块提供多种用来控制测试的接口 (如控制台、Web.CLI)。推荐使用控制台接口,通过控制台接口,你可以访问和使用所有Metasploit的插件,例如Payload、利用模块、Post模块等。Metasploit还有第三方程序的接口,例如Nmap、SQLMap等,可以直接在控制台接口里使用,要访问该界面,需要在命令行下输入msfconsole,MSF的启动界面如图5-1所示。

 第6章
PowerShel1攻击指南

 6.1 PowerShell技术
在渗诱测试中,PowerShell是不能忽略的一个环节,而且仍在不断地更新和发展,它具有令人难以置信的灵活性和功能化管理Windows系统的能力。一旦攻击者可以在一台计算机上运行代码,就会下载PowerShell脚本文件 (-ps1) 到磁盘中执行,甚至无须写到磁盘中执行,它可以直接在内存中运行。这些特点使得PowerShell在获得和保持对系统的访问权限时,成为攻击者首选的攻击手段,利用PowerShell的诸多特点,攻击者可以持续攻击而不被轻易发现。
常用的PowerShell攻击工具有以下这几种。
。PowerSplit: 这是众多PowerShell攻击工具中被广泛使用的PowerShell后期漏洞利用框架,常用于信息探测、特权提升、凭证窃取、持久化等操作。
。Nishang: 基于PowerShell的渗透测试专用工具,集成了框架、脚本和各种Payload,包含下载和执行、键盘记录、DNS、延时命令等脚本。
。Empire: 基于PowerShell的远程控制木马,可以从凭证数据库中导出和跟踪凭证信息,常用于提供前期漏洞利用的集成模块、信息探测、凭据窃取、持久化控击。
。PowerCat: PowerShell版的NetCat,有着网络工具中的“瑞士军力”美誉,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,读者可以在脚本中以多种方式使用它。


6.1.1 PowerShell简介
Windows PowerShell是一种命令行外壳程序和脚本环境,它内置在每个受支持的Windows版本中(Windows 7/Windows 2008 R2和更高版本),使命令行用广和脚本编写者可以利用NET Framework的强大功能。一旦攻击者可以在一台计算机上运行代码,他们就会下载PowerShell脚本文件 (.ps1) 到磁盘中执行,甚至无须写到磁盘中执行,它可以直接在内存中运行,也可以把PowerShell看作命令行提示符cmd.exe的扩充。
PowerShell需要.NET环境的支持,同时支持.NET对象,其可读性、易用性可以位居当前所有Shell之首。PowerShell的这些特点正在吸引攻击者,使它逐渐成为一个非常流行且得力的攻击工具。

PowerShell有以下这几个优点。
。Windows 7以上的操作系统默认安装
。PowerShell脚本可以运行在内存中,不需要写入磁盘
。可以从另一个系统中下载PowerShell脚本并执行。
。目前很多工具都是基于PowerShell开发的。
。很多安全软件并不能检测到PowerShell的活动cmd.exe通常会被阻止运行,但是PowerShell不会
。可以用来管理活动目录。
各个Windows系统下的PowerShell版本,如图6-1所示

第7章
实例分析

7.1 代码审计实例分析
对网站进行渗诱测试前,如果发现网站使用的程序是开源的CMS,测试人员般会在互联网上搜索该CMS已经公开的漏洞,然后尝试利用公开的漏洞进行测试。
由于CMS已开源,所以可以将源码下载后,直接进行代码审计,寻找源码中的安全漏洞。本章将结合实际的源码,介绍几种常见的安全漏洞。
代码审计的工具有免费的也有商业的,例如RIPS、Fortify SCA、Seay源码审计工具、FindBugs等。这些工具实现的原理有定位危险函数、语句分析等。在实际的代码审计过程中,工具只是辅助,更重要的是测试人员要具有较强的代码开发知识,结合业务流程,寻找代码中隐藏的漏洞。

在代码审计时,常用的IDE是PHPSTORM +Xdebug,通过配置IDE,可以单步调试PHP代码,方便了解CMS的整个运行流程。
7.1.1 SQL注入漏洞
打开CMS源码的model.php文件 (model文件一般为操作数据库的文件)会发现函数GETInfoWhere () 将变量$strWhere直接拼接到select语句中,没有任何的过滤,代码如下所示。 

 全章节一共7章,字数有限放不了那么多,需要的评论区留言或者滴滴我就好~

  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值