网络安全-常见面试题(Web、渗透测试、密码学、Linux等)_密码输入什么拼接字符,可以绕过认证

学习路线:

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

Linux 安全

网络安全

密码学

参考


秋招接近尾声,安全比较小众,题和面经都比较少,这是博主秋招时准备的题,学习安全不到两年,只有web了解的多一点,答案不保证准确性,仅做参考。。。喜欢的点赞,收藏一波~

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注入了。

过滤了select怎么注入?

盲注 但是只能注入当前表
如果可以堆叠注入的话,可以赋值变量为16进制

mysql不知道列名怎么爆字段?

查询information_schema表。

追问,这个表无权访问怎么办?

利用union查询,进行查询时语句的字段数必须和指定表中的字段数一样,不能多也不能少,不然就会报错,例如: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)),利用exp溢出、取反~、子查询。

基于exp溢出的sql报错注入

几何函数

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注入写webshell导致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等函数

参考:MySQL 在 LIMIT 条件后注入 - 情三 - 博客园

Broken Authentication-失效的身份认证

与身份验证和会话管理相关的应用程序功能经常被错误地实现,允许攻击者破坏密码、密钥或会话令牌,或利用其他实现缺陷来暂时或永久地假设其他用户的身份

例如:token不够随机,可预测

Sensitive Data Exposure-敏感数据泄露

许多 Web 应用程序和 API 没有正确保护敏感数据,例如金融、医疗保健。攻击者可能会窃取或修改此类保护不力的数据,以实施信用卡欺诈、身份盗用或其他犯罪活动。敏感数据可能会在没有额外保护的情况下受到损害,例如静态或传输中的加密,并且在与浏览器交换时需要特殊的预防措施。

例如,查看他人信息的API,身份证号在前端加了*,导致可以在流量中获取完整身份证号,导致密码为生日的用户被攻击。

XXE-XML 外部实体

许多旧的或配置不当的 XML 处理器评估 XML 文档中的外部实体引用。外部实体可用于使用文件 URI 处理程序、内部文件共享、内部端口扫描、远程代码执行和拒绝服务攻击来公开内部文件。

简述一下XXE漏洞产生的原理,针对PHP和JAVA,XXE分别可以进行哪些恶意利用?

服务端接收并解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入。

图片来源:
https://xz.aliyun.com/t/3357#toc-8

Broken Access Control-无效的访问控制

对经过身份验证的用户可以做什么的限制通常没有得到正确执行。攻击者可以利用这些缺陷来访问未经授权的功能和数据,进而越权,例如访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。

Security Misconfiguration-安全配置错误

安全配置错误可以发生在一个应用程序堆栈的任何层面,包括平台、Web服务器、应用服务器、数据库、框架和自定义代码。开发人员和系统管理员需共同努力,以确保整个堆栈的正确配置。自动扫描器可用于检测未安装的补丁、错误的配置、默认帐户的使用、不必要的服务等。

XSS-跨站脚本攻击

XSS漏洞的防御策略?

前端过滤字符,后端白名单(例如,CSP)只允许固定的标签,设置http-only,防止cookie被读取。

DOM型XSS和一般的XSS区别?

基于文档对象模型(Document Object Model,DOM)的一种漏洞,在JavaScript脚本动态执行的过程中产生的。

存储型xss在纯内网的环境中,可以怎么利用?

xss本质上是任意代码执行,不要仅限于弹cookie,知名的XSS框架beef可以参考一下,xss可以修改网站页面,甚至可以扫描端口,如果你也在内网,可以嗅探密码等等。

react native框架中的xss?

JSON.stringfy将JavaScript对象转化为了JSON字符串,然后以全局变量的方式插入到了页面中,所以传的字符串有问题,可能会产生这个问题。

Insecure Deserialization-不安全的反序列化

不安全的反序列化通常会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,它们也可用于执行攻击,包括重放攻击、注入攻击和提权攻击。

Using Components with Known Vulnerabilities-使用已知漏洞的组件

组件(例如库、框架和其他软件模块)以与应用程序相同的权限运行。如果利用易受攻击的组件(如structs 2),此类攻击可能会导致严重的数据丢失或服务器接管。使用具有已知漏洞的组件的应用程序和 API 可能会破坏应用程序防御并引发各种攻击和影响。

Insufficient Logging & Monitoring-日志和监控不足

日志记录和监控不足,再加上与事件响应的集成缺失或无效,使攻击者能够进一步攻击系统,保持持久性,转向更多系统,并篡改、提取或破坏数据。大多数违规研究表明检测违规的时间超过 200 天,通常由外部方而不是内部流程或监控检测到。

OWASP Top 10 (2013及之前版本)

这里补充一下和2017不同的几个

不安全密码存储

对重要信息不进行加密处理或加密强度不够,或者没有安全的存储加密信息,都会导致攻击者获得重要信息。此风险还涉及Web应用以外的安全管理。

例如,2011年某博客网站被拖库,密码使用明文存储。

