每天都会更新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的区别:
-
GET把请求数据放在URL上,以?分割URL和传输数据,参数之间用&连接,所以GET不太安全。
POST把数据放在HTTP数据包里面(请求体 request body)
-
GET是获取数据,POST是提交数据
-
GET提交的数据最大是2K(实际取决于浏览器);POST理论上是没有限制的。
-
GET产生一个TCP数据包,浏览器会把http header 和 data一并发出去,服务器响应200。POST产生两个TCP数据包,浏览器先发送header,服务器响应100(continue),浏览器再发送data,服务器响应200。
-
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二级目录可能存放着其他站点。
持续更新中。。。。