20189312任方园《网络攻防》第五次作业

课本总结

11章:Web应用程序安全攻防

Web应用体系结构

  • 浏览器:如IE、Firefox、Chrome等作为标准的Web客户端。使用HTTP/HTTPS协议、HTML语言和Web服务器进行交互
  • Web服务器:Web服务器软件通常被简单的描述为HTTP守护程序,接受Web客户端对资源的请求,在这些请求上执行一些基本的解析处理以确定资源的存在,然后将它传送给web应用程序来执行,待web应用程序执行完逻辑并返回响应时,web服务器再将这个响应返回给web客户端,在浏览器上进行本地执行、渲染和显示。
  • Web应用程序:虽然有很多种不同的web应用程序多层结构,最普遍应用的是三层体系结构,表示层、业务逻辑层、数据层。
  • 数据库:Web应用存储数据的地方。
  • 传输协议HTTP/HTTPS:HTTP是一种无状态的超文本传输协议,默认使用TCP80端口。但是HTTP协议不安全,为了提升HTTP的安全,可以使用SSL/TLS隧道技术来实现加密传输的HTTPS协议;采用cookie机制进行会话状态管理 ;嵌入基础的认证、摘要认证、基于表单的认证、NTLM认证、协商认证等多种认证协议,实现HTTP对用户身份的认证与控制。

Web应用安全威胁

在web整个体系结构的每个组件中都存在着安全弱点,容易遭受各种攻击。

  • 针对浏览器和终端用户的Web浏览安全威胁:具体包括以浏览器渗透攻击为核心的网页木马,网站钓鱼等。
  • 针对传输网络的网络协议安全威胁:如针对HTTP明文传输协议的敏感信息监听。在网络层、传输层和应用层都存在的假冒身份攻击。
  • 系统层安全威胁:web站点的宿主操作系统如Windows、Linux等,存在远程渗透攻击和本地渗透攻击威胁。
  • Web服务器软件安全威胁:web服务器软件如IIS、apache作为一种典型的网络服务,也存在安全漏洞与弱点。
  • Web应用程序安全威胁:常见的有SQL注入攻击、xss跨站脚本攻击等。
  • Web数据安全威胁:在web应用程序的后台存储着关键数据,以及客户端输入的数据内容,也存在被窃取篡改等威胁。

Web应用安全攻防技术之web应用信息收集

  • 手工审查Web应用程序结构与源代码:静态与动态生成的页面、目录结构、辅助性文件、输入表单、查询参数字符串。
  • 自动下载与镜像Web站点页面:采用现成的工具高效地完成之前的信息收集。
  • 使用Google Hacking技术审查与探测Web应用程序
  • Web应用程序安全评估与漏洞探测:常常需要一些Web应用程序分析、安全评估和漏洞探测工具来提供辅助。辅助分析工具主要有:浏览器插件、免费工具集和商业Web应用安全评估系统和漏洞扫描器。

Web应用安全攻防技术之攻击Web服务器软件

早期的web攻击技术利用web服务器软件包中的安全漏洞与不安全配置,而不是利用web应用程序逻辑本身。然而时至今日,针对web服务器软件的攻击已经少了很多,主要原因是软件供应商和开源团体提升了发布的软件的安全性,并提升了补丁发布的更新速度与效率。web管理员也会更安全的配置web服务器。

目前web服务平台中的安全漏洞主要分为如下几大类:

  • 数据驱动的远程代码执行安全漏洞
  • 服务器功能扩展功能模块漏洞
  • 样本文件安全漏洞
  • 源代码泄露
  • 资源解析攻击

Web应用安全攻防技术之攻击Web应用程序

WASC将web应用程序中存在的安全威胁从攻击技术角度分为如下几大类:

  • 针对认证机制的攻击
  • 授权机制的攻击
  • 客户端攻击
  • 命令执行攻击
  • 信息暴露
  • 逻辑攻击

攻击Web数据内容

web站点除了通过对服务器软件和应用程序中存在安全漏洞遭受攻击之外,还面临对敏感数据内容的威胁攻击,包括:

  • 安全敏感数据泄露
  • 网站篡改:网站篡改在中国又被称为“黑站”
  • 不良信息内容上传

Web应用安全防范措施

  • Web站点网络传输安全:尽量使用HTTPS保证数据传输的安全性和保密性等;通过加密的通道管理web站点,避免使用未经加密的telnet等管理web后台。
  • Web站点操作系统及服务安全:对web站点的操作系统和服务器软件及时补丁更新;对web站点的操作系统和各种开放服务进行远程安全漏洞扫描,在攻击者实施安全漏洞攻击之前发现并修补这些漏洞;采用提升系统与服务。安全性的一般设防措施,包括关闭所有不使用的服务,避免使用明文传输的网络服务等等。
  • Web应用程序安全
  • Web站点数据安全设防:提高网站内容维护人员的数据安全意识;对维护的网站数据实施日常检测和防护。

