面试题-渗透测试实习生

前言:

面试题/面经,本质上只是一种“见识”,他并不能实质上提升自己的水平,还是希望大家(包括我自己)不要太局限于面经,可以查缺补漏但没必要面经问什么自己就一定要学什么,按自己的节奏学就行了,毕竟每人的技术特点不一样,面试的过程和问题也会不一样。

2022校园笔试面试时间 - 春秋季大学生实习工作 - 字节跳动互联网招聘会


0x01  自我介绍


主要讲自己的项目实战经验,在其他公司实习做过什么项目。

0x02 渗透的流程


博主现在技术还在权限提升阶段,漏洞利用是时刻都要研究的,等我学习的完了,再进行总结《渗透测试基本流程》-安全客 - 安全资讯平台

0x03 信息收集如何处理子域名爆破的泛解析问题


前置知识:

信息收集系列|子域名收集姿势总结 - FreeBuf网络安全行业门户

深入了解子域名挖掘tricks - 先知社区

通过DNS查询枚举子域名遇到的最大问题是域名泛解析问题,域名泛解析是厂商为方便维护解析记录,将域名所有情况都解析到同样服务器上。

目前最好的解决方式是通过先获取一个绝对不存在域名的响应内容,再遍历获取每个字典对应的子域名的响应内容的,通过和不存在域名内来容做相似度比对,枚举子域名,但这样的实现是以牺牲速度为代价。https://xz.aliyun.com/t/5509

0x04 如何绕过CDN查找真实ip


 https://blog.csdn.net/m0_61506558/article/details/126387468?spm=1001.2014.3001.5501

其他里面这里补充:


  • 分站域名&C段查询 (分站可能没有挂CDN,可以通过ping二级域名获取分站IP, 可能会出现分站和主站不是同一个IP但在同一个C段下面的情况,从而能判断出目标的真实IP段)

  • 网站漏洞 (通过网站的信息泄露如phpinfo泄露,github信息泄露,命令执行等漏洞获取真实ip)

  • SSRF漏洞  (该漏洞可以访问内网,服务器主动向外发起连接,找到真实IP地址)

  • 目标网站APP应用 (如果目标网站有自己的App,可以尝试利用Fiddler或Burp Suite抓取App的请求,从里面找到目标的真实IP)

  • 网络空间引擎搜索  (shodan、FOFA、zoomeye)

0x05 phpinfo你会关注哪些信息


1. 网站真实ip

当网站使用cdn或群集时,那么该文件会显示网站真实ip地址

2. 网站路径

当网站绝对路径泄漏时,如果能写webshell,则可以直接getshell;当日志文件路径泄露时,如果存在文件包含,则直接包含日志文件getshell

 3. 应用信息

通过phpinfo可以查看到支持的特殊服务,例如:redis、fastcgi、memcache、ImageMagick等,如果存在redis、memcache等则可尝试未授权访问获取信息Redis未授权访问漏洞__Cyber的博客-CSDN博客

如果使用了ImageMagick,则可根据版本尝试远程代码执行

4. 一些敏感配置

allow_url_include  #该项如果开启,则支持远程文件包含,如果有存在文件包含的文件则可直接getshell,或可以使用php伪协议
disable_function   #该项表示禁用的函数名
magic_quotes_gpc #php5.4以下版本有的函数,默认开启,会对特殊字符进行转移

5.php版本信息

php版本信息,每个php版本都有变化和特性,像php5.3.4以下 + magic_quotes_gpc off 可%00截断

 0x06 有没有了解过权限维持


博主刚刚最近接触到,分为windows和linux权限,打算这几个星期把这些内容整理出来。

Windows权限维持总结 - 先知社区

Linux下的权限维持 - 先知社区

0x07 说一个你感觉不错的漏洞,展开讲讲


log4j、 永恒之蓝 、FastJson 反序列化、 Apache Shiro 、脏牛漏洞

CVE-2017-0144(永恒之蓝)利用文档__Cyber的博客-CSDN博客

 Fastjson反序列化漏洞(1.2.24 RCE)__Cyber的博客-CSDN博客_fastjson反序列化漏洞

CVE-2021-44228 log4j RCE漏洞原理详细分析排查和修补__Cyber的博客-CSDN博客

CVE-2021-44228 Log4j 远程代码执行漏洞——原理__Cyber的博客-CSDN博客_log4j漏洞

CVE-2020-1957 Apache Shiro 认证绕过漏洞__Cyber的博客-CSDN博客

0x08 输出到href的XSS如何防御


  1. 对输入和URL参数进行过滤(白名单和黑名单)
  2. 对输出进行编码
  3. HttpOnly设置
  4. 处理富文本

