10道渗透测试面试题(附答案)、知识点 01

文章讲述了CSRF、XSS和XXE的安全威胁及修复方法,区分了不同类型的XSS,比较了GET和POST的区别,并介绍了渗透网站的步骤,包括信息收集、漏洞发现、利用和修复。还讨论了Java、Shiro和PHP的反序列化风险,以及webshell的工作原理和识别CMS的价值。
摘要由CSDN通过智能技术生成

每天都会更新10道面试题或知识点,10天就是100道,一个月就是300道,一年就是好多道。

1、CSRF 和 XSS 和XXE 有什么区别,以及修复方式:

XSS:跨站脚本攻击,用户提交数据时构造恶意代码,并且执行,从而实现窃取用户信息等攻击。

修复方式:1、对实体字符进行转义。2、使用http only 来禁止js读取cookie值。3、输入时校验、浏览器与web应用端采用相同的字符编码。

CSRF:跨站请求伪造攻击。CSRF攻击可以利用用户已经登录或已授权的状态,伪造合法用户发出请求给受信任的网点,从而实现在未授权的情况下执行一些操作。

修复方式:筛选出需要防范CSRF的页面,然后嵌入token、校验referer

XXE:XML外部实体注入攻击。XML是可扩展的标记性语言,用来进行数据的传输和存储。其分为内部实体和外部实体,外部实体就是引入外部的东西,就类似与js中的引入外部js文件,如何判断有没有xxe漏洞呢,就看他能不能解析xml,如果能解析,那就可以利用file协议读取Windows的ini文件。

修复方式:xml解析库在调用时严格禁止对外部实体的解析。

2、xss有哪几种类型:

反射型:恶意代码并没有保存在目标网站,后端直接进行处理。(后端)

存储型:把恶意代码加载进了数据库里,每次进行查库操作时就会激活代码。(后端,数据库)

DOM型:通过修改网页的DOM节点形成xss。(前端)

区别:反射型的恶意代码存在url里,存储型的恶意代码存在服务器端数据库里,而DOM型恶意代码由前端浏览器完成。

3、GET和POST的区别:

  1. GET把请求数据放在URL上,以?分割URL和传输数据,参数之间用&连接,所以GET不太安全。

    POST把数据放在HTTP数据包里面(请求体 request body)

  2. GET是获取数据,POST是提交数据

  3. GET提交的数据最大是2K(实际取决于浏览器);POST理论上是没有限制的。

  4. GET产生一个TCP数据包,浏览器会把http header 和 data一并发出去,服务器响应200。POST产生两个TCP数据包,浏览器先发送header,服务器响应100(continue),浏览器再发送data,服务器响应200。

  5. GET请求会被浏览器主动缓存;POST不会,除非手动设置。

4、拿到一个待检测的站,你该如何渗透,渗透思路:

信息收集  

  • 服务器相关信息:真实ip、系统类型、版本、开放的端口等。

  • 网站指纹:CMS、cdn、证书等、dns记录。

  • whois信息:姓名、备案、邮箱、电话等。

  • 子域名收集、旁站、C段等。

  • 扫描网站目录结构,爆破后台。

  • google hacking

漏洞发现

        SQL注入、文件上传、命令执行、XSS、XXE、文件包含等。

漏洞利用

getshell

权限提升

权限维持

内网扫描

内网攻击

痕迹清理

总结报告及修复方案

5、Java反序列化了解吗:

Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,其作用是把对象转化成字节流,便于保存或者传输。而ObjectInputStream类的readObject()方法用于反序列化,作用就是把字节流还原成对象。

6、shiro反序列化:

  • Shiro反序列化主要是Apache Shiro提供了一个remember的功能,用户登录成功后会生成经过加密并编码的cookie,保存在浏览器中方便用户的日常使用

  • 而服务器对cookie的处理流程就是先获取浏览器上保存的cookie,然后将其base64解码,再进行AES解密,再将其反序列化进行校验。

  • 而漏洞就出现在这里,我们都知道AES让他是一个硬编码,他是有默认密钥的,如果程序员没有去修改或者过于简单,那我们就可以进行 cookie重构,先构造我们的恶意代码,然后将恶意代码进行反序列化,然后AES加密(密钥我们已经爆破出来了),再进行base64编码,形成我们的新cookie,而服务器在处理时就会按照我们刚才的处理流程,就会在服务端触发我们的构造的恶意代码。

7、php反序列化有了解吗:

PHP反序列化可以简单分成两类:一种无类,一种有类,无类利用就比较简单,如果源码会将输入的值进行反序列化,那我们就需要提前将数据序列化后再传入。而想要利用有类就要用到魔术方法,例如我们在创建对象时就会触发 _ construct(),并执行 _contruct()中的代码。

8、webshell的原理:

webshell他是一种网页后门。攻击者在入侵一个网站后,通常会将asp或者php后门文件与网站服务器web目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。

9、判断出网站的CMS对渗透有什么意义:

查找网上已曝光的程序漏洞。

如果开源,还能下载相应的源码进行代码审计。

10、一个成熟且相对安全的CMS,渗透时扫目录的意义:

敏感文件,二级目录扫描。

站长的误操作比如:网站备份的压缩文件、说明.txt二级目录可能存放着其他站点。

持续更新中。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值