SQL注入

1、定义

SQL注入是利用Web应用程序数据层存在的输入验证不完善型安全漏洞实施的一类代码注入攻击技术。被攻击的漏洞被称为SQL注入漏洞。

2、原理

其原理是向Web应用程序提供的用户输入接口输入一段精心构造的SQL查询命令,攻击和利用不完善的输入验证机制,是的注入代码得以执行完成非预期的攻击操作行为。<br>

3、攻击步骤:

发现SQL注入点
判断后台数据库类型
后台数据库中管理员用户口令字猜解
上传ASP后门和得到默认账户权限
本地权限提升
利用数据库扩展存储过程执行Shell命令

4、攻击工具

Wposion、wieliekoek.pl、SPIKE Proxy、SPI Toolkit等等。

5、防范措施

使用类型安全的参数编码机制
凡是来自外部的用户输入,必须进行完备检查
将动态SQL语句替换为存储过程、预编译SQL或ADO命令对象
加强SQL数据库服务器的配置与连接

XSS跨站脚本攻击

1、定义

与代码注入类似,XSS攻击的根源同样是Web应用程序对用户输入内容的安全验证与过滤不够完善。然而,XSS攻击的最终目标并非Web服务器,Web服务器上的应用程序在XSS攻击场景中发挥的角色是“帮凶”,而真正的受害者是访问这些Web服务器的其他用户。<br>

2、分类

持久性XSS漏洞:会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。比如在论坛评论中加入攻击代码,从而能够显示访问该页面的其它用户,因此该攻击又被称为存储性XSS漏洞。
非持久性XSS漏洞:是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。

3、防范措施

服务端 : 输入验证、输出净化、消除危险的输入点
客户端  :提高浏览器的安全设置如提高访问非受信网站的安全等级、关闭Cookie功能、设置Cookie只读

12章:Web浏览器安全攻防

web浏览器是目前互联网时代最重要的软件产品,软件安全困境三要素:复杂性、可扩展性和联通性。

网页木马

1、特点

定义:利用了现代Web浏览器软件中所支持的客户端脚本执行能力,针对Web浏览端软件安全漏洞实施客户端渗透攻击,从而取得在客户端主机的远程代码执行权限来植入恶意程序。
本质核心:浏览器渗透攻击
驱动力:其发展和流行的驱动力是黑客地下经济链
存在的基础:Web浏览器安全漏洞。

2、网页挂马机制

内嵌HTML标签
恶意Script脚本
内嵌对象链接
ARP欺骗挂马

3、检测与分析网页木马技术

基于特征码匹配的传统监测方法
基于统计与机器学习的静态分析方法
基于动态行为结果判定的监测分析方法
基于模拟浏览器环境的动态分析监测方法

网络钓鱼

1、定义

是社会工程学在互联网中广泛实施的一种典型攻击方式,通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出个人敏感信息。

2、原理

通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出个人敏感信息。

3、普遍技术流程

攻击者扫描网段,寻找存有漏洞的服务器;
服务器被攻陷,并被安装一个rootkit或口令保护的后门工具;
攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工作,使得钓鱼网站上线运行;
攻击者下载群发电子邮件工具,并大规模散发垃圾邮件;
网页浏览的流量开始到达钓鱼网站,受害者访问并给出个人敏感信息,攻击者通过后台脚本收集这些信息。

4、防范措施:增强安全意识、提高警惕性。

16.KaliSecruity-漏洞分析之数据库评估(一)

BBQSql

  • BBQSql,是一个Python编写的盲注工具(blind SQL injection framework)。
  • SQL注入是将SQL命令插入到表单、域名或者页面请求的内容中。在进行注入的时候,渗透测试人员可以根据网站反馈的信息,判断注入操作的结果,以决定后续操作。如果网站不反馈具体的错误信息,只给出的一个模糊的反馈,如输入数据有误或者空白页面。这种情况下的注入就被称为SQL盲注。

DBPwAudit

  • DBPwAudit,数据库用户名密码破解工具,通过挂载字典对目标数据库进行密码暴力猜解,目前支持的数据库包括SQLServer、MySQL、Oracle、DB2。

HexorBase

  • HexorBase,图形化的密码破解与连接工具,支持MySQL、Oracle、PostgreSQL、SQLite和SQL Server五大主流数据库。允许安全人员指定用户字典和密码字典,然后实施字典攻击,并且允许安全人员使用破解出的用户名和密码,对数据库进行远程管理。
  • HexorBase允许通过代理进行数据包路由,甚至可以使用metasploit转向滑动来与远程无法访问的服务器进行通信,这些服务器隐藏在本地子网中。