WEB安全基础篇-跨站脚本攻击(XSS) - FreeBuf网络安全行业门户
XSS绕过httponly属性保护的cookie__Cyber的博客-CSDN博客_httponly 绕过

0x09 samesite防御CSRF的原理


same-site cookies属于前端防御,它是在原有的Cookie中,新添加了一个SameSite属性,控制只有同域(子域)能访问Cookie,它标识着在非同源的请求中,是否可以带上Cookie,它可以设置为3个值,分别为:

  • Strict
  • Lax
  • None

Cookie中的内容为:

POST /transfer HTTP/1.1
Host: www.xiaodi8.com
Cookie: JSESSIONID=randomid;SameSite=Strict;

Strict是最严格的,它完全禁止在跨站情况下,发送Cookie。只有在自己的网站内部发送请求,才会带上Cookie。不过这个规则过于严格,会影响用户的体验。比如在一个网站中有一个链接,这个链接连接到了GitHub上,由于SameSite设置为Strict,跳转到GitHub后,GitHub总是未登录状态。

Lax的规则稍稍放宽了些,大部分跨站的请求也不会带上Cookie,但是一些导航的Get请求会带上Cookie,如下:

 None就是关闭SameSite属性,所有的情况下都发送Cookie。不过SameSite设置None,还要同时设置Cookie的Secure属性,否则是不生效的。

0x10 CSRF防御


a. 用户在被攻击的系统中登录了

  1. 对重要的操作进行二次认证,防止操作在后台自动执行。
  2. 设置适当的会话超时时间,防止用户离开后,其他用户在同一个浏览器中操作。
  3. 养成良好的习惯,离席锁屏。

b. 用户在第三方系统触发了对被攻击系统的请求

  1. 语义一致性:良好的编程习惯,操作类请求,必须使用POST,GET只用于浏览类请求。
  2. 阻止外域访问

    1. 同源检测:服务器端通过请求的Origin Header和Referer Header,判断请求的来源。
    2. Samesite Cookie:控制只有同域(子域)能访问Cookie。
  3. 随机数一致性检测

    1. CSRF Token:用户登录后,生成随机值csrf_token,用户提交的操作类(POST)请求中,提交的表单中携带csrf_token,服务器端判断csrf_token是否正确。
    2. 双重Cookie验证:Cookie中保存csrf_token,用户提交表单中也携带csrf_token,服务器端判断两个值是否一致。

0x11 json格式的CSRF如何防御


思路一:尝试去闭合json

首先抓包看到了下面的情况:

 这里我们就要想办法去除引号,结合poc,其实是value后面的=所以尝试去闭合如下:

<input type="hidden" name='{"appId":"300016001555","appName":"0xdawnnn","test":"' value='test"}' />

这时候抓包发现闭合了,但是发现还是415,对比发现原始数据包中的content-type:application/json,而我们自己写的poc,enctype="text/plain"于是将其在poc中修改为application/json后发现数据包如下 :

 发现格式变成了如上,然后再将正常的书包提交,发现对content-type进行了校验

思路二:通过xhr提交

poc
 

当跨域影响用户数据HTTP请求(如用XMLHttpRequest发送post)时,浏览器会发送预检请求(OPTIONS请求)给服务端征求支持的请求方法,
然后根据服务端响应允许才发送真正的请求。 
然而如果服务端对Content-Type进行校验,则不会响应这个OPTIONS请求,从而利用失败,所以这里没用。
<html>
  <body>
    <script>
      function submitRequest()
      {
        var xhr = new XMLHttpRequest();
        xhr.open("POST", "https://www.xxxxx.com/simauth/app/updateAppInfo", true);
        xhr.setRequestHeader("Accept", "*/*");
        xhr.setRequestHeader("Accept-Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");
        xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
        xhr.withCredentials = true;
        xhr.send(JSON.stringify({"appId":"300016001555","appName":"0xdawn"});
    }
    </script>
    <form action="#">
      <input type="button" value="Submit request" onclick="submitRequest();"/>
    </form>
  </body>
</html>

 思路三:借用flash,利用307跳转实现csrf(这个思路有点迷)

1制作一个flash文件

2制作一个跨域xml文件

3制作一个具有307状态码的php文件

参考:https://github.com/sp1d3r/swf_json_csrf
poc:
https://www.0xdawn.cn/swf_json_csrf/test.swf?endpoint=https://sim.ecloud.10086.cn:8085/simauth/app/updateAppInfo&reqmethod=POST&ct=application/json;charset=UTF-8&jsonData={%22appId%22:%22300016001555%22,%22appName%22:%220xdawn%22}&php_url=https://www.0xdawn.cn/swf_json_csrf/test.php
整个攻击链

1、受害者访问POC,向attacter.com发起一条swf请求,swf向307.php发送HTTP POST请求。

2、attacter.com的307.php发起307跳转,跳转到victim.com,注意307跳转会带着http请求方式,header和postdata进行跳转。

3、victim.com收到一条POST请求,并且Content-Type为application/json。

4、victim.com收到一条/crossdomain.xml请求。由于第三步优先第四步执行,导致跨域。并且victim.com能收到crossdomain.xml请求,也证明了第三步的POST请求是Flash发出,而不是307.php发出。

参考文章:

一次渗透测试引发的Json格式下CSRF攻击的探索 - 先知社区

0x12 浏览器解析顺序和解码顺序


浏览器一般的解码顺序是先进行html解码,再进行javascript解码,最后再进行url解码,需要注意的是这里的url解码和我们发送到服务器的url解码不同,那个过程是由服务器来完成的,而不是浏览器

浏览器解码顺序测试 - 编程猎人

0x13 过滤逗号的SQL注入如何绕过


1.使用 Join 方法绕过

union select 1,2     #等价于
union select * from (select 1)a join (select 2)b

2.对于substr()和mid()这两个方法可以使用from to的方式来解决:

select substr(database() from 1 for 1);
select mid(database() from 1 for 1);

3.使用like:

select ascii(mid(user(),1,1))=80   #等价于
select user() like 'r%'

0x14 过滤limit后的逗号如何绕过


1. 对于limit可以使用offset来绕过:

select * from news limit 0,1

# 等价于下面这条SQL语句

select * from news limit 1 offset 0

0x15 fastjson相关漏洞
 


干货|最全fastjson漏洞复现与绕过 - 腾讯云开发者社区-腾讯云

Fastjson反序列化漏洞(1.2.24 RCE)__Cyber的博客-CSDN博客_fastjson反序列化漏洞

0x16说一个你知道的python相关的漏洞


一个潜藏10年的Python UAF漏洞 - 先知社区

python常见漏洞总结 - 春告鳥 - 博客园

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 《2021测试面试题 - pdf》是一本面试题集合,以PDF格式呈现。这本书可能包含了各种不同类型的面试题,涵盖了不同领域和层级的职位。 阅读这本书可以提供一些关于面试准备的指导,帮助应聘者了解常见的面试问题,以及如何回答这些问题。它可以帮助应聘者熟悉面试过程,了解面试官的期望,并为他们的面试做好准备。 这本书可能包含常见的面试问题,例如个人背景介绍、职业发展规划、技术能力、解决问题的能力、团队合作等。通过阅读这些问题,应聘者可以思考如何回答,并准备一些典型的示例和故事来支持他们的回答。 这本书还可能提供一些面试技巧和建议,包括如何在面试中展示自己的能力和经验,如何有效地回答问题,如何展示个人的职业素养等。 总之,《2021测试面试题 - pdf》是一本面试题集合,旨在帮助应聘者准备面试,了解常见的面试问题,并提供一些面试技巧和建议。对于那些正在寻找工作或准备面试的人来,这本书可能是一个有用的资源。 ### 回答2: 《2021测试面试题- pdf》是一本面试题集合,针对测试工程师岗位的招聘面试进行了整理和编写。这本题集包含了多种类型的测试题目,涵盖了软件测试的各个方面,旨在帮助招聘单位了解应聘者的测试知识和技能。 这本面试题集的内容包括但不限于测试基础知识、测试策略和方法、测试工具和框架、自动化测试、性能测试、安全测试等。这些题目有些是选择题,有些是简答题或编程题,都是经过精心设计的,可以帮助招聘单位全面地了解应聘者在测试领域的实际能力和经验。 对于应聘者而言,阅读和解答《2021测试面试题- pdf》可以帮助他们复习和巩固测试知识,并提前了解可能会在面试中遇到的问题和考察点。通过认真准备,应聘者可以在面试中更好地回答问题,展示自己的实际能力和经验,提高获得聘用的机会。 对于招聘单位而言,这本题集可以作为一个参考工具,用于筛选和评估应聘者。招聘单位可以根据《2021测试面试题- pdf》中的问题,结合自己的需求和要求,从中选取适合的问题进行面试,以衡量应聘者的能力和适应性。 综上所述,《2021测试面试题- pdf》是一本用于软件测试岗位招聘面试的题目集,旨在帮助招聘单位了解应聘者的测试知识和技能,同时也为应聘者提供了一个复习和准备面试的工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Camelus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值