网络安全-常见面试题(Web渗透测试密码学等)
Posted lady_killer9
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络安全-常见面试题(Web渗透测试密码学等)相关的知识,希望对你有一定的参考价值。
目录
Sensitive Data Exposure-敏感数据泄露
Security Misconfiguration-安全配置错误
Insecure Deserialization-不安全的反序列化
Using Components with Known Vulnerabilities-使用已知漏洞的组件
Insufficient Logging & Monitoring-日志和监控不足
nmap扫描原理,Nmap扫描中的一些细节,针对什么情况使用哪种扫描?
秋招接近尾声,博主拿了阿里、腾讯、美团、京东的offer,安全比较小众,题和面经都比较少,这是秋招时准备的题,答案不保证准确性,可做个参考。。。喜欢的点赞,收藏一波~
WEB安全
OWASP Top 10(2017)
Injection - 注入攻击
例如 SQL、NoSQL、OS 和 LDAP 注入,当不受信任的数据作为命令或查询的一部分发送到解释器时就会发生。攻击者的恶意数据可以诱使解释器执行非预期的命令或在未经适当授权的情况下访问数据。
本文只写了SQL注入攻击
sql注入单引号被过滤了怎么绕过?
攻击方账号输入 1\\,密码输入or 1=1 --+ ,最后拼接出来的语句是select * from xxx where id='1\\' and pwd='or 1=1--+' 其中\\将'转义,id的值就变为(1' and pw=),后边跟一个or 1=1返回的逻辑为true就可以进行SQL注入了,所以最好还是采用预编译的方式进行SQL注入
过滤了select怎么注入?
盲注 但是只能注入当前表
如果可以堆叠注入的话,可以赋值变量为16进制
mysql不知道列名怎么爆字段?
查询information_schema表。
追问,这个表无权访问怎么办?
进行查询时语句的字段数必须和指定表中的字段数一样,不能多也不能少,不然就会报错,例如:Select 1,2,3 union select * from xxx; (xxx表有三列)
mysql报错注入常用的函数及原理?
1.XML类
extractvalue() 对xml文档查询,报错原理与updatexml相同
updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1) 对xml文档修改
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,Xpath即为xml文档中的路径表示方法(标签即视为路径),有点类似于linux文件系统的路径表示
第三个参数:new_value,String格式,替换查找到的符合条件的数据
语句中,concat返回的路径不符合Xpath格式,所以报XPATH syntax error的错
2.floor()+rand()+group by
向下取整
select count(*),(concat(floor(rand(0)*2),(select version())))x from table1 group by x;
group by会产生虚拟表,floor(rand(0)*2)产生0或1,导致虚拟表主键重复,产生报错
3.exp() 溢出
id=1 and exp(~(select * from(select user())a))
几何函数
geometrycollection(),multipoint(),polygon(),multipolygon(),linestring(),multilinestring()
例如,id=1 and linestring((select * from(select * from(select user())a)b))
宽字节注入原理?
宽字节是在一些特定的编码,如GBK中才有的,编码将两个字节认为是一个汉字(前一个字符ascii码要大于128,才到汉字的范围)。php的addslashes函数为了防止sql注入,将传入参数值进行转义,将' 转义为\\',单引号失去作用。因此,我们需要将\\给绕过,这样才可以加'号。
pdo防sql注入原理?
参数化查询:变量和SQL模板分两次发送,预编译已经产生了词法分析树,再传参不会修改语义。
预编译select a from b where c = ? and d = ? 再传递变量进去
通过sql注入导致RCE?
select ... into outfile 'filename'
例如
select <?php eval($_POST[ximo]); ?> into outfile xxx
具有文件读写权限,写入的文件所在目录有执行权限才可以。
sqlmap的使用模式和支持的数据库?
BEUSTQ,布尔盲注、错误、联合、堆叠、时间、内联
支持数据库:mysql,Oracle,PostgreSQL,Microsoft SQL Server,MicrosoftAccess, IBM DB2,SQLite,Firebird,Sybase和SAP MaxDB
limit 后怎么注入?
procedure analyse()这个子查询,利用extractvalue ,BENCHMARK等函数
Broken Authentication-失效的身份认证
与身份验证和会话管理相关的应用程序功能经常被错误地实现,允许攻击者破坏密码、密钥或会话令牌,或利用其他实现缺陷来暂时或永久地假设其他用户的身份。
Sensitive Data Exposure-敏感数据泄露
许多 Web 应用程序和 API 没有正确保护敏感数据,例如金融、医疗保健。攻击者可能会窃取或修改此类保护不力的数据,以实施信用卡欺诈、身份盗用或其他犯罪活动。敏感数据可能会在没有额外保护的情况下受到损害,例如静态或传输中的加密,并且在与浏览器交换时需要特殊的预防措施。
XXE-XML 外部实体
许多旧的或配置不当的 XML 处理器评估 XML 文档中的外部实体引用。外部实体可用于使用文件 URI 处理程序、内部文件共享、内部端口扫描、远程代码执行和拒绝服务攻击来公开内部文件。
Broken Access Control-无效的访问控制
对经过身份验证的用户可以做什么的限制通常没有得到正确执行。攻击者可以利用这些缺陷来访问未经授权的功能和数据,进而越权,例如访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。
Security Misconfiguration-安全配置错误
安全配置错误可以发生在一个应用程序堆栈的任何层面,包括平台、Web服务器、应用服务器、数据库、框架和自定义代码。开发人员和系统管理员需共同努力,以确保整个堆栈的正确配置。自动扫描器可用于检测未安装的补丁、错误的配置、默认帐户的使用、不必要的服务等。
XSS-跨站脚本攻击
react native框架中xss?
JSON.stringfy将javascript对象转化为了JSON字符串,然后以全局变量的方式插入到了页面中,所以传的字符串有问题,可能会产生这个问题。
XSS漏洞的防御策略?
前端过滤字符,后端白名单(例如,CSP)只允许固定的标签
DOM型XSS和一般的XSS区别?
基于文档对象模型(Document Object Model,DOM)的一种漏洞,在JavaScript脚本动态执行的过程中产生的。
Insecure Deserialization-不安全的反序列化
不安全的反序列化通常会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,它们也可用于执行攻击,包括重放攻击、注入攻击和提权攻击。
Using Components with Known Vulnerabilities-使用已知漏洞的组件
组件(例如库、框架和其他软件模块)以与应用程序相同的权限运行。如果利用易受攻击的组件(如structs 2),此类攻击可能会导致严重的数据丢失或服务器接管。使用具有已知漏洞的组件的应用程序和 API 可能会破坏应用程序防御并引发各种攻击和影响。
Insufficient Logging & Monitoring-日志和监控不足
日志记录和监控不足,再加上与事件响应的集成缺失或无效,使攻击者能够进一步攻击系统,保持持久性,转向更多系统,并篡改、提取或破坏数据。大多数违规研究表明检测违规的时间超过 200 天,通常由外部方而不是内部流程或监控检测到。
OWASP Top 10 (2013及之前版本)
这里补充一下和17不同的几个
不安全密码存储
对重要信息不进行加密处理或加密强度不够,或者没有安全的存储加密信息,都会导致攻击者获得重要信息。此风险还涉及Web应用以外的安全管理。
不安全的对象引用
指一个已经授权的用户,通过更改访问时的一个参数,从而访问到了原本其并没有得到授权的对象。Web应用往往在生成Web页面时会用它的真实名字,且并不会对所有的目标对象访问时来检查用户权限,所以这就造成了不安全的对象直接引用的漏洞。
限制URL访问失败
这个漏洞也是与认证相关的,这种漏洞具体是指在系统已经对url的访问做了限制的情况下,但这种限制并没有生效。常见的例子是系统没有对用户进行角色的检查,以及用户通过修改URL的action并指向未被授权页面就能访问该页面。
缺乏传输层保护
是一种缺少了对敏感数据保护的漏洞,不同在于这种漏洞更多关注的是数据在网络上的传输,造成这个漏洞的原因往往如下:
- 未能识别所有的敏感数据;
- 未能识别敏感数据发送的所有位置;
- 未能在每个位置对敏感数据提供合理的保护
未验证的重定向或跳转
在Web应用中重定向是极为普通的,并且通常重定向所引发的目的是带有用户输入参数的目的url,而如果这些重定向未被验证,那么攻击者就可以引导用户访问他们想要用户访问的站点
同样,转发也是极为普遍的,本质上转发是在同一个应用中对一个新页面发送请求,并且有时是用参数来定义目标页面的。同样,如果参数未被验证,那么攻击者就可以利用其来绕过认证或是授权检查。
危害如下:
攻击者通过重定向可以试图安装恶意软件或诱使受害人泄露密码等铭感信息,通过转发可以绕过访问限制
如何防范:
1.避免使用重定向和转发
2.如果使用了,不要在确定目标时涉及到用户参数
3.如果无法避免使用用户参数,则应确保目标参数值对于当前用户是有效的并已授权
CSRF-跨站伪造请求
CSRF的原理是什么?
构造链接,在自己的网站或邮箱等引诱已登录用户进行点击等操作,进而修改用户信息,如用户的头像、发货地址等。更有甚者,可能执行恶意操作,比如修改密码、添加/删除好友或者点赞/转发/评论/私信。
注:攻击者不能获取信息。
如果是post请求如何攻击?
隐藏form表单,自动提交
如何防范CSRF?
- 添加token
- 二次验证
会话认证管理缺陷
身份认证和会话管理常见安全问题
- 账号或密码未做限制, 可暴力猜解。没有限制登录次数,加验证码
- 弱密码策略, 允许简单密码存在, 如123456 , admin
- 密码找回方案存在缺陷, 如: 密保问题设计
- 密码更改方案存在缺陷
- cookie 作为认证凭证, 携带敏感信息
- Sessionid 没有时效限制, 特别是单点登录令牌在用户注销时没有失效
- 成功注册后, 会话ID 没有轮转。
-
sessionid 和其他认证凭据使用未加密连接传输。
- 混用个性化数据的身份验证数据,个性化数据适于永久的cookie,而身份验证cookie不应是永久的
认证会话管理洞防御
- 设置验证码, 防止暴力猜解
- 强制复杂密码策略, 不允许默认弱密码存在
- 身份认证采用多因素认证
- 认证cookie 中,加入两个时间, 一个是“ 即使一直在活动,也要失效" 的时间,一个是“ 长时间不活动的失效时间"
- cookie设置http only, 防止脚本读取
- Cookie 设置Secure, 只允许https传输
- 网络传递认证凭证采用SSL 加密
SSRF-服务器端请求伪造
SSRF原理?
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,文档等等。SSRF漏洞通过篡改获取资源的请求发送给服务器(服务器并没有检测这个请求是否合法的),然后服务器以他的身份来访问服务器的其他资源。SSRF利用存在缺陷的Web应用作为代理攻击远程和本地的服务器。
SSRF攻击方法?
利用file、dict、gopher协议
常用来进行:
- 端口扫描
- 攻击内网存在漏洞的服务
- 攻击Web应用进行指纹识别及其中的漏洞
- 如果PHP安装了expect扩展,可以通过expect协议执行系统命令
SSRF防御方法?
限制请求的端口只能为Web端口,只允许访问HTTP和HTTPS的请求。
限制不能访问内网的IP,以防止对内网进行攻击
屏蔽返回的详细信息
文件上传
文件上传漏洞原理?
文件上传漏洞是指用户上传了一个可执行的脚本文件(php、jsp、xml、cer等文件),而WEB系统没有进行检测或逻辑做的不够安全。
文件上传绕过方法?
前端检查
- 抓包绕过,修改MIME
后端检查
- 利用WEB服务器解析错误,后缀绕过
- %00文件截断
- 黑名单绕过
- 文件格式检查绕过
文件上传防御
- 文件类型判断(后缀白名单与MIME类型判断结合)
- 文件重命名
- 文件上传目录设置为不可执行
点击劫持
x-frame-option有哪些选项,作用是什么?
- X-Frame-Options: DENY,禁止frame加载
- X-Frame-Options: SAMEORIGIN,同源可加载
- X-Frame-Options: ALLOW-FROM http://xxx.com/,指定某域名与加载
用于抵抗点击劫持
浏览器安全
返回证书错误的原因?
- 证书不是权威机构发布的
- 证书中域名与服务器不对应
- 证书已过期
讲一讲同源策略CSP?
同源策略(Same Origin Policy)是浏览器最基本的的安全功能,限制了来自不同源的“document”或脚本,对当前的“document”读取或设置某些属性。
浏览器将不同的根域名、子域名、端口、协议认为是不同的域。由于浏览器安全限制,数据是不可以直接跨域请求的,除非目标域名授权你可以访问。
说一下jsonp跨域劫持?
HttpOnly的作用?
如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性。
其他
常用的漏洞检测工具?
Nessus、OpenVAS(GVM)
中间人攻击如何防御?
https
内存与缓存的关系?
怎么对攻击溯源?举一个对攻击溯源的例子
- 网站源码分析
- 日志分析
- 服务器端口分析
- 进程分析
举例:网站CPU、内存消耗暴增,某网页访问异常。
查看网站源码进行漏洞定位
日志分析,查看管理员等账号登录时间
服务器端口分析,查看是否开放不常用端口
进行分析,查看当前运行进程,top找到cpu,内存占比大的进程,进而找到后门脚本
怎么检测webshell?
怎么绕过安骑士/安全狗等?
利用Gopher扩展哪些攻击面?
Mysql、Redis等
Struct2漏洞?
UDF提权?
渗透测试
渗透测试的流程?
- 前期交互
- 信息搜集
- 威胁建模
- 漏洞扫描与分析
- 渗透攻击
- 后渗透攻击
- 痕迹清理
- 报告阶段
信息收集
nmap扫描原理,Nmap扫描中的一些细节,针对什么情况使用哪种扫描?
如何对外使用nmap扫描,遇到防火墙的情况又该怎么办?
dmz的作用以及位置?
应急响应的步骤?
收集信息:收集客户信息和中毒主机信息,包括样本。
判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS等等。
深入分析:日志分析、进程分析、启动项分析、样本分析。
清理处置:直接杀掉进程,删除文件,打补丁,抑或是修复文件。
产出报告:整理并输出完整的安全事件报告。
参考:https://www.freebuf.com/articles/terminal/192859.html
如何查找真实ip?
CDN判断和绕过
RPO漏洞
https://www.freebuf.com/articles/web/166731.html
复现过漏洞吗?复现的过程?
这需要你自己写
Linux 安全
怎样对一个linux服务器进行安全加固(怎样将不需要的端口off掉)?
- kill 进程
- service xxx stop
网络安全
ARP攻击原理?
简述ddos攻击,该攻击的原理是什么?
描述下cc攻击?
linux提权?
linux的安全配置?
密码学
AES;DES;RSA;散列;
分别举例,解释原理;
AES里CBC和ECB区别;
AES里的流密码了解吗?
DES里有哪些,
ECC原理了解吗?
RSA是什么,什么时候用?
散列里MD5什么时候用?张晓云教授著名的MD5碰撞原理?
对称加密和非对称加密的区别?
非对称可以认证
签名的原理?
1、将要签名的文件进行hash计算。
2、用私钥将文件的hash值进行签名。
3、除了签名外,还可以添加时间戳以指示签名时间。
1、将原文件进行hash计算得到hash值。
2、将签名的公钥从签名数据中计算出签名数据中的hash值。
3、将步骤1中得到的hash值和步骤2得到的hash值进行对比,如果对比结果一致则验证通过,反之验证失败。
PKI的架构?
建议大家在简历上面具体写出几个漏洞,方便面试官提问和自己做准备。
参考
以上是关于网络安全-常见面试题(Web渗透测试密码学等)的主要内容,如果未能解决你的问题,请参考以下文章