jSQL

  • jSQL Injection是一个轻量级应用程序,用于从远程服务器中查找数据库信息。 jSQL Injection是免费的,开源的和跨平台的(Windows,Linux,Mac OS X,Solaris)。

MDBTools

mdb-sql是与MDB Tools一起分发的实用程序,允许使用有限的SQL子集语言来查询MDB数据库。

Oracle scanner

  • Oscanner是一个用Java开发的Oracle评估框架。

  • 它有一个基于插件的架构,并附带了几个的插件:
    • Sid枚举
    • 密码测试(常见&字典)
    • 枚举Oracle版本
    • 枚举账号权限
    • 枚举账号哈希
    • 枚举审计信息
    • 枚举密码策略
    • 枚举数据库链接

SIDGusser

针对Oracle的SID进行暴力枚举的工具。SID为Oracle实例名,Oracle连接字符串,通过实例名+用户+密码连接。当用户希望远程连接Oracle数据库时,则需要知道SID、用户名、密码及服务器的IP地址。

sqldict

SQLdict,是一个Windows程序,是一款用户名密码枚举工具,运行时会自动调用Kali Linux内置的Wine组件。渗透测试人员只要指定目标IP地址、账户名和密码字典,就可以实施密码爆破。

17.KaliSecruity-漏洞分析之数据库评估(二)

tnscmd10g

允许向Oracle数据库注入数据。

Sqlsus

一个开放源代码的MySQL注入和接管工具,使用perl编写,使用命令行界面。它可以获取数据库结构,注入自己的SQL语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等。使用时,首先使用sqlsus -g test.conf生成一个配置文件。在配置文件中,设置注入路径以及注入的各项参数,如修改our $url_start = “”,引号里写入输入注入点。然后使用sqlsus test.conf命令加载该文件,实施渗透测试。get databases获取数据库,set database设定数据库,get tables获取表。

Sqlninja

一款perl编写的,侧重于获得一个shell。Sqlninja是专门针对SQLServer的sql注入工具。可找到远程SQL服务器的版本和特征;对管理员口令“sa”进行强力攻击;一旦找到口令就将特权提升到“sa”权限;如果原始的xp_cmdshell被禁用后,就创建一个定制的xp_cmdshell;不需要FTP连接;为了找到目标网络的防火墙所允许的端口,可以实施针对目标SQL服务器的TCP/UDP端口扫描;逃避技术,使注入代码“模糊”不清,并且混淆/绕过基于强命的IPS和应用层防火墙;采用“盲目执行”攻击模式,可以用于发布命令并执行诊断;如果得到权限为sa,可以结合msf进一步对目标主机进行渗透。

Sqlmap

sqlmap是一个开源的渗透测试工具,可以自动检测和利用SQL注入漏洞并接管数据库服务器。 它配备了强大的检测引擎,为终极渗透测试仪提供了许多利基功能,以及从数据库指纹识别,从数据库中获取数据到访问底层文件系统以及在操作系统上执行命令的各种交换机。

18.Kali漏洞分析之WEB应用代理

BurpSuite

用于攻击web应用程序集成平台。Burb Suite通过默认端口8080上运行,使用这个代理,可以截获并修改从客户端到web应用程序的数据包。

OwaspZAP

OWASP Zed Attack Proxy Project攻击代理(简称ZAP),是一款查找网页应用程序漏洞的综合类渗透测试工具。它包含了拦截代理、自动处理、被动处理、暴力破解、端口扫描以及蜘蛛搜索等功能。OwaspZAP为会话类调试工具,调试功能对网站不会发起大量请求,对服务器影响较小。

paros proxy

是一个对Web 应用程序的web漏洞评估的代理程序,即一个基于Java 的web 代理程序,可以评估Web 应用程序的漏洞。它支持动态地编辑/查看HTTP/HTTPS,从而改变cookies和表单字段等项目。它包括一个Web 通信记录程序,Web 圈套程序(spider),hash 计算器,还有一个可以测试常见的Web 应用程序攻击(如SQL注入式攻击和跨站脚本攻击)的扫描器。

WebScarab

一款代理软件,包括HTTP代理,网络爬行、网络蜘蛛,会话ID分析,自动脚本接口,模糊测试工具, WEB格式的编码/解码,WEB服务描述语言和SOAP解析器等功能模块。WebScarab基于GNU协议,使用Java编写,是WebGoat中所使用的工具之一。

Vega

是一个开放源代码的web应用程序安全测试平台,Vega能够帮助你验证SQL注入、跨站脚本(XSS)、敏感信息泄露和其它一些安全漏洞。 Vega使用Java编写,有GUI,可以在Linux、OS X和windows下运行。Vega类似于 Paros Proxy, Fiddler, Skipfish and ZAproxy。

