网安面试百题斩(都是常问!!!)

一、 Web 常问( 42
1. SQL 注入原理的种类?防御呢?预编译原理?
原理:在数据交互中,前端的数据传入到后台处理时,由于后端没有做严格的判
断,导致其传入的 数据 拼接到 SQL 语句中后,被当作 SQL 语句的一部分执行。
种类:字符,数字,布尔,报错,延迟,联合,堆叠,宽字节, XFF
修复:使用预编译, PDO ,正则表达式过滤,开启魔术引号,加装 WAF
预编译原理:预编译将一次查询通过两次交互完成,第一次交互发送查询语句的
模板,由后端的 SQL 引擎进行解析为 AST Opcode ,第二次交互发送数据,代
AST Opcode 中执行,无论后续向模板传入什么参数,这些参数仅仅被当成
字符串进行查询处理,因此杜绝了 sql 注入的产生。
2.XSS 的种类有哪些?区别?修复呢?
种类:存储型,反射型, DOM
区别:存储型 : 常出现在信息修改添加等地方,导致恶意代码被存储在数据库
中,每当被攻击者访问到后就会触发执行;反射型:常出现在 url 中,一般需要
攻击者提前构造好恶意链接,欺骗用户点击,触发攻击代码; DOM 型:攻击代
码在 url 中,然后输出在了浏览器的 DOM 节点中。简单比较会发现,存储和反射
都经过服务器,而 DOM 是纯前端。
修复:对输入数据进行 Html Encode 处理,白名单过滤,过滤 JavaScript 事件的
标签,开启 http-only ,装 WAF 等。
3. XSS,CSRF SSRF 区别? ( 很常问 )
XSS : 跨 站 脚 本 攻 击 ;
CSRF :跨站请求伪造脚本攻击;
SSRF :服务器请求伪造攻击。
区别: XSS 是服务器对用户输入的数据没有进行足够的过滤,导致客户端浏览器
在渲染服务器返回的 html 页面时,出现了预期值之外的脚本语句被执行。
CSRF CSRF 是服务器端没有对用户提交的数据进行随机值校验,且对 http 请求
包内的 refer 字段校验不严,导致攻击者可以利用用户的 Cookie 信息伪造用户请
求发送至服务器。 SSRF SSRF 是服务器对用户提供的可控 URL 过于信任,没有
对攻击者提供的 RUL 进行地址限制和足够的检测,导致攻击者可以以此为跳板攻
击内网或其他服务器。
4.XXE 漏洞了解吗?
XXE 漏洞即 xml 外部实体注入漏洞 , 发生在应用程序解析 XML 输入时,没有禁止外
部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端
口、攻击内网网站、发起 dos 攻击等危害。
5.PHP 反序列化有了解吗?
序列化就是将一个对象转换成字符串,反序列化则反之,将字符串重新转化为对
象。
此外, PHP 反序列化又可以简单分成两种,一种无类,一种有类,无类利用就略
微简单,如果源码会将输入的值进行反序列化,那我们就需要提前将数据序列化
后再传入。而想要利用有类就要用到魔术方法,而魔术方法就像一个潜规则一
样,例如我们在创建对象时,就会触发 construct(), 并执行 construct() 中的代
码。
5.1 JAVA 反序列化了解吗?有没有了解过 shrio 反序列化? ( 最常问,无论 hvv 还是
工作面试 )
Java 中的 ObjectOutputStream 类的 writeObject() 方法可以实现序列化,其
作用把对象转换成字节流,便于保存或者传输,而 ObjectInputStream 类的
readObject() 方法用于反序列化,作用就是把字节流还原成对象。
shiro 反序列化主要是 Apache shiro 提供了一个 remember 的一个功能,用
户登录成功后会生成经过加密并编码的 cookie ,保存在浏览器中方便用户的
日常使用,而服务器对 cookie 的处理流程就是先获取浏览器上保存的
cookie ,然后将其 bs64 解码,再进行 AES 解密,再将其反序列化进行校验,
而漏洞就是出现在这里,我们都知道 AES 它是一个硬编码,他是有默认密钥
的,如果程序员没有去修改或者过于简单,那我们就可以进行 cookie 重构,
先构造我们的恶意代码,然后将恶意代码进行序列化,然后 AES 加密 ( 密钥我
们已经爆破出来了 ) ,再进行 bs64 编码,形成我们新的 cookie ,而服务器在
处理时就会按照刚才的处理流程,就会在服务端触发我们构造的恶意代码。
6. 逻辑漏洞遇到过哪些,给你登录框有没有什么思路?
常见逻辑漏洞:越权,响应包修改,支付金额修改, cookie 爆破,密码找回方面
等等
登录页面思路:爆破, session 覆盖, sql 注入, xss ,任意用户注册, js 文件查看
敏感信息,短信轰炸,万能密
码,二次注入,模板注入等等
7.CDN DNS 区别? CDN 绕过思路?
CDN :内容分发网络,主要作用就是让用户就近访问网络资源,提高响应速度,
降低网络拥堵。
DNS: 域名服务器,主要作用就是将域名翻译成 ip 地址。
CDN 绕过思路:子域名,内部邮件,黑暗引擎搜索,国外 ping ,证书及 DNS
询, app 抓包,配置不当泄露,扫全网, DOS 攻击等。
8. 常见的中间件漏洞知道哪些?
IIS PUT 漏洞、短文件名猜解、远程代码执行、解析漏洞等
Apache :解析漏洞、目录遍历等
Nginx: 文件解析、目录遍历、 CRLF 注入、目录穿越等
Tomcat: 远程代码执行、 war 后门文件部署等
JBoss: 反序列化漏洞、 war 后门文件部署等
WebLogic: 反序列化漏洞、 SSRF 任意文件上传、 war 后门文件部署等
...........
9.WAF 绕过的手法你知道哪些?
这里从以 sql 注入为例,从三个层面简单总结一下手法。
1. 从架构层面:找到服务器真实 IP ,同网段绕过, http https 同时开放服务绕
过,边缘资产漏洞利用绕过。
2. 从协议层面:分块延时传输,利用 pipline 绕过,利用协议未覆盖绕过, POST
GET 提交绕过。
3. 从规则层面:编码绕过,等价符号替换绕过,普通注释和内敛注释,缓冲区溢
出, mysql 黑魔法,白名单及静态资源绕过,文件格式绕过,参数污染。
10. 命令无回显如何解决?
无回显:延时判断, http 请求监听, DNSlog 利用,写入当前目录下载查看等
等。
11.3389 端口无法连接的几种情况?
1.3389 关闭状态, 2. 端口修改, 3. 防火墙连接, 4. 处于 内网环境, 5. 超过了服务
器最大连接数, 6. 管理员设置 权限,指定用户登录。
12. 常 问 的 端 口 信 息 ?
21 FTP 文件传输协议
22 SSH 远程连接
23 :TELNET远程登录
25 :SMTP邮件服务
53 :DNS域名系统
80 HTTP 超文本传输协议
443 HTTPS 安全超文本传输协议
1433 MSSQL
3306 MYSQL
3389 windows 远程桌面服务端口
7701 weblogic
8080 TCP,HTTP 协议代理服务器: Apache-tomcat 默认端口号
13. 渗透测试的流程? ( 主要看自己 )
单一网站:先判断有无 CDN ,有先找真实 ip ,无的话扫扫旁站, c 段,此外识别
CMS ,看看使用什么中间件,
插件,系统等等,再对其进行端口探测,目录扫描,查看网站的 js 文件,看看有
没有敏感信息泄露,找找看
看有没有 app ,公众号之类的等等扩大资产面,然后对收集到的信息进行常规的
漏洞探测
网段或区域:使用 goby 工具对资产进行一个批量的扫描,批量打点,然后对可
能存在漏洞的薄弱点进行漏洞探测
14. 什么是逻辑漏洞?说出至少三种业务逻辑漏洞,以及
修复方式?
逻辑漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处
理或处理错误。
拿支付漏洞来说,简单思路有价格修改,支付状态修改,数量最大值溢出,订单
替换,支付接口替换,四舍五入,越权支付等等。
拿登录来说,修改状态信息,密码修改跳过验证等等。
密码找回漏洞中存在: 1 )密码允许暴力破解、 2 )存在通用型找回凭证、 3 )可
以跳过验证步骤、 4 )找回凭证可以拦包获取。身份认证漏洞中最常见的是: 1 会话固定攻击、 2 Cookie 仿冒。只要得到 Session Cookie 即可伪造用户身
份。
验证码漏洞中存在: 1 )验证码允许暴力破解、 2 )验证码可以通过 Javascript
者改包的方法来进行绕过。
15. 未授权访问你可以简单说说吗
Redis 未授权访问漏洞
未开启认证,导致可以直接连接到数据库,
然后在攻击机中生成 ssh 公钥和私钥,密码设置为空,
然后将生成的公钥写入,再利用私钥连接。
JBOSS 未授权访问漏洞
访问 ip/jmx-console 就可以浏览 jboss

你可能感兴趣的:(面试,职场和发展,网络安全,安服)