秋招 安全面试

黑盒漏洞:

一、SQL注入漏洞

  • 原理:在数据交互中,前端的数据传入到后台处理时,由于后端没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。
  • 种类:字符,数字,布尔,报错,延迟,联合,堆叠,宽字节,XFF等
  • 防御:预编译,加装waf,正则表达式过滤,开启魔术引号。

sql注入写webshell条件

1、知道绝对路径;2、有文件写入权限(root) 3、开启·secure_file_priv设置

二、xss漏洞

  • 原理:XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
  • 种类:存储型,反射型,DOM型
  • 区别:存储型:常出现在信息修改添加等地方,导致恶意代码被存储在数据库中,每当被攻击者访问到后就会触发执行;反射型:常出现在url中,一般需要攻击者提前构造好恶意链接,欺骗用户点击,触发攻击代码;DOM型:攻击代码在url中,然后输出在了浏览器的DOM节点中。简单比较会发现,存储和反射都经过服务器,而DOM是纯前端。
  • 修复:对输入数据进行Html Encode 处理,白名单过滤,过滤JavaScript 事件的标签,开启http-only,装WAF等。

三、服务段请求伪造漏洞(ssrf)

  • 原理:攻击者能够通过伪装成终端用户或服务器自身,将恶意数据发送到目标网站内部网络,以达到读取敏感信息、窃取密码等危害。
  • 种类:参数污染型SSRF、基于缺陷的SSRF、反射性SSRF。
  • 修复:
    ①输入验证:对于所有从客户端输入的数据,包括URL、表单和HTTP头字段,都要进行验证和过滤,删除不必要的字符和空格,并限制输入长度。
    ②明确白名单:建立一个明确的白名单,只允许应用程序访问合法的资源。例如,定义一个URL库,在应用程序中仅允许访问这个库中的URL。
    ③限制重定向:使用HTTP响应头来限制服务器的重定向行为,避免恶意重定向导致的SSRF风险。
    ④检测远程地址:应用程序应该检测所有远程URLs和IP地址,以确保它们指向预期的目标并且可信。
    ⑤安全配置:安全地配置服务器和其他基础设施,包括对端口、协议和代理服务器的限制,以减少攻击表面。

四、跨站点请求伪造漏洞(csrf)

  • 原理:CSRF(跨站点请求伪造)漏洞是一种利用受害者已经登录了某个网站的身份认证信息这一事实进行攻击的手段。攻击者通过构造一个特制的请求,诱导受害者在该网站上访问并执行该请求,从而实现攻击目的。
  • 种类:CSRF漏洞可以分为get型、post型和jsonp型三种类型。其中,get型攻击主要利用图片、链接等标签的src属性来触发,post型则是提交表单或请求,jsonp型则是利用JSONP跨域特性进行攻击。
  • 修复:防止CSRF漏洞的方法主要有Token验证、Referer验证、使用验证码、同源检测和限制Cookie作用域等。具体来说,建议在表单和请求中加入随机生成的Token值,并在服务器端对Token进行验证;使用Referer验证来判断请求是否来源于本站;使用验证码来防止自动化攻击;限制Cookie的作用域,使其仅在必要的URL路径下生效;检查并确保应用程序不会直接响应用户提交的数据等。

白盒漏洞

一、JAVA反序列化   

Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,其作用把对象转换成字节流,便于保存或者传输,而ObjectInputStream类的readObject()方法用于反序列化,作用就是把字节流还原成对象。

Java反序列化就是将java对象转化为字节序列的过程。反序列化的过程就是

1,创建一个对象输出流

2,通过对象输出流的ReadObject()方法来读取对象

二、PHP反序列化

序列化就是将一个对象转换成字符串,反序列化则反之,将字符串重新转化为对象。此外,PHP反序列化又可以简单分成两种,一种无类,一种有类,无类利用就略微简单,如果源码会将输入的值进行反序列化,那我们就需要提前将数据序列化后再传入。而想要利用有类就要用到魔术方法,而魔术方法就像一个潜规则一样,例如我们在创建对象时,就会触发 construct(),并执行 construct()中的代码。