19.Kali漏洞分析之BurpSuite

Burp Suite包含拦截代理。 要使用Burp Suite,您必须配置浏览器以通过Burp Suite代理传递其流量。 这对于Firefox来说并不难,这是Kali Linux上的默认浏览器。
打开Firefox并单击菜单按钮打开Firefox设置菜单。 在菜单中,单击“首选项”。 这将打开Firefox中的“首选项”选项卡。拖到最后,选择proxy右边的setting,这将打开Firefox的代理设置。

Firefox内置了许多用于处理代理的选项。 对于实验,请选择“手动代理配置:”单选按钮。 这将打开一系列选项,允许您为多个协议中的每个协议手动输入代理的IP地址和端口号。 默认情况下,Burp Suite在端口8080上运行,并且由于您在自己的计算机上运行它,因此请输入127.0.0.1作为IP。 您主要担心的是HTTP,为了简便,可以选中标记为“将此代理服务器用于所有协议”的复选框。

在其他手动配置选项下面是一个允许您为代理写入免除项的框。 Firefox将名称localhost以及IP 127.0.0.1添加到此字段。 删除或修改它们,因为您将监视浏览器和本地托管的WordPress安装之间的流量,我在实际操作中选择了外网的网站,因此这个就可以不改。

配置Firefox后,继续配置Burp并启动代理。

默认情况下应该配置代理,但只需要一秒钟来仔细检查它。 如果要在将来更改设置,可以按照相同的方法进行更改。
在您的Burp Suite窗口中,单击选项卡顶行上的“Proxy”,然后单击下一级的“Options”。 屏幕的顶部应该显示“代理监听器”,并且有一个带有本地主机IP和端口8080的框。左边的框应该是“正在运行”列中的复选框。 如果这就是您所看到的,您就可以开始使用Burp Suite捕获流量了。

此时您已经将Burp套件作为Firefox的代理运行,并且您已准备好开始使用它来捕获从Firefox到本地托管的WordPress安装的信息。

Burp Suite可以收集的信息量非常惊人,它为测试Web应用程序开辟了新的可能性。





20.Kali漏洞分析之Fuzz工具

模糊测试是一种自动化软件测试技术,涉及提供无效,意外或随机数据作为计算机程序的输入。 然后监视程序是否存在异常,例如崩溃,内置代码断言失败或潜在的内存泄漏。 通常,模糊器用于测试采用结构化输入的程序。 例如,以文件格式或协议指定该结构,并将有效与无效输入区分开。 有效的模糊器生成“有效”的半有效输入,因为它们不会被解析器直接拒绝,但会在程序中更深层次地创建意外行为,并且“足够无效”以暴露尚未正确处理的极端情况。

Bed

一个纯文本协议的Fuzz工具,能够检查常见的漏洞,如缓冲区溢出,格式串漏洞,整数溢出等。BED通过加载插件,向目标主机发送攻击数据。如果发现目标无法响应,说明目标可能存在溢出区漏洞。

ohrwurm

ohrwurm是一款小巧简单的RTP模糊器,已在少数SIP电话上成功通过测试。

PowerFuzzer

Kali Linux自带的一款Web模糊测试工具。该工具基于各种开源模糊测试工具构建,集成了大量安全信息。该工具高度智能化,它能根据用户输入的网址进行自动识别XSS、SQL注入、CRLF、HTTP500等漏洞。同时,用户可以指定用户和密码等身份验证信息,也可以指定Cookie信息。同时,用户可以直接指定该工具是否使用代理。

Wfuzz


XSSer

跨站点“Scripter”(又名XSSer)是一种自动框架,用于检测,利用和报告基于Web的应用程序中的XSS漏洞。 它包含几个试图绕过某些过滤器的选项,以及各种特殊的代码注入技术。

教材十一、十二章作业

11章

启动apache服务器

关闭对抗措施:找到/etc/php5/apache2/php.ini,找到magic_ quotes_ gpc = On这一行改为magic_quotes_ gpc = Off

重启apache服务器

使用URL:http://www.sqllabmysqlphpbb.com访问thephpBB2server

用户输入用户名和密码后,登录.phpprogram将使用用户提供的数据来确定它们是否与数据库中任何记录的用户名和用户密码字段匹配。 如果匹配,则表示用户提供了正确的用户名和密码组合,应该允许登录。 与大多数其他Web应用程序一样,PHP程序使用标准SQL语言与其后端数据库进行交互。

修改登陆验证文件中的sql语句:

绕过密码登陆:

12章

启动apache服务器

使用URL:http://www.sqllabmysqlphpbb.com访问thephpBB2server
发布恶意消息以显示警报窗口

发布恶意消息以显示Cookie

猜你喜欢

转载自www.cnblogs.com/fang-yuan/p/10633057.html