Bootstrap

基础漏洞流量分析

sql注入

SQL注入原理

SQL 注入的攻击行为可以描述为通过用户可控参数中注入SQL 语法,破坏原有SQL 结构,达到编写程序时意料之外结果的攻击行为。其成因可以归结为以下两个原因叠加造成的:

  • 程序员在处理程序和数据库交互时,使用字符串拼接的方式构造SQL 语句
  • 未对用户可控参数进行足够的过滤,便将参数内容拼接到SQL 语句中。

SQL注入危害

  • 攻击者可以利用SOL 注入漏洞,可以获取数据库中的多种信息,例如,后台管理员账密,从而脱取数据库中的内容(脱库)。
  • 在特别的情况下还可以插入内容到数据库、删除数据库中的内容或者修改数据库内容
  • 如果数据库权限分配存在问题,或者数据库本身存在缺陷,攻击者可以利用SOL 注入漏洞直接获取WebSheLl或者服务器权限。

sql注入流量特征

  • 会有sql查询语句的关键字,如union、database()、select等,以及url编码。

以DVWA为例

在这里插入图片描述

  • 进行sql注入
    在这里插入图片描述
  • 使用wireshark抓包
    在这里插入图片描述

XSS

漏洞原理

  • XSS 通过将精心构造的代码(Javasript)注入到网页中,并由浏览器解释运行这段 J 代码,以达到恶意攻击的效果。当用户访问被XSS 脚本注入过的网页,XSS 脚本就会被提取出来,用户浏览器就会解析执行这段代码,也就是说用户被攻击了。整个XSS 攻击过程,涉及三个角色:
    • 攻击者
    • 客户端浏览器用户
    • 服务器

漏洞危害

  • XSS是利用 JS代码实现攻击,有很多危害:
    • 盗取各种用户账号
    • 窃取用户Cookie 资料,冒充用户身份进入网站
    • 劫持用户会话执行任意操作
    • 刷流量,执行弹窗广告
    • 传播蠕虫病毒

XSS流量特征

  • 会有

以DVWA为例

在这里插入图片描述

  • 利用XSS漏洞盗取cookie
    在这里插入图片描述
  • 使用wireshark抓包
    在这里插入图片描述

文件上传

漏洞成因

  • 服务器配置不当,开启了 PUT 方法
  • web 应用开放了文件上传功能,没有对上传的文件做足够的限制和过滤
  • 在程序开发、部署时,没有考虑以下因素,导致限制被绕过:
    • 代码特性
    • 组件漏洞
    • web容器漏洞
    • 系统特性

漏洞危害

  • 上传恶意代码(文件,程序),并执行恶意代码(文件,程序):
    • 直接上传后门文件并执行,导致网站沦陷
    • 通过恶意文件,利用其他漏洞拿到管理员权限《提权),导致服务器沦陷
  • 通过文件上传漏洞获得的网站后门,叫 webshell

文件上传流量特征

  • 该流量中包含文件名和后缀,以及类型,如果不能直接判断,还可以直接看上传文件的内容

以DVWA为例

在这里插入图片描述

  • 上传图片码
    在这里插入图片描述
  • 使用wireshark抓包
    在这里插入图片描述

文件包含

文件包含概述

  • 程序开发人员通常会把可重复使用函数或语句写到单个文件中,形成“封装”。在使用某个功能的时候,直接调用此文件,无需再次编写,提高代码重用性,减少代码量。这种调用文件的过程通常称为包含。

  • 程序开发人员都希望代码更加灵活,所以会把被包含的文件的路径设置为变量,来进行动态调用(包含),但正是由于这种灵活性,如果被包含文件的路径客户端可控,造成任意文件包含漏洞。

  • 几乎所有的脚本都会提供文件包含的功能,文件包含漏洞在 PHP 的Web 应用中居多,在JSP/ASP/ASPNET 程序中比较少。

文件包含语句
  • php提供了四个文件包含语句,四个语句直接略有不同
语句区别
include()多次包含,多次执行;
如果包含失败,脚本产生警告,继续运行
include_once()多次包含,一次执行
如果包含失败,脚本产生警告,继续运行
require()多次包含,多次执行;
如果包含失败,脚本产生警告,继续运行
require_once()多次包含,一次执行
如果包含失败,脚本产生警告,继续运行
相关配置
  • 文件包含是PHP 的基本功能之一,有本地文件包含与远程文件包含之分。简单来说,本地文件包含就是可以读取和打开本地文件,远程文件包含就是可以远程(方式)加载文件。可以通过php.ini 中的选项进行配置。
allow url fopen = On/off          #通过远程方式打开文件
allow url include = On/off        #通过远程方式包含文件

流量特征

  • 文件包含的流量特征是请求包中有非服务器允许访问的文件路径,或者文件路径中出现 data://、ftp:// 等协议或者目录穿越的关键字 …/…/ 等

以DVWA为例

在这里插入图片描述

  • 输入poc
http://10.9.47.73/dvwa_2.0.1/vulnerabilities/fi/?page=../../../phpinfo.php

在这里插入图片描述

  • 使用wireshark抓包
    在这里插入图片描述

shiro反序列化

漏洞原理

在 Apache shiro 的框架中,执行身份验证时提供了一个记住密码的功能(RememberMe),如果用户登录时勾选了这个选项。用户的请求数据包中将会在 cookie 字段多出一段数据,这一段数据包含了用户的身份信息,且是经过加密的。加密的过程是:用户信息=>序列化=>AES加密(这一步需要用密钥key)=>base64编码=>添加到 RememberMe Cookie 字段。勾选记住密码之后,下次登录时,服务端会根据客户端请求包中的 cookie 值进行身份验证,无需登录即可访问。那么显然,服务端进行对 cookie 进行验证的步骤就是:取出请求包中 rememberMe 的cookie值 => Base64解码=>AES解密(用到密钥 key )=>反序列化。

靶场搭建

  • 启动docker
service docker start

在这里插入图片描述

  • 拉起shiro镜像
docker pull medicean/vulapps:s_shiro_1

在这里插入图片描述

  • 启动靶场映射到80
docker run -d -p 80:8080 medicean/vulapps:s_shiro_1

在这里插入图片描述

  • 访问靶场
    在这里插入图片描述
  • 用户名密码随便写,勾选remember me
    在这里插入图片描述
  • 查看bp抓取数据包
    在这里插入图片描述

使用shiro工具

在这里插入图片描述

  • 命令执行
    在这里插入图片描述
  • 使用wireshark抓包
    在这里插入图片描述
    base64 解码>解密>反序列化后为利用链的 exp

暴力破解

以dvwa为例

在这里插入图片描述

  • 使用bp进行爆破
    在这里插入图片描述
  • 使用wireshark进行抓包
    在这里插入图片描述

命令执行

以dvwa为例

在这里插入图片描述

  • 进行命令执行
    在这里插入图片描述
  • 使用wireshark抓包
    在这里插入图片描述
;