三、常见的框架漏洞

log4j远程代码执行漏洞

原理:

Log4j 是Apache 的一个开源项目,是一款基于Java 的开源日志记录工具。该漏洞主要是由于日志在打印时当遇到`${`后,以:号作为分割,将表达式内容分割成两部分,前面一部分prefix,后面部分作为key,然后通过prefix去找对应的lookup,通过对应的lookup实例调用lookup方法,最后将key作为参数带入执行,引发远程代码执行漏洞。
具体操作:

在正常的log处理过程中对**${**这两个紧邻的字符做了检测,一旦匹配到类似于表达式结构的字符串就会触发替换机制,将表达式的内容替换为表达式解析后的内容,而不是表达式本身,从而导致攻击者构造符合要求的表达式供系统执行        

Fastjson反序列化漏洞

判断:

正常请求是get请求并且没有请求体,可以通过构造错误的POST请求,即可查看在返回包中是否有fastjson这个字符串来判断。

原理:

fastjson是阿里巴巴开发的一款将json字符串和java对象进行序列化和反序列化的开源json解析库。fastjson提供了autotype功能,在请求过程中,我们可以在请求包中通过修改@type的值,来反序列化为指定的类型,而fastjson在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行等这类问题。

无回显怎么办:

1.一种是直接将命令执行结果写入到静态资源文件里,如html、js等,然后通过http访问就可以直接看到结果
2.通过dnslog进行数据外带,但如果无法执行dns请求就无法验证了
3.直接将命令执行结果回显到请求Poc的HTTP响应中

Shiro反序列化漏洞

原理:

Shiro是Apache下的一个开源Java安全框架,执行身份认证,授权,密码和会话管理。shiro在用户登录时除了账号密码外还提供了可传递选项remember me。用户在登录时如果勾选了remember me选项,那么在下一次登录时浏览器会携带cookie中的remember me字段发起请求,就不需要重新输入用户名和密码。

判断:

1.数据返回包中包含rememberMe=deleteMe字段。

2.直接发送原数据包,返回的数据中不存在关键字可以通过在发送数据包的cookie中增加字段:****rememberMe=然后查看返回数据包中是否存在关键字。

shiro-550:

shiro反序列化漏洞利用有两个关键点,首先是在shiro<1.2.4时,AES加密的密钥Key被硬编码在代码里,只要能获取到这个key就可以构造恶意数据让shiro识别为正常数据。另外就是shiro在验证rememberMe时使用了readObject方法,readObject用来执行反序列化后需要执行的代码片段,从而造成恶意命令可以被执行。攻击者构造恶意代码,并且序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行编码,解密并且反序列化,最终造成反序列化漏洞。

shiro-721:
不需要key,利用Padding Oracle Attack构造出RememberMe字段后段的值结合合法的Remember。

应急响应

一、应急响应的流程

1、收集信息:收集客户信息和中毒主机信息,包括样本
2、判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等
3、抑制范围:隔离使受害⾯不继续扩⼤(做好隔离)
4、深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源
5、清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产
6、产出报告:整理并输出完整的安全事件报告

二、系统排查

1、windows

2、Linux

查看定时任务:

1、利用 crontab 查询创建的定时任务 基本命令 crontab -l 列出某个用户 cron 服务的详细内容 Tips : 默 认 编 写 的 crontab 文 件 会 保 存 在 (/var/spool/cron/ 用 户 名 例 如 : /var/spool/cron/root crontab -r 删除每个用户 cront 任务(谨慎:删除所有的计划任务)
crontab -e 使用编辑器编辑当前的 crontab 文件 如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分钟写入文件
2、利用 anacron 命令实现异步定时任务调度 使用案例 每天运行 /home/backup.sh 脚本: vi /etc/anacrontab @daily 10 example.daily /bin/bash /home/backup.sh 当机器在 backup.sh 期望被运行时是关机的,anacron 会在机器开机十分钟之后运行它,而 不用再等待 7 天

溯源相关

  • 39
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值