2024 HW蓝初面试题

目录

面试题基础

1、渗透测试的流程

2、SQL注入漏洞根据攻击方式可分为哪些类型?分别负责解决那些问题?

3、SQL注入如何像网站写入Webshell?

4、宽字节漏洞产生原理是什么?如何利用?

1、产生原理

2、利用方式

5、二次注入的漏洞产生原理是什么?怎么利用?

漏洞产生原理

利用方式

6、堆叠注入的漏洞产生原理是什么?怎么利用?

产生原理

利用方式

7、存储型XSS和反射性XSS有什么区别?实际场景中,应如何挖掘?

区别

被攻击对象:

解析位置:

存储时间:

允许输入点:

挖掘方式

黑盒方式

白盒方式

8、XSS窃取Cookie的原理是什么?防御方式有哪些?

原理

防御方式:

9、任意文件上传漏洞的产生原理是什么?如何测试网站是否存在文件上传漏洞?

原理

挖掘思路

10、任意文件上传漏洞中的条件竞争漏洞原理是什么?如何利用条件竞争上传Webshell?

条件竞争漏洞原理

利用方式

11、文件上传中,使用了白名单过滤的方式,如何绕过?

12、SSRF的漏洞产生原理是什么?如何挖掘SSRF漏洞?

SSRF漏洞产生原理

SSRF挖掘思路

黑盒

白盒

13、SSRF如何攻击内网Redis服务?

Gopher攻击内网Redis主机流程:

14、命令注入漏洞和代码注入漏洞的区别是什么?在代码层面如何防御?

命令注入漏洞:

代码注入漏洞:

区别:

15、如何检测反弹Shell?

进程检测

流量检测

16、PHP反序列化漏洞原理是什么?如何挖掘PHP反序列化漏洞?

反序列化漏洞原理

1.序列化流程:

2.反序列化流程:

3.攻击利用:

4.恶意代码执行:

挖掘思路

17、PHP反序列化漏洞的修复方式有哪些?

修复方式:

1.验证和过滤输入:

2.使用安全的序列化方法:

3.序列化和反序列化的白名单验证:

18、在业务逻辑漏洞中,如何挖掘水平越权和垂直越权漏洞?

挖掘思路:

19、短信验证码爆破和短信轰炸的原理各自是什么?如何挖掘此类漏洞?

短信码验证爆破

短信轰炸

测试方法:

20、在测试支付逻辑漏洞时,应该关注哪些测试点,如何挖掘支付逻辑漏洞?

支付逻辑测试项:

挖掘思路:

21、SQL注入漏洞的防御方式有哪些?

22.WAF绕过的手法你知道哪些?

23.PDR模型是?


面试题基础

  • 1、渗透测试的流程

    • 签署渗透测试
    • 信息收集
    • 漏洞发现
    • 漏洞利用
    • 权限提升
    • 内网渗透
      • 1、内网信息收集
      • 2、内网横向移动
      • 3、内网权限维持
    • 清理痕迹
    • 撰写渗透测试报告
  • 2、SQL注入漏洞根据攻击方式可分为哪些类型?分别负责解决那些问题?

    • 联合查询注入、报错注入、盲注(时间盲注、布尔盲注)、Dnslog注入、宽字节注入
      • 1、联合查询注入:支持在页面有会显得情况下查询数据。、
      • 2、报错注入:
      • 3、盲注:解决无回显状态下的数据查询。
      • 4、布尔盲注:根据页面返回状态的真/价执行判断。
      • 5、时间盲注:根据页面返回的延时执行判断。
      • Dnslog注入:旨在解决Windows系统上,页面无回显的问题,且不会导致想服务器端发送大量请求。
      • 宽字节注入:解决存在单引号过滤或者magic——quotes——gpc开启的问题。
  • 3、SQL注入如何像网站写入Webshell?

    • 拥有写入文件的数据库用户权限,例如:root
    • 能够获取网站根目录的绝对路径
    • 设置php.ini文件中的magic_quotes_gpc=off。在较早的PHP版本中,magic_quotes_gpc会影响到SQL注入漏洞的利用。但在较新的PHP版本中,magic_quotes_gpc已经废弃,此条件可能不再适用于最新的PHP环境中。
  • 4、宽字节漏洞产生原理是什么?如何利用?

    • 1、产生原理

      • 主要利用了数据库和web应用程序之间编码不一致的问题。针对使用GBK、BIG5等双字节字符编码的网站。宽字节注入利用编码转换漏洞,通过在SQL查询语句中插入特殊构造得双字节字符来绕过输入过滤和验证,最终实现对数据库的非法查询或者篡改。
    • 2、利用方式

      • 在宽字节注入中,利用宽字节特性,在单引号前加入一个特殊的字节序列(如%df),与反斜杠(%5c)组合,使其在数据库中视为一个完整字符。从而,导致但因阿红成功逃逸。并执行SQL命令。
  • 5、二次注入的漏洞产生原理是什么?怎么利用?

    • 漏洞产生原理

      • 将构造的而已查询语句存储在数据库中,然后在后续的查询中再次使用存储的恶意语句。
    • 利用方式

      • 1、寻找一个插入数据的位置,插入恶意SQL语句至数据库,例如admin'#
      • 2、寻找一个从数据库调用所插入的而已语句的位置。
  • 6、堆叠注入的漏洞产生原理是什么?怎么利用?

    • 产生原理

      • 1、目标存在SQL注入漏洞;
      • 2、目标未对分号( ; )过滤;
      • 3、目标中间层查询数据库信息时可同时执行多条SQL语句。
    • 利用方式

      • 通过SQL查询语句的结尾添加分号  ;   并继续添加另一条或多条SQL语句来执行多条命令。
      • 例:select * from products  where  product id=1;delete from product;第一条显示查询结果,第二条执行删除操作。
  • 7、存储型XSS和反射性XSS有什么区别?实际场景中,应如何挖掘?

    • 区别

      • 被攻击对象:
        • 反射型:攻击对象由攻击方选择,攻击方需要将含有xss代码的URL链接发送给受害者。
        • 存储型:攻击方将XSS代码放置在有漏洞的网站上,任何访问网站的受害者都可能受到攻击。
      • 解析位置:
        • 反射型:发生在浏览器端,当受害者访问含有XSS代码的页面时,浏览器解析并执行XSS代码。
        • 存储型:发生在服务器端,xss代码被存储在服务器上,当用户访问网站时,服务器将XSS代码返回给卢岚气,浏览器执行代码。
      • 存储时间:
        • 反射型:没有持久性,即使用户访问了含有XSS代码的页面,XSS代码也不会在用户设备上留下任何痕迹。如果源代码没有改变,XSS代码也不会再次被执行。
        • 存储型:只要服务器不崩溃,XSS代码一直存在,因此攻击的持久性更强。
      • 允许输入点:
        • 反射型XSS:可能出现在搜索框、页面跳转等地方,输入点通常由用户控制。
        • 存储型XSS:可能出现在用户存储数据的地方,如留言板或用户配置文件等,输入点通常由网站开发者控制。
    • 挖掘方式

      • 黑盒方式
        • 见框就插,测试所有评论区、留言板、搜索框等功能。
        • 测试输入数据后,页面存在数据回显的功能。
      • 白盒方式
        • 搜索函数echo、print等关键字,寻找存在用户可控参数,且未经过过滤不严谨的位置。
  • 8、XSS窃取Cookie的原理是什么?防御方式有哪些?

    • 原理

      • 向目标网站后台管理界面注入一段恶意JS代码,通过document。cookie获取当前网站的cookie信息,并将cookie与当前网站的URL一同发送给攻击饭的接收平台。
      • 管理员登录网站后台,出发恶意Js代码,将当前网站URL和cookie信息发送给攻击方的接收平台。
    • 防御方式:

      • 设置set—cookie:httpOnly   禁止使用JS的documnet.cookie读取网站cookie信息。
      • 设置set-cookie:secure   创建的cooie只能在HTTPS连接中被浏览器传递到服务器端执行会话验证,如果是HTTP链接则不会传递cookie信息,故不会受到窃取。
      • 对输出的内容执行HTML编码
      • 过滤敏感字符,如  "<"  ">"   "script"
  • 9、任意文件上传漏洞的产生原理是什么?如何测试网站是否存在文件上传漏洞?

    • 原理

      • 网站存在文件上传功能,允许用户上传于当前网站类型一致的脚本文件,并执行解析。
    • 挖掘思路

      • 寻找文件上传接口,判断文件上传功能是否存在过滤
      • 判断上传接口使用客户端监测(JS)or 服务端(PHP、JSP)检测
        • 判断方式:抓取数据包,观察拦截发生前,BurpSuite是否抓取到数据包,如果抓取到则为后端校验。未抓取到,则为客户端/前端检测。
      • 如果是前端过来,绕过方式:
        • 禁用JS
        • 删除前端校验代码
        • 上传图片马并抓包,将图片后缀修改为特定脚本后缀,如:.php。
      • 如果是后端过滤,则可通过上传文件名为1.xyz的文件,判断是白名单顾虑还是黑名单过滤
        • 黑名单过滤:尝试上传.htaccess、php、jsp、jspx、asp、asa、cer、phtml、大小写等方式绕过。
        • 白名单过滤:00截断、中间件解析漏洞、上传图片吗并配合文件包含漏洞Getshell
  • 10、任意文件上传漏洞中的条件竞争漏洞原理是什么?如何利用条件竞争上传Webshell?

    • 条件竞争漏洞原理

      • 网站再执行文件上传的校验是,允许用户所上传的文件会保存在服务端,并在保存后执行校验,如不符合特定后缀名或匹配鬼册,则删除文件。此时,攻击方如果能够上传一个脚本文件,并立刻访问,则可正常解析执行。
    • 利用方式

    • 基于上述代码编写规则,攻击方可构造上传大量的创建后门脚本文件,并编写脚本或使用BurpSuite等工具访问上传的文件,出发创建后门的代码。
  • 11、文件上传中,使用了白名单过滤的方式,如何绕过?

    • 上传图片马,结合文件包含漏洞绕过。
    • 利用中间件解析漏洞,执行绕过。利用00阶段绕过。
    • 如果代码中仅依据Content-Type执行白名单校验,则可通过抓包MIME类型绕过。
  • 12、SSRF的漏洞产生原理是什么?如何挖掘SSRF漏洞?

    • SSRF漏洞产生原理

      • 服务端存在发起网络请求的功能/函数,例如:file_get_contents()
      • 服务端中发起网络请求的函数中,存在用户可控参数服务端
      • 未对用户输入的参数(URL等)执行严格过滤
    • SSRF挖掘思路

    • 黑盒

      • 1.寻找类似于url、page、file、filename的参数
      • 2.修改参数值为 本地IP:PORT 或 Dnslog服务器的URL
      • 3.观察页面回显情况和Dnslog平台回显
    • 白盒

      • 利用Seay、Fortify_SCA等代码审计工具查找可发起网络请求的函数,例如:file_get_contents()、curl_exec()、fopen()
      • 观察函数中是否存在用户控参数,且未经严格过滤
  • 13、SSRF如何攻击内网Redis服务?

    • Gopher攻击内网Redis主机流程:

      • 探针目标主机SSRF漏洞产生点
      • 探针目标主机的开放端口与服务
      • 探针目标内网存活主机与开放服务
      • 如发现Redis服务(存在未授权访问),则利用计划任务反弹Shell
  • 14、命令注入漏洞和代码注入漏洞的区别是什么?在代码层面如何防御?

    • 命令注入漏洞:

      • 存在命令执行函数,例如:system、exec、shell_exec
      • 命令执行函数中存在用户可控参数
      • 无服务端未执行严格过滤
    • 代码注入漏洞:

      • 存在代码执行函数,例如:eval、assert、preg_replace、create_function、ll user func、popen()、proc_popen()、passthru()
      • 命令执行函数中存在用户可控参数
      • 无服务端未执行严格过滤
    • 区别:

      • 命令注入是指攻击方构造并执行恶意的操作系统命令。
      • 代码注入是指攻击方构造并执行恶意的后端脚本代码,例入:PHP代码、JSP代码。
  • 15、如何检测反弹Shell?

    • 主要检测方式是进程检测、流量检测。
      • 进程检测
        • 使用lsof检测,如果出现了 0  1  2 文件描述符的重定位,则存在反弹shell的风险。
      • 流量检测
        • 检测用户传输的数据包是否存在交互式命令执行特征。
  • 16、PHP反序列化漏洞原理是什么?如何挖掘PHP反序列化漏洞?

    • 反序列化漏洞原理

      • 1.序列化流程:
        • 序列化是将对象转换为字节流的过程,以便存储或传输。在序列化过程中,对象的状态被转换为字节流,并包含有关对象类型和结构的信息。
      • 2.反序列化流程:
        • 反序列化将字节流转换回对象,恢复之前的状态。在反序列化过程中,字节流被解析并创建相应的对象。
      • 3.攻击利用:
        • 攻击方构造恶意的序列化数据,并将其发送给目标应用程序。当应用程序尝试解析恶意的序列化数据时,由于缺乏足够的安全检查机制,可能导致执行恶意代码或触发非预期的操作。
      • 4.恶意代码执行:
        • 通过精心构造的恶意序列化数据,攻击方可以触发调用特定方法、加载特定类或执行任意代码等操作。这可能导致敏感信息泄露、远程命令执行、拒绝服务等安全问题。
    • 挖掘思路

      • 代码审计
      • 对于特定框架或组件,例如,Thinkphp、Laravel、Yii,使用lday或nday漏洞测试。
  • 17、PHP反序列化漏洞的修复方式有哪些?

    • 修复方式:

      • 1.验证和过滤输入:
        • 在执行反序列化之前,对用户输入数据执行验证和过滤。
      • 2.使用安全的序列化方法:
        • 避免使用 PHP 的不安全序列化方法(例如,unserialize()),而是使用更安全的替代方法,如 JSON 或 XML 序列化/反序列化。
      • 3.序列化和反序列化的白名单验证:
        • 限制反序列化操作的类范围,可创建一个白名单,只允许指定的类执行反序列化,或者创建一个黑名单,禁止一些危险的类执行反序列化。以限制攻击方能够执行的恶意代码。
  • 18、在业务逻辑漏洞中,如何挖掘水平越权和垂直越权漏洞?

    • 水平越权(Horizontal Privilege Escalation),指权限等级相同的两个用户之间的越权访问。
    • 垂直越权(Vertical Privilege Escalation),指权限不等的两个用户之间的越权操作,通常是低权限用户可直接访问到高权限用户信息。
    • 挖掘思路:

      • 注册两个账户
      • 登录用户A后台,寻找修改口令、绑定手机号、编辑文章等功能,并利用Burpsuite抓包尝试将表示用户A的凭证字段修改为用户B的凭证字段值,实现改用户B的个人信息。
      • 尝试将表示用户A的凭证字段修改为用户B的凭证字段值,实现篡改用户B的个人信息。
  • 19、短信验证码爆破和短信轰炸的原理各自是什么?如何挖掘此类漏洞?

    • 短信码验证爆破

      • 验证码爆破:后端在执行短信验证码校验时,未对用户传入的验证码执行错误次数限制。
    • 短信轰炸

      • 短信轰炸:后端在执行,未限制短信发送的间隔时间。
    • 测试方法:

    • 在发送验证码时抓取数据包,并转发至repeater模块测试是否可发送多条短信。
  • 20、在测试支付逻辑漏洞时,应该关注哪些测试点,如何挖掘支付逻辑漏洞?

    • 支付逻辑测试项:

      • 1.篡改支付金额
      • 2.优惠券复用
      • 3.篡改订单号
      • 4.篡改商品数量
    • 挖掘思路:

      • 1.抓包修改各个参数
  • 21、SQL注入漏洞的防御方式有哪些?

    • 使用预编译机制,例如:PHP的PDO
    • 编写关键字过滤函数,过滤单引号、双引号、union select等敏感字符串
    • 部署WAF
  • 22.WAF绕过的手法你知道哪些?

    • 这里从以sql注入为例,从三个层面简单总结一下手法。
    • 1.从架构层面:找到服务器真实IP,同网段绕过,http和https同时开放服务绕
    • 过,边缘资产漏洞利用绕过。
    • 2.从协议层面:分块延时传输,利用pipline绕过,利用协议未覆盖绕过,POST
    • 及GET提交绕过。
    • 3.从规则层面:编码绕过,等价符号替换绕过,普通注释和内敛注释,缓冲区溢
    • 出,mysql黑魔法,白名单及静态资源绕过,文件格式绕过,参数污染。
  • 23.PDR模型是?

    • 保护-检测-响应

最后,祝大家面试顺利!

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

三七怪鸽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值