这是一篇长期更新的随笔,如有更好的面试经验 / 题目分享,欢迎联系我~
Web安全方面
该部分主要收集关于Web安全方面的面试经验,主要是TOP10,外网打点,Web信息收集等。
推荐配合靶场练习更容易理解。
1. SQL注入的原理是什么?
SQL注入主要是由于意料之外的拼接和解析SQL语句造成。
当服务端使用语句拼接的方式构建SQL语句并带入后台查询时,
如果用户构造恶意的SQL语句并与服务端SQL语句拼接,
就会造成SQL注入攻击。
2. SQL注入绕过WAF的方式有哪些?
包括但不限于:编码伪装(如URL编码,Unicode编码),转义字符伪装,大小写伪装,双写伪装,内联注释伪装
3. 如何利用SQL注入写入Shell?
利用into outfile函数即可写入Shell,或利用sqlmap的--os-shell功能。
4. 如何防止SQL注入攻击?
使用预编译语句或者参数化查询,或最小化数据库权限,安全配置数据库参数,使用WAF检测等。
5. SQL注入除了可以在网页构造注入点,还有哪些地方可以成为注入点?
还可以在HTTP请求的头信息进行SQL注入,包括但不限于:User-Agent,Referer,Cookie,X-Forwarded-For,Host等。
6. SQL注入的报错函数有哪些?请举例。
updatexml(),extractvalue(),floor(),ST_LatFromGeoHash(),ST_LongFromGeoHash(),
GTID_SUBSET(),GTID_SUBTRACT(),ST_Pointfromgeohash()
(一般只用到前三个)
7. 关于SQL盲注,你能简单说一下吗?
好的,盲注是在有回显SQL注入的基础上,依然将SQL语句代入执行,但并无直观的回显,这种类型的SQL注入叫做SQL盲注。
盲注大致分两种类型:布尔盲注 / 时间盲注
布尔盲注是有且只有True / False 两种情况的直观回显。
时间盲注是并无任何直观回显,我们需要利用if(),sleep()等函数构造时间差来使回显直观化。
8. sqlmap你有使用过吗?简单说一下一个sqlmap攻击流程?
有用过,sqlmap主要是先用--dbs探测能否注入出来数据库,然后再用--tables来注入出来数据表,
随后--columns注入出列(字段),最后--dump注入出数据。
同时也可以--os-shell直接写入Shell。
9. MySQL5.0以下和5.0以上注入有什么区别?
5.0以下没有information_schema这个内置表,只能利用类似盲注的方式暴力跑库。
5.0以上可以用information_schema来直观注入。
10. SQL注入如果空格被过滤了,那么应该怎么替代空格?
%0a,%0b,%a0,/**/等。
11. XSS的原理是什么?
XSS全称为跨站脚本攻击,其漏洞主要是恶意攻击者在Web页面里插入恶意HTML语句,
当用户浏览该页面时,嵌套在Web页面中的恶意HTML语句被触发,从而达到恶意目的。
12. XSS的几种类型可以说一下吗?
好的,XSS一共有三种类型,分别是:反射型,存储型,DOM型。
反射型XSS一般通过用户的不自觉输入恶意参数触发,一般在URL上构造参数,直接反射到页面上。
存储型XSS直接将恶意脚本语句保存在目标服务器中,当其它用户访问该网页时不附带任何参数即可直接触发。
DOM型XSS是通过客户端脚本来修改DOM的方式实现的,不涉及服务器端的脚本处理。
13. XSS攻击能用来做什么?
XSS攻击可以利用的目的包括但不限于:窃取用户Cookie,会话劫持,钓鱼攻击,篡改网页等。
14. 如果你被XSS攻击了,你该怎么最快速度判断你受的是何种XSS攻击?
这个需要具体情况具体分析:
反射型XSS的判断方式是:再次发送一遍带有XSS代码的请求,只能在第一次返回的数据包中发现XSS代码。
存储型XSS的判断方式是:再次发送一遍带有XSS代码的请求,返回包里还存在XSS代码。
DOM型XSS的判断方式是:再次发送一遍带有XSS代码的请求,你在返回包中看不到XSS代码。
15. XSS绕过方式简单说一下?
包括但不限于:编码绕过(例如URL编码,HTML实体编码,多次编码),双写绕过,无意义字符绕过,事件属性绕过等。
16. 请简单说一下CSRF的原理是什么?
好的,CSRF全称为跨站请求伪造,原理是用户的身份被攻击者恶意盗用,以用户的身份对服务器发送恶意请求,
对于服务器来说认为这个请求是完全合法合规的,于是完成了攻击者的意图。
17. CSRF的危害有哪些呢?
CSRF的具体使用场景有很多,包括但不限于:
在不经意见接管账户,
传播CSRF蠕虫,
利用CSRF获取敏感信息等。
18. 关于CSRF漏洞的防护思路,请简述一下。
CSRF的防御方式包括但不限于:
尽量使用POST传参,这样能规避参数直接在URL中被传递出去。
利用Token进行校验。
19. SSRF漏洞是什么?
SSRF是服务器端请求伪造,与CSRF相似,但利用方式从客户机变成了服务器。通过服务器对外部系统进行意外的请求。
20. SSRF漏洞应该怎么事先防御?
SSRF的防护方式包括但不限于:
输入验证(即常见的黑白名单),
网络访问控制(ACL),
身份验证和授权(如请求权限校验,API密钥和OAuth进行身份校验)等。
长期更新,未完待续......