2024年护网行动全国各地面试题汇总(3)作者:————LJS
应急响应基本思路和流程
- 收集信息:收集客户信息和中毒主机信息,包括样本
- 判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等
- 抑制范围:隔离使受害⾯不继续扩⼤
- 深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源
- 清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产
- 产出报告:整理并输出完整的安全事件报告
Windows入侵排查思路
- 检查系统账号安全
- 查看服务器是否有弱口令,远程管理端口是否对公网开放(使用netstat -ano命令、或者问服务器管理员)
- lusrmgr.msc命令查看服务器是否存在可疑账号、新增账号,如有管理员群组的(Administrators)里的新增账户,如有,请立即禁用或删除掉
- 用 D 盾或者注册表中查看服务器是否存在隐藏账号、克隆账号
- 结合日志,查看管理员登录时间、用户名是否存在异常
- 检查方法:Win+R 打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”,导出 Windows 日志--安全,利用 Log Parser 进行分析
- 检查异常端口、进程
- netstat -ano检查端口连接情况,是否有远程连接、可疑连接
- 任务管理器-进程
- 检查启动项、计划任务、服务
- 检查系统相关信息
- 查看系统版本以及补丁信息
- 查找可疑目录及文件
- 日志分析
安全设备
- 1.你对市面上安全设备了解多少,具体是哪几种类型?
- 奇安信:椒图,鹰图
1. 椒图(Jiaotu):椒图是奇安信的一款高级威胁防御设备,主要用于网络入侵检测与防御(Intrusion Detection and Prevention,简称IDP)。它能够通过实时监测和分析网络流量,识别和阻止恶意攻击、漏洞利用和其他网络威胁。椒图采用多种技术手段,包括基于规则的检测、行为分析、异常检测等,以提供全面的网络安全防护。
·
2. 鹰图(Yingtu):鹰图是奇安信的一款高级威胁防御平台,主要用于网络安全事件响应和威胁情报分析。它提供了全面的网络安全监控和分析功能,能够实时监测和检测网络中的异常活动,并提供详细的安全事件报告和威胁情报分析。鹰图还支持与其他安全设备和系统的集成,以提供更强大的网络安全防护能力。- IPS,IDS,WAF,APT检测,态势感知,蜜罐,防篡改等等具体情况根据面试而定
IPS使用多种技术来检测和防御入侵。其中一种常见的方法是使用规则集,也称为签名。规则集是预定义的模式或特征,用于识别已知的攻击和漏洞利用。当IPS检测到与规则集中的模式匹配的网络流量时,它会触发警报或阻止流量。另一种方法是使用行为分析。行为分析是基于对正常网络活动的学习和建模,来检测异常行为。IPS会分析网络流量的模式、流量量、协议等特征,并与已知的正常行为进行比较。如果检测到与已知模式不符的行为,IPS会触发警报或阻止流量。
NIDS通常使用被动监听的方式,监测经过它的网络流量,并分析流量中的数据包,以识别恶意活动。NIDS可以通过规则集(也称为签名)来检测已知的攻击和漏洞利用。当NIDS检测到与规则集中的模式匹配的网络流量时,它会生成警报或报告给管理员。主机IDS(HIDS)监测单个主机的活动,它位于主机上,通过监测主机的日志、事件和系统调用等来识别潜在的入侵行为。HIDS可以检测到主机上的异常行为,如未经授权的文件访问、异常进程行为等。HIDS通常使用基于行为分析的方法来检测入侵行为,它会学习和建模主机的正常行为,并与实际行为进行比较,以检测异常行为。
基于网络的WAF位于网络边界或Web应用程序前端,它监测进入Web应用程序的流量,并根据预定义的规则集来检测和阻止恶意活动。这些规则集可以包含常见的Web攻击模式,如SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。当WAF检测到与规则集中的模式匹配的流量时,它可以阻止请求或触发警报。
基于主机的WAF位于Web服务器或应用程序服务器上,它通过监测服务器上的网络流量、日志和应用程序行为来检测和阻止恶意活动。基于主机的WAF可以更深入地检测和保护Web应用程序,因为它可以访问应用程序的内部数据和行为。
Sql注入
- 1、sql注入漏洞原理
- 开发者没有在网页传参点做好过滤,导致恶意 sql 语句拼接到数据库进行执行
- 2、sql注入分类
- 联合注入 、布尔盲注 、时间盲注 、堆叠注入 、宽字节注入 、报错注入
- 3、堆叠注入原理
- 在 mysql 中,分号 代表一个查询语句的结束,所以我们可以用分号在一行里拼接多个查询语句
- 4、宽字节注入原理
- a 数据库使用 gbk 编码
- b 使用反斜杠进行转义
- 5、报错注入原理:
- a 报错注入函数,例如:floor() 、group by 、exp() 、updatexml() 、extractvalue()
- 6、Dnslog注入原理
- a 利用 load_file() 函数读取共享文件
- b共享文件形式:\hex(user()).dnslog.cn/ 或者 \host\
- c 利用 mysql 的 load_file() 函数解析拼接过的 dnslog 域名,进而带出数据
- 7、联合注入的步骤
- a 找传参点
- b 判断闭合符
- c 判断列数
- d 判断显示位
- e 查询database()
- f 查表
- g 数据
- 8、盲注分类
- a 布尔盲注(页面回显 长度 :burp 里的 Content-Length )
- b 时间盲注(页面回显 时间 :burp 包的 右下角 )、Dnslog
- 9、盲注函数
- if() 、sleep() 、substr() 、left() 、limit 、ascii() 、length()
- 10、判断闭合符方式:
- 构造真和假:id=1 and 1=1 、id=1' and 1=2 、=1" or 1=1 、') or 1=2 、and 234=234 、and 1 、or 1 、and 1^1 、&&1 、||0
11、sql注入绕waf
- a 代替空格:/**/ 、/!/ 、+ 、%09 、%0a 、%00 、括号
- b 关键字:16进制 、char() 、字符串拼接
- c 等价函数替换:sleep()==benchmark() 、if()==case when then else end 、ascii()==ord() 、substr()==substring()
- d 内联注释:/*! */
12、sqlmap常用参数
- a -r :用于post型注入,指定 txt 文件的 post 数据包
- b -u :指定url,通常用于 get 型注入
- c -p:指定注入点,例如: python sqlmap.py-u http://127.0.0.1/index.php?id=1&mid=2&page=3 -p "page"
- d * :指定注入点,例如:python sqlmap.py-u http://127.0.0.1/index.php?id=1*&mid=2&page=3* 注意:* 号也可以用于伪静态的注入,用法同前面一样,直接在注入点后面加 *
- e -m :用于sqlmap批量跑注入,指定一个含有多个 url 的 txt 文件D
- f --os-shell :用户获取 shell
- g --os-cmd :执行系统命令
- h --tamper :指定绕过用的脚本文件
- i --level 3 :指定测试等级,等级越高,检查项越多,共 1-5 个等级
- j --risk 3 :指定风险等级,等级越告,payload 越复杂,共 1-3 个等级
- k --random-agent :指定随机 agent 头
- l --batch :默认选项
- m --dbms :指定数据库类型
13、sql注入获取 webshell 的方式
- a 写文件(需要写权限)
- b 写日志文件(不要学权限,但是需要通过命令开启日志记录功能,而且还需要把日志文件的路径指定到网站根路径下面)
14、sql注入防御
- a 过滤敏感字符,例如:information_schema 、into out_file 、into dump_file 、' 、" 、()
- b 预编译
- c 站库分离:增加攻击者的时间成本、防止通过数据库拿到webshell
15、mysql提权方式
- a mof提权
- b udf提权
a) MOF提权:MOF(Management Object Format)提权是一种通过修改Windows管理对象文件来获取系统管理员权限的方法。在MySQL中,可以使用MOF提权来获取系统级别的权限,从而绕过MySQL的权限限制。
MOF提权的步骤如下:1. 修改MySQL的配置文件my.ini,将MySQL服务以SYSTEM权限运行。2. 创建一个恶意的MOF文件,其中包含执行提权操作的命令。3. 使用mofcomp命令将恶意的MOF文件编译成WMI(Windows Management Instrumentation)对象。4. 通过WMI执行编译后的MOF文件,从而触发提权操作。通过MOF提权,攻击者可以获取系统管理员权限,并绕过MySQL的权限限制,执行更高级别的操作。
b) UDF提权:UDF(User-Defined Functions)提权是一种通过创建和加载自定义函数来获取系统管理员权限的方法。在MySQL中,UDF提权可以通过创建恶意的自定义函数并将其加载到MySQL服务器中来实现。
UDF提权的步骤如下:1. 创建一个恶意的C/C++函数,其中包含执行提权操作的代码。2. 编译恶意函数为动态链接库(DLL)文件。3. 在MySQL服务器上启用UDF功能,并将恶意的DLL文件加载为自定义函数。4. 执行恶意的自定义函数,从而触发提权操作。通过UDF提权,攻击者可以执行系统级别的操作,如创建新的管理员用户、修改系统配置等。这种提权方式利用了MySQL的UDF功能,绕过了MySQL的权限限制,获取更高的权限。XSS:跨站脚本攻击
- 1、XSS原理
- 开发人员没有做好过滤,致我们可以闭合标签进而插入并执行恶意JS代码
- 2、xss类型分类
- a DOM型 :由 DOM 文档完成解析
- b 反射型 :即插即用,没有存储在数据库里面
- c 存储型 :被存储在数据库里面,造成持久型的攻击
- 3、常用的JS函数
- a document.cookie() :弹出当前网址的浏览器 cookie
- b console.log('xss') :在控制台输出日志
- 4、绕过方式
- a 改变大小写:<script>
- b 编码绕过( html 实体编码、 十进制十六进制八进制编码、 unicode 编码)、
- c 关闭标签:利用大于号 > 关闭标签使得xss生效
- d 双写饶过:<scr<script>ipt>
- e 可以使用 空格 , 换行 ,tab 键或者 /**/ , /!a/,的形式绕过 关键词的检测
- f 用/代替空格
- g 用 反引号 代替 括号 、双引号
- h 用 throw 代替括号
- i 用 html 实体编码 : 代替 冒号
- j 用 jsfuck 编码绕过大部分字符过滤
- 5、扫描工具
- xsstrick,AWVS,nmap
- 6、XSS钓鱼平台
- kali工具:BEEF
- 7、xss防御
- 过滤敏感字符
- a 例如:aler() ,script ,onerror
- b 增加 httponly :禁止前端执行JS代码i
- 8、如何从根本防御XSS
- 进行预编译
文件上传
- 1、漏洞原理
- 开发人员未在上传点对文件名和文件内容做严格的过滤
- 2、如何绕过黑名单
- 1 特殊后缀名绕过:php3-php5 、 phtml 、通过修改 httpd.conf 文件按可以实现解析任意后缀名
- 2 通过上传 .htaccess 文件可以实现解析任意后缀名
- 3 上传 .user.ini 文件,利用包含实现getshell
- 4 空格绕过,利用的是 windows 和 linux 不允许文件名出现包括 空格 在内的特殊字符,例如上传:1.php[空格]
- 5 点绕过,windows 不允许出现点结尾的文件名,会自动去掉文件名后面的点, linux 允许出现点结尾的文件
- 6 流文件绕过,windows 中,::$DATA 符号后面的内容会被当成字节流数据,上传之后会自动去掉 ::$DATA 以及后面的内容
- 7 双写后缀名,例如上传 1.pphphp ,只适用于将 php 替换为空的情况
- 3、绕过白名单
- 1 00 截断
- 2 配合文件包含
- 4、对文件内容进行绕过
- 1 填充垃圾字符
- 2 免杀
- 5、绕过前端验证
- 1 在浏览器关闭前端 JS 功能
- 2 burp 抓包修改
文件包含
- 1、文件包含函数
- a include() 、 require 、 include_once() 、 require_once()
- 2、文件包含支持的协议
- a php 伪协议:fiter 、 input 、 data 、 zip 、phar
- b file 协议
- c http 和 https
- 3、利用条件
- a 本地文件包含不需要开启 allow_url_* 参数
- b 部分伪协议需要开启一个或者两个 allow_url_* 参数
- 4、防御
- a 过滤关键字,例如:php:// 、 file:// 、 http://
- b 关闭 allow_url_* 参数
命令执行
- 1、拼接 & 、&& 、 | 、 ||
- 2、原理:在操作系统中, & 、&& 、 | 、 || 都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令
CSRF:跨站请求伪造
- 1、原理:
- 在 cookie 有效期范围内,诱使受害者点击某个页面,进而执行非受害者本意的操作。
- 2、防御
- a 验证 referer字段
- b 加 token 验证
SSRF:服务器请求伪造
- 1、原理
- 大都是由于服务端提供了从其他服务器获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。
- 2、支持的协议
- a http://
- b https://
- c dict://
- d ftp://
- e file1
- f php 伪协议
- g gopher://
- 3、危害
- a 内外网的端口和服务扫描
- b 主机本地敏感数据的读取
- c 内外网主机应用程序漏洞的利用
- d 内外网Web站点漏洞的利用
- 4、防御
- a 过滤 file:// 、 gocher:// 等,过滤 端口
- b 把网站需要访问的内网资源路径写死,不从外部接收
信息泄露
- 1、原理:
- 信息泄露可能是不慎泄露给浏览该网站信息用户的,也有可能是攻击者通过恶意的交互从网站获得数据。例如.svn、.git、.ds_store
- 2、利用手法:
- a 通过 robots.txt 泄露网站隐藏目录/文件.或者站点结构
- b 网站站点的 备份文件 未删除导致的泄露,可能会泄露网站源代码
- c 没有正确处理网站的一些 错误消息 ,在错误消息中泄露数据库表,字段等
- d 一些高度敏感的用户信息,银行账号等泄露
- e 在源代码中泄露数据库 账号密码 ,等等(GitHub)
- f 网站某些程序的细微差别提示是否存在某些资源,用户名
中间件漏洞
- Apache
- a 解析漏洞:多后缀名解析漏洞(从后往前解析,一直解析到可识别的后缀)、罕见
- b 后缀名解析漏洞、.htaccess解析漏洞
- 命令执行漏洞:CVE-2021-42013
漏洞的原因是Apache HTTP Server在处理某些HTTP请求时,未正确过滤用户提供的输入,导致攻击者可以在请求中注入恶意的命令。攻击者可以通过在请求的查询字符串或请求头中插入特定的命令来利用该漏洞。
当受影响的服务器收到恶意请求时,攻击者可以通过注入的命令执行任意操作,包括读取、修改或删除服务器上的文件,以及在服务器上执行任意的系统命令。这可能导致服务器的敏感信息泄露、服务中断或远程代码执行等安全问题。
为了利用该漏洞,攻击者需要发送一个特制的HTTP请求,并在请求中注入恶意命令。攻击者可以通过修改请求的查询字符串或请求头来实现注入。例如,攻击者可以在查询字符串中添加类似于`|命令`或`&&命令`的注入语句,以执行任意的系统命令。IIS
- a 文件名解析漏洞,从前往后解析,遇到分号就截断,忽略分号后面的内容
- 例如:1.asp;.jpg
- b 罕见后缀名,例如:.asa、.cer、.cdx
- c IIS 5.X/6.0的文件夹解析漏洞,例如:将文件夹以1.asp命名,该文件夹中的所有文件都会被当做asp文件执行:1.asp/1.jpg、1.asa/1.jpg、1.cer/1.jpg、1.cdx/1.jpg
- d IIS 7.0/IIS 7.5的CGI解析漏洞,例如上传1.jpg然后访问
当IIS服务器收到一个CGI请求时,它会尝试解析并执行CGI脚本。然而,由于缺乏适当的安全检查,攻击者可以通过在请求中包含恶意的CGI脚本来执行任意的代码。
具体来说,攻击者可以通过上传一个看似是图片文件的CGI脚本(如1.jpg)并访问它来利用该漏洞。当服务器收到请求时,它会将1.jpg文件传递给CGI处理程序进行解析和执行。由于CGI处理程序没有正确验证文件类型,它会错误地将1.jpg文件当作CGI脚本来执行,从而导致攻击者的恶意代码被执行。
成功利用该漏洞的攻击者可以执行任意的代码,这可能导致服务器完全被控制,进而造成敏感信息泄露、服务中断或其他安全问题。e IIS PUT文件上传漏洞
- f HTTP.sys远程代码执行漏洞:MS15-034
该漏洞的原因是在HTTP.sys内核驱动程序中存在一个缓冲区溢出漏洞,攻击者可以通过发送特制的Range请求头(Range: bytes=0-999表示客户端只请求资源的前1000个字节,Range: bytes=0-18446744073709551615表示请求的范围从0到2^64-1,这是一个巨大的范围。)来触发该漏洞。当HTTP.sys处理该恶意请求时,缓冲区溢出会导致内存被破坏,从而使攻击者能够执行任意的远程代码。
攻击者可以通过发送恶意的HTTP请求来利用该漏洞。这些请求通常包含一个特定的Range请求头,其中包含一个巨大的范围值,超出了HTTP.sys内核驱动程序所能处理的范围。当服务器收到这样的请求时,HTTP.sys会尝试将数据复制到一个缓冲区中,由于缓冲区溢出的存在,攻击者可以在溢出的数据中插入恶意的代码。
成功利用该漏洞的攻击者可以执行任意的远程代码,这可能导致服务器完全被控制,进而造成敏感信息泄露、服务中断或其他安全问题。- Nginxga CGI解析漏洞,例如上传1.jpg然后访问1.jpg/.php
漏洞的原因是在Nginx的配置中CGI解析不当。当Nginx服务器收到一个请求时,如果请求的URL中包含一个已存在的文件(如1.jpg),并且在文件名后面添加了斜杠和一个扩展名(如1.jpg/.php),Nginx会错误地将该请求当作CGI脚本解析并执行。
具体来说,攻击者可以通过上传一个看似是图片文件的恶意CGI脚本(如1.jpg)并访问它(如1.jpg/.php)来利用该漏洞。当Nginx服务器收到请求时,它会将1.jpg/.php文件传递给CGI解析器进行解析和执行。由于配置不当,Nginx会将该文件当作CGI脚本来执行,从而导致攻击者的恶意代码被执行。
成功利用该漏洞的攻击者可以执行任意的代码,这可能导致服务器完全被控制,进而造成敏感信息泄露、服务中断其他
- 1、IIS:目录解析漏洞、分号截断、CGI解析漏洞、PUT文件上传漏洞、MS15-034
- 2、Apache:多后缀名解析漏洞、目录遍历、命令执行漏洞:CVE-2021-42013
- 3、Nginx:CGI解析漏洞
- 4、Tomcat:后台部署war包、PUT文件上传漏洞、反序列化漏洞、样例目录session操控漏洞
下面是详细解释后台部署war包的步骤:- 1. 准备war包:首先,需要将Web应用程序打包成war格式。war包是一种特殊的压缩文件,包含了Web应用程序的所有组件,如HTML、JSP、Servlet、类文件、配置文件等。
- 2. 将war包上传到Tomcat服务器:将准备好的war包上传到Tomcat服务器上。可以通过多种方式实现上传,例如使用Tomcat管理界面、FTP、SCP等。上传后,war包会被存储在Tomcat服务器的webapps目录下。
- 3. Tomcat自动解压war包:一旦war包被上传到webapps目录,Tomcat会自动检测并解压它。解压后,Tomcat会在webapps目录下创建一个与war包同名的目录,并将解压后的文件和目录放置在其中。
- 4. 应用程序部署完成:解压后的目录中包含了Web应用程序的所有组件。Tomcat会自动加载并运行这些组件,使得Web应用程序可以在Tomcat服务器上正常运行。
- 5. 访问Web应用程序:一旦Web应用程序部署完成,可以通过访问Tomcat服务器的URL来访问该应用程序。
- URL的格式通常是`http://<hostname>:<port>/<context>`,其中`<hostname>`是Tomcat服务器的主机名或IP地址,`<port>`是Tomcat服务器的端口号,`<context>`是Web应用程序在Tomcat中的上下文路径。
1. 后台部署war包漏洞:
攻击者利用该漏洞的步骤如下:
- 攻击者将恶意war包文件命名为合法的文件名,并将其上传到Tomcat的webapps目录下。
- Tomcat会自动检测并解压war包,生成对应的应用程序目录。- 应用程序目录中包含了攻击者上传的恶意代码。
- Tomcat会自动加载并运行这些恶意代码,导致攻击者可以执行任意的代码,包括远程命令执行、文件操作、数据库访问等。
为了修复这个漏洞,Tomcat用户应该升级到最新版本,并应用厂商发布的安全补丁。此外,可以考虑限制对webapps目录的写入权限,只允许受信任的用户或IP地址上传war包。还可以使用防火墙或其他网络安全设备来过滤和监控对webapps目录的访问,以增加安全性。
2. 样例目录session操控漏洞:样例目录session操控漏洞是指攻击者可以通过访问Tomcat的样例目录中的应用程序,获取或操控其他用户的会话(session)信息的漏洞。
具体来说,攻击者利用该漏洞的步骤如下:
- 攻击者访问Tomcat的样例目录中的应用程序,如示例的登录页面。- - Tomcat会为攻击者创建一个新的会话,并分配一个会话ID(session ID)。
-
- 攻击者可以通过获取其他用户的会话ID,来冒充这些用户,执行未经授权的操作。攻击者可以使用不同的方式获取其他用户的会话ID,如通过URL重定向、跨站脚本攻击(XSS)等。
为了修复这个漏洞,Tomcat用户应该升级到最新版本,并应用厂商发布的安全补丁。此外,可以考虑禁用或删除样例目录,以减少攻击面。还可以使用安全编码和输入验证来防止XSS攻击,并使用安全的会话管理机制,如使用安全的会话ID生成算法、设置会话超时时间等,以增加安全性
- 5、Weblogic:后台部署war包、一大堆反序列化漏洞、未授权RCE漏洞
补充:RESTful API(Representational State @eval Transfer API)是一种基于HTTP协议的Web服务接口设计风格,用于实现不同系统之间的数据交互。它通过使用HTTP方法(如GET、POST、PUT、DELETE等)和URL来对资源进行操作和访问。在Weblogic中,管理控制台提供了一些RESTful API接口,用于管理和监控Weblogic服务器。这些接口允许用户通过发送HTTP请求来执行各种操作,如创建和部署应用程序、配置服务器参数、查看服务器状态等。
然而,在某些版本的Weblogic中,存在一个未授权的RESTful API接口,这意味着该接口没有进行身份验证。攻击者可以通过发送特定的HTTP请求到该接口,执行任意的代码,而无需提供有效的凭证。
Weblogic是一款Java应用服务器,广泛用于企业级应用程序的部署和管理。在某些版本的Weblogic中,存在一个安全漏洞,攻击者可以通过发送特制的请求包来利用该漏洞。
具体来说,该漏洞的原因是Weblogic管理控制台中存在一个未授权的RESTful API接口,攻击者可以通过发送特定的HTTP请求到该接口,执行任意的代码。由于该接口未经身份验证,攻击者无需提供有效的凭证即可利用该漏洞。成功利用该漏洞的攻击者可以执行任意的代码,这可能导致服务器完全被控制,进而造成敏感信息泄露、服务中断或其他安全问题。
为了修复这个漏洞,建议Weblogic用户及时升级到最新版本,并应用厂商发布的安全补丁。此外,可以考虑限制对Weblogic管理控制台的访问,并采取其他安全措施,如强密码策略、网络隔离等,以减少攻击面。
- 6、Jboss:后台部署war包、一堆反序列化
框架漏洞(研判必备)
thinkphp5.x RCE
- 基本都是对模型,对方法的路由处理有误导致RCE,反序列化漏洞的话需要有反序列化点
- thinkphp5.0.x漏洞原因是对url处理有关,导致远程命令执行
漏洞的原因是由于ThinkPHP框架在处理URL参数时存在安全漏洞。具体来说,当应用程序接收到一个URL参数时,框架会自动将该参数解析为控制器和方法,并执行对应的代码。然而,在解析过程中,ThinkPHP没有对参数进行充分的验证和过滤,导致攻击者可以通过构造恶意的URL参数来执行任意的PHP代码。
攻击者可以通过在URL参数中注入PHP代码,例如通过使用`eval()`函数或其他执行代码的方法。一旦恶意代码被执行,攻击者可以在受影响的服务器上执行任意的操作,包括但不限于:- 读取、修改或删除服务器上的文件和数据库。- 执行系统命令,获取服务器的敏感信息。- 控制服务器并进行远程操作。
为了防止该漏洞的利用,开发人员可以采取以下措施:- 及时升级和更新ThinkPHP框架到最新版本,以修复已知的安全漏洞。- 对URL参数进行严格的验证和过滤,确保只接受符合预期格式和内容的参数。- 避免使用`eval()`等容易导致RCE漏洞的函数,尽量使用更安全的方法来执行代码。- 对于用户输入的内容,进行适当的编码和转义,以防止恶意代码的注入。Struts2
- 1、原理:struts2是一个框架,他在处理action的时候,调用底层的getter/setter来处理http的参数,将每一个http的参数声明为一个ONGL。导致命令执行
- 框架特点:文件后缀名”.action ” “.do”
具体来说,Struts2框架在处理HTTP请求参数时,会将参数值作为一个字符串,然后将其解析为OGNL表达式。攻击者可以构造恶意的请求,将恶意的OGNL表达式作为参数值传递给框架。当框架在处理参数时,会将恶意的OGNL表达式当作合法的代码执行,从而导致命令执行漏洞。
其中,getter方法用于获取对象的属性值,而setter方法用于设置对象的属性值。攻击者可以通过构造恶意的参数值,来执行任意的代码,包括但不限于执行系统命令、访问敏感文件等操作。攻击者可以利用这个漏洞来获取系统权限、执行远程命令等。
为了防止Struts2框架的命令执行漏洞,开发人员可以采取以下措施:- 及时升级和更新Struts2框架到最新版本,以修复已知的安全漏洞。- 对用户输入进行严格的验证和过滤,确保只接受预期格式和内容的数据。- 配置安全的访问控制策略,限制用户的访问权限。- 避免使用动态执行代码的功能,如OGNL表达式的使用。- 使用安全的编码和转义方法,防止恶意代码的注入。- 2、例子:
- S2-062漏洞形成的原因是struts在处理标签的name属性时,将用户输入当作表达式进行二次解析,导致OGNL表达式注入。
- s2-046 通过Content-Type这个header头 filename 后面需要00截断,注入OGNL语言,进而执行命令,通过不恰当的 filename 字段或者大小超过 2G 的 Content-Length 字段来触发异常,进而导致任意代码执行。
Shrio 反序列化
- 1、原理:Apache Shiro是一个Java安全框架,执行身份验证、授权、密码和会话管理,Shiro提供了RememberMe的功能,当用户关闭浏览器,下次再打开浏览器访问时,还是能记住我是谁,无需登录即可访问。
- 其实很多网站都有这功能,Shiro对RememberMe的Cookie做了加密处理,在CookieRememberMeManaer类中将Cookie中RememberMe字段内容分别进行序列化、AES加密、Base64编码等操作,但是默认的加密AES Key是硬编码进去的,都知道这个Key是什么,所以在逆向操作反序列化、Base64解密的时候,攻击者就可以伪造恶意数据通过反序列化远程执行命令。
Fastjson 反序列化
- 通过Fastjson反序列化漏洞,攻击者可以传入一个恶意构造的JSON内容,程序对其进行反序列化后得到恶意类并执行了恶意类中的恶意函数,进而导致代码执行。
补充:1. 普通反序列化:Fastjson可以直接将JSON字符串转换为Java对象。通过调用`JSON.parseObject()`方法,传入JSON字符串和目标Java对象的Class类型,Fastjson会自动将JSON字符串中的数据映射到Java对象的对应属性上。
2. 泛型反序列化:Fastjson支持将JSON字符串转换为泛型类型的Java对象。通过使用`TypeReference`类,可以定义一个泛型类型的引用,然后将其传递给`JSON.parseObject()`方法进行反序列化。
3. 自定义反序列化:Fastjson允许用户通过实现`com.alibaba.fastjson.parser.deserializer.ObjectDeserializer`接口来自定义反序列化逻辑。通过实现`deserialize`方法,可以在反序列化过程中对JSON字符串进行自定义处理,例如处理特殊的数据格式或者进行数据校验
漏洞的根本原因是Fastjson在处理反序列化时,没有对反序列化的对象进行充分的验证和过滤。攻击者可以构造恶意的JSON数据,将恶意代码注入到应用程序中。当应用程序对该数据进行反序列化操作时,恶意代码将被执行,从而导致安全漏洞。
具体来说,攻击者可以通过构造恶意的JSON数据,将恶意代码嵌入到对象的字段中。当Fastjson对该JSON数据进行反序列化操作时,恶意代码将被执行。攻击者可以利用这个漏洞来执行任意的命令,获取敏感信息,或者进行其他恶意活动。redis未授权
- 1、redis在6379端口
- 2、写webshell
- 3、写公钥实现免密登录
- 4、写计划任务实现反弹shell
- 5、主从复制getshell
Redis未授权访问漏洞是指未经身份验证或授权的情况下,攻击者可以直接访问Redis数据库。这种漏洞通常是由于管理员未正确配置Redis的访问控制机制,如密码认证或IP白名单,或者是由于使用了默认的弱密码或未更改默认端口而导致的。
攻击者可以通过扫描公网IP或者利用自动化工具来寻找未授权访问的Redis实例。一旦攻击者获得了未授权访问权限,他们可以执行以下恶意行为:
1. 数据泄露:攻击者可以读取、修改或删除Redis数据库中的数据,包括敏感信息如用户凭证、客户机会话等。
2. 数据篡改:攻击者可以修改Redis数据库中的数据,例如篡改配置信息、修改业务数据等。3. 拒绝服务:攻击者可以通过写入大量数据或者删除关键数据来导致Redis服务不可用。
为了防止Redis未授权访问漏洞,可以采取以下措施:
1. 配置密码认证:在Redis配置文件中设置密码,并确保密码的复杂度和安全性。
2. 配置IP白名单:限制允许访问Redis的IP地址范围,只允许受信任的主机访问。
3. 更改默认端口:将Redis的默认端口(6379)更改为非标准端口,以减少被扫描到的风险。4. 更新和升级:及时更新Redis版本,并关注官方发布的安全补丁和建议。
5. 安全审计:定期审计Redis的配置和访问日志,以及监控Redis的网络流量和性能。流量溯源
- 可利用流量工具 wireshark 进行溯源:
- 查看 eval、 z0、 shell whoami 等关键字,查看出现次数过多的时候, 需要查看是哪个页面发起的请求,有可能是 webshell
- 通过 WireShark 工具快速搜索关键字,定位到异常流量包
- 找出异常 IP 和所上传的内容,查看是否为 webshell
- 如何定位到攻击IP:
- 首先通过选择 - 统计 - 对话查看流量的走向情况, 定位可疑的 IP 地址
- 根据定位到的 IP 地址,尝试对上传的 webshell 进行定位
- ip.addr == ip &&httpmatches"uploadllevallselectlxp_cmdshell" && http.request.method == "POST"
- 查找到 webshell 后尝试溯源漏洞位置
- http.request.uri contains "webshell.php"
- 定位到最开始 webshell 执行或上传的时候
- 根据最开始的 HTTP 上传包或者其他漏洞特征定位漏洞类型
溯源工具
- wireshark
- wireshark 简单的过滤规则
- 过滤ip:
- 过滤源 ip 地址:ip.src1.1.1.1
- 目的 ip 地址:ip.dst1.1.1.1
- 过滤端口:
- 过滤80端口:tcp.port == 80
- 源端口:tcp.srcport == 80
- 目的端:tcp.dstport == 80
- 协议过滤:直接输入协议名即可,如 http 协议 http
- http 模式过滤:过滤 get/post 包 httprequest.mothod == "GET/POST"
常用取证工具
- Wireshark、xplico、 Volatility、 FastlR Collector、Autopsy、 Dumplt、 FTK Imager、Foremost、Scalpel、 Bulk_ exetractor 等
Volatility:Volatility是一款专门用于内存取证和分析的工具。它可以帮助取证人员从内存转储中提取操作系统和进程的信息,包括文件、网络连接、注册表等。Volatility支持多种操作系统,适用于恶意代码分析和取证调查。
DumpIt:DumpIt是一款用于取证的内存转储工具,可用于获取目标计算机的内存快照。它可以帮助取证人员分析内存中的进程、网络连接、注册表等信息,有助于发现和分析恶意活动。
Foremost:Foremost是一款开源的文件恢复工具,用于从存储介质中恢复已删除的文件。它可以帮助取证人员查找和提取存储介质中的文件,包括图像、视频、文档等。Foremost支持多种文件类型和数据格式。
相关文章:

2024年护网行动全国各地面试题汇总(3)作者:————LJS
应急响应基本思路和流程 收集信息:收集客户信息和中毒主机信息,包括样本判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等抑制范围:隔离使受害⾯不继续扩⼤深入分析:日志分…...

计算机专业的学生要达到什么水平才能进入大厂工作?越早知道越好
计算机专业的学生要达到什么水平才能进入BAT等大厂工作?越早知道越好. 一、算法题 各大公司笔试、面试基本都考这个,别的不说,《剑指Offer》所有题目背下来,Leetcode高频题目刷个一两百遍,搞过ACM也可以,…...

巡检费时费力?试试AI自动巡检
随着企业IT规模不断增长,设备、系统越来越多,运维工作压力也与日俱增。保障设备、系统健康稳定地运行,日常巡检是运维工作不可或缺的部分。通过巡检可以及时发现设备、系统的异常问题,提前预防及时处理,避免问题扩大产…...

46-4 等级保护 - 网络安全等级保护概述
一、网络安全等级保护概述 原文:没有网络安全就没有国家安全 二、网络安全法 - 安全立法 中华人民共和国主席令 第五十三号 《中华人民共和国网络安全法》已于2016年11月7日由中华人民共和国第十二届全国人民代表大会常务委员会第二十四次会议通过,并自2017年6月1日起正式…...

css引入方式有几种?link和@import有什么区别?
在CSS中,引入外部样式表的方式主要有两种:<link>标签和import规则。 使用<link>标签引入外部样式表: <link rel"stylesheet" href"path/to/style.css">这种方式是在HTML文档的<head>部分或者…...

使用‘消除’技术绕过LLM的安全机制,不用训练就可以创建自己的nsfw模型
开源的大模型在理解和遵循指令方面都表现十分出色。但是这些模型都有审查的机制,在获得被认为是有害的输入的时候会拒绝执行指令,例如会返回“As an AI assistant, I cannot help you.”。这个安全功能对于防止误用至关重要,但它限制了模型的…...

解决使用elmessage 没有样式的问题
错误情况 这里使用了一个消息提示,但是没有出现正确的样式, 错误原因和解决方法 出现这种情况是因为,在全局使用了按需导入,而又在局部组件中导入了ElMessage组件,我们只需要将局部组件的import删除就可以了 import…...

pxe批量部署linux介绍
1、PXE批量部署的作用及必要性: 1)智能实现操作系统的批量安装(无人值守安装)2)减少管理员工作,提高工作效率3)可以定制操作系统的安装流程a.标准流程定制(ks.cfg)b.自定义流程定制(ks.cfg(%pos…...

RAG 实践-Ollama+AnythingLLM 搭建本地知识库
什么是 RAG RAG,即检索增强生成(Retrieval-Augmented Generation),是一种先进的自然语言处理技术架构,它旨在克服传统大型语言模型(LLMs)在处理开放域问题时的信息容量限制和时效性不足。RAG的…...

【超详细】使用RedissonClient实现Redis分布式锁
使用RedissonClient实现Redis分布式锁是一个非常简洁和高效的方式。Redisson是一个基于Redis的Java客户端,它提供了许多高级功能,包括分布式锁、分布式集合、分布式映射等,简化了分布式系统中的并发控制。 添加依赖 首先,你需要…...

CC攻击的有效应对方案
随着互联网的发展,网络安全问题愈发突出。CC攻击(Challenge Collapsar Attack),一种针对Web应用程序的分布式拒绝服务(DDoS)攻击方式,已经成为许多网络管理员和网站拥有者不得不面对的重大挑战。…...

自动驾驶基础一车辆模型
模型概述: 自行车动力学模型通常用于研究自行车在骑行过程中的行为,如稳定性、操控性和速度等。模型可以基于不同的简化假设和复杂度,从简单的二维模型到复杂的三维模型,甚至包括骑行者的动态。力学方程: 基础物理学方…...

机器学习:数据分布的漂移问题及应对方案
首先,让我们从一位高管告诉我的一个故事开始,很多读者可能对此感同身受。 大约两年前,他的公司聘请了一家咨询公司开发一个机器学习模型,帮助他们预测下周每种食品杂货需要多少,以便他们可以相应地补货。这家咨询公司…...

公链常用的共识算法
1. 工作量证明(Proof of Work, PoW) 工作原理:要求节点(矿工)解决一个数学难题,这个过程称为挖矿。第一个解决难题的矿工将有权添加一个新的区块到区块链上,并获得一定数量的加密货币作为奖励。…...

详解 Flink Table API 和 Flink SQL 之函数
一、系统内置函数 1. 比较函数 API函数表达式示例Table API,>,<,!,>,<id1001,age>18SQL,>,<,!,>,<id‘1001’&…...

rsa加签验签C#和js以及java互通
js实现rsa加签验签 https://github.com/kjur/jsrsasign 11.1.0版本 解压选择需要的版本,这里选择all版本了 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>JS RSA加签验签</title&g…...

C语言中数组和指针的关系
在C语言中,数组和指针之间存在着密切的关系,尽管它们在概念上是不同的。以下是关于C语言中数组和指针关系的一些要点: 数组名作为指针: 在大多数情况下,数组名在表达式中会被当作指向其第一个元素的指针。例如&#x…...

idea 新建一个 JSP(JavaServer Pages)项目
环境设置: 确保你的开发环境中已经安装了 Java 开发工具包(JDK)和一个 Java Web 开发的集成开发环境(IDE),比如 Eclipse、IntelliJ IDEA 或者 NetBeans。你还需要一个 Web 服务器,比如 Apache T…...

【名词解释】Unity中的表格布局组件及其使用示例
Unity中的表格布局组件通常指的是GridLayoutGroup,这是一个在Unity的UI系统中用来布局子对象的组件。它可以帮助开发者将UI元素按照网格的形式进行排列,非常适合创建表格、网格视图等布局。 名词解释: GridLayoutGroup:Unity UI…...

判断当前设备为移动端自适应 平板和pc端为375移动端样式
在libs的setRem.js中: let html document.querySelector("html"); function setRem() {let ui_w 375;let cl_w document.documentElement.clientWidth || document.body.clientWidth;cl_w > 750 ? cl_w 375 : "";html.style.fontSize …...

Science Advances|用于胃部pH监测和早期胃漏检测的生物可吸收无线无源柔性传感器(健康监测/柔性传感/柔性电子)
2024年4月19日,美国西北大学 John A. Rogers和中国科学技术大学吕頔(Di Lu)团队,在《Science Advances》上发布了一篇题为“Bioresorbable, wireless, passive sensors for continuous pH measurements and early detection of gastric leakage”的论文。论文内容如下: 一、…...

C# 使用 webview2 嵌入网页
需求:C#客户端程序, 窗口里嵌入一个web网页,可通过URL跳转的那种。并且,需要将登录的身份验证信息(token)设置到请求头里。 核心代码如下: // 打开按钮的点击事件 private void openBtn_Click(object sen…...

公司面试题总结(五)
25.谈一谈箭头函数与普通函数的区别,箭头函数主要解决什么问题? 箭头函数与普通函数的区别: ⚫ 语法简洁性: ◼ 箭头函数使用>符号定义,省略了 function 关键字,使得语法更为紧凑。 ◼ 对于单行函…...

Flutter笔记:关于WebView插件的用法(上)
Flutter笔记 关于WebView插件的用法(上) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:htt…...

计算机毕业设计Python+Django农产品推荐系统 农产品爬虫 农产品商城 农产品大数据 农产品数据分析可视化 PySpark Hadoop Hive
课题研究的意义,国内外研究现状、水平和发展趋势 研究意义21世纪是一个信息爆炸的时代,人们在日常生活中可接触到的信息量非常之巨大。推荐系统逐步发展,其中又以个性化推荐系统最为瞩目。个性化推荐系统的核心在于个性化推荐算法,…...

phpcms仿蚁乐购淘宝客网站模板
phpcms仿蚁乐购网站模板,淘宝客行业模板免费下载,该模板网站很容易吸引访客点击,提升ip流量和pv是非常有利的。本套模板采用现在非常流行的全屏自适应布局设计,且栏目列表以简洁,非常时尚大气。页面根据分辨率大小而自…...

leetcode695 岛屿的最大面积
题目 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 岛屿的面积是岛上值…...

小程序无法调用服务端问题排查
1、问题描述 突然有一天线上的小程序不能登录,经查小程序无法调用。经查无法小程序页面无法调用后台服务。 2、排查过程 由于无法登录小程序发布服务器,无法测试小程序前端服务器到服务端网络,并且小程序无法看到日志。所以就得从服务端和网…...

Linux:多线程的操作
多线程操作 进程与线程线程的创建 create_pthread创建线程池给线程传入对象的指针 线程等待 pthread_join退出线程 pthread_exit线程等待参数 retval 与 线程退出参数 retval 线程中断 pthread_cancel获取线程编号 pthread_self线程分离 pthread_detach 进程与线程 进程是资源…...

kunpeng的aarch64架构cpu、openeuler系统、昇腾服务器适配文档转换功能(doc转docx、ppt转pptx)
一、安装flatpak sudo yum install flatpak flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo二、安装libreoffice flatpak install flathub org.libreoffice.LibreOffice三、使用 对于使用 flatpak 安装的 LibreOffice,不需要手…...