不安全的对象引用

指一个已经授权的用户,通过更改访问时的一个参数,从而访问到了原本其并没有得到授权的对象。Web应用往往在生成Web页面时会用它的真实名字,且并不会对所有的目标对象访问时来检查用户权限,所以这就造成了不安全的对象直接引用的漏洞。

例如,不进行鉴权时,抓包修改可能导致访问未授权链接,例子

限制URL访问失败

这个漏洞也是与认证相关的,这种漏洞具体是指在系统已经对url的访问做了限制的情况下,但这种限制并没有生效。常见的例子是系统没有对用户进行角色的检查,以及用户通过修改URL的action并指向未被授权页面就能访问该页面。

缺乏传输层保护

是一种缺少了对敏感数据保护的漏洞,不同在于这种漏洞更多关注的是数据在网络上的传输,造成这个漏洞的原因往往如下:

  • 未能识别所有的敏感数据;
  • 未能识别敏感数据发送的所有位置;
  • 未能在每个位置对敏感数据提供合理的保护

例如,某网站使用http而不是https。

未验证的重定向或跳转

在Web应用中重定向是极为普通的,并且通常重定向所引发的目的是带有用户输入参数的目的url,而如果这些重定向未被验证,那么攻击者就可以引导用户访问他们想要用户访问的站点

同样,转发也是极为普遍的,本质上转发是在同一个应用中对一个新页面发送请求,并且有时是用参数来定义目标页面的。同样,如果参数未被验证,那么攻击者就可以利用其来绕过认证或是授权检查。

危害如下:

攻击者通过重定向可以试图安装恶意软件或诱使受害人泄露密码等敏感信息,通过转发可以绕过访问限制

如何防范:

1.避免使用重定向和转发

2.如果使用了,不要在确定目标时涉及到用户参数

3.如果无法避免使用用户参数,则应确保目标参数值对于当前用户是有效的并已授权

CSRF-跨站伪造请求

CSRF的原理是什么?

构造链接,在自己的网站或邮箱等引诱已登录用户进行点击等操作,进而修改用户信息,如用户的头像、发货地址等。更有甚者,可能执行恶意操作,比如修改密码、添加/删除好友或者点赞/转发/评论/私信。

注:攻击者不能获取信息,因为是浏览器发送请求给网站服务器。

如果是post****请求如何攻击?

隐藏form表单,自动提交

没有表单,只是post请求呢?

ajax发送post请求

如何防范CSRF?

  1. referer检测
  2. 添加token
  3. 二次验证
会话认证管理缺陷

身份认证和会话管理常见安全问题

  • 账号或密码未做限制, 可暴力猜解。没有限制登录次数,加验证码
  • 弱密码策略, 允许简单密码存在, 如123456 , admin
  • 密码找回方案存在缺陷, 如: 密保问题设计
  • 密码更改方案存在缺陷
  • cookie 作为认证凭证, 携带敏感信息
  • Sessionid 没有时效限制, 特别是单点登录令牌在用户注销时没有失效
  • 成功注册后, 会话ID 没有轮转。
  • sessionid 和其他认证凭据使用未加密连接传输。
  • 混用个性化数据的身份验证数据,个性化数据适于永久的cookie,而身份验证cookie不应是永久的

认证会话管理洞防御

  • 设置验证码, 防止暴力猜解
  • 强制复杂密码策略, 不允许默认弱密码存在
  • 身份认证采用多因素认证或强身份认证
  • 认证cookie 中,加入两个时间, 一个是“ 即使一直在活动,也要失效" 的时间,一个是“ 长时间不活动的失效时间"
  • cookie设置http-only, 防止脚本读取
  • cookie 设置Secure, 只允许https传输
  • 网络传递认证凭证采用SSL/TLS加密

SSRF-服务器端请求伪造

SSRF原理?

SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,文档等等。SSRF漏洞通过篡改获取资源的请求发送给服务器(服务器并没有检测这个请求是否合法的),然后服务器以他的身份来访问服务器的其他资源。SSRF利用存在缺陷的Web应用作为代理攻击远程和本地的服务器。

SSRF攻击方法?

利用file、dict、gopher协议

常用来进行:

  • 端口扫描
  • 攻击内网存在漏洞的服务
  • 攻击Web应用进行指纹识别及其中的漏洞
  • 如果PHP安装了expect扩展,可以通过expect协议执行系统命令

SSRF无回显的时候应该怎么探测内网信息?

Dnslog外带,参考:巧用DNSlog实现无回显注入_weixin_30335575的博客-CSDN博客

SSRF防御方法?

限制请求的端口只能为Web端口,只允许访问HTTP和HTTPS的请求。

限制不能访问内网的IP,以防止对内网进行攻击

屏蔽返回的详细信息

文件上传&文件包含

文件上传****漏洞原理?

文件上传漏洞是指用户上传了一个可执行的脚本文件(php、jsp、xml、cer等文件),而WEB系统没有进行检测或逻辑做的不够安全。

文件上传绕过方法?

前端检查

  • 抓包绕过,修改MIME

后端检查

  • 利用WEB服务器解析错误,后缀绕过
  • %00文件截断
  • 黑名单绕过
  • 文件格式检查绕过

文件上传防御

  1. 文件类型判断(后缀白名单与MIME类型判断结合)
  2. 文件重命名
  3. 文件上传目录设置为不可执行

文件包含与上传

已知某网站存在LFI(本地文件包含),但是无法上传任何文件,针对该情况有哪些利用方式?

查看敏感文件,如/etc/passwd
包含本地日志文件getshell,如ssh登录日志

点击劫持

x-frame-option有哪些选项,作用是什么?

  • X-Frame-Options: DENY,禁止frame加载
  • X-Frame-Options: SAMEORIGIN,同源可加载
  • X-Frame-Options: ALLOW-FROM http://xxx.com/,指定某域名与加载

用于抵抗点击劫持

浏览器安全

返回证书错误的原因?

  • 证书不是权威机构发布的
  • 证书中域名与服务器不对应
  • 证书已过期

讲一讲同源策略SOP?

同源策略(Same Origin Policy)是浏览器最基本的的安全功能,限制了来自不同源的“document”或脚本,对当前的“document”读取或设置某些属性。

浏览器将不同的根域名、子域名、端口、协议认为是不同的域。由于浏览器安全限制,数据是不可以直接跨域请求的,除非目标域名授权你可以访问。

讲一讲内容安全策略CSP?

内容安全策略(Content Security Policy,简称 CSP),与内容安全有关,主要是用来定义哪些资源可以被当前页面加载,减少 XSS 的发生。最早在firefox 23中实现,当时使用的是 X-Content-Security-Policy,它使用了前置词的内容安全性策略,并以W3C CSP1.0规范作为标准。

CSP 有三类:

  • Content-Security-Policy (Google Chrome)
  • X-Content-Security-Policy(Firefox)
  • X-WebKit-CSP (WebKit-based browsers, e.g. Safari)

说一下jsonp跨域劫持?

知道创宇-jsonp劫持分析

HttpOnly的作用?

如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击窃取cookie内容的情况发生,这样就增加了cookie的安全性。

PHP安全

PHP中如何使用phar://伪协议触发反序列化,利用场景以及前提条件有哪些?

利用phar文件会以序列化的形式存储用户自定义的meta-data这一特性,拓展了php反序列化漏洞的攻击面。

前提:可控制输入.phar文件,被攻击服务器有使用phar伪协议解析phar文件

如何绕过php.inidisable_function的限制,有哪些方法?

bypass disable_function

文件上传中%00截断的原理是什么,利用前提条件是什么?

其实截断的原理也很简单,无论0x00还是%00,最终被解析后都是一个东西:chr(0)
chr()是一个函数,这个函数是用来返回参数所对应的字符的,也就是说,参数是一个ASCII码,返回的值是一个字符,类型为string。
那么chr(0)就很好理解了,对照ASCII码表可以知道,ASCII码为0-127的数字,每个数字对应一个字符,而0对应的就是NUT字符(NULL),也就是空字符,而截断的关键就是这个空字符,当一个字符串中存在空字符的时候,在被解析的时候会导致空字符后面的字符被丢弃

利用条件:

1.  php版本小于5.3.4
2.  php的magic\_quotes\_gpc为OFF状态

其他

常用的漏洞检测工具?

Nessus、OpenVAS(GVM)、X-scan、腾讯 T-Sec、华为 VSS

中间人攻击如何防御?

加密传输,例如,使用https代替http

怎么对攻击溯源?举一个对攻击溯源的例子

  • 网站源码分析
  • 日志分析
  • 服务器端口分析
  • 进程分析

举例:网站CPU、内存消耗暴增,某网页访问异常。

查看网站源码进行漏洞定位

日志分析,查看管理员等账号登录时间

服务器端口分析,查看是否开放不常用端口

进行分析,查看当前运行进程,top找到cpu,内存占比大的进程,进而找到后门脚本

怎么检测webshell?

检测危险函数,如,exec,eval等

文件名,检测常见wenshell文件名,如php一句话.php,php小马.php

日志分析,某页面总访问量小,访问IP数量少

机器学习建模,文本特征提取

实现一个一句话webshell,绕过RASP的方式有哪些,绕过机器学习检测的方式有哪些,绕过AST-Tree的方式有哪些?

rasp这类工具是基于java、php运行期的堆栈信息进行分析,可以尝试使用jni技术进行绕过。java技术栈中的jni的原理是使用java调用c、c++函数,具体实现的思路是jsp编译为class文件,该class通过jni技术调用另外一处dll里的函数绕过黑名单执行命令获取回显,即可实现rasp和安全防护软件的绕过。github地址:https://github.com/nanolikeyou/jniwebshell

利用Gopher扩展哪些攻击面?

Mysql、Redis等

Struct2漏洞?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值