渗透测试面试总结【WEB篇】

渗透测试面试总结【WEB篇】

    • 1.SQL注入
        • SQL注入原理
        • SQL注入分类
        • SQL注入防御
    • 2.XSS
        • XSS原理
        • XSS分类
        • 不同XSS的区别
    • 3.CSRF/SSRF
        • CSRF 成功利用的条件
        • 如何防止CSRF?
        • SSRF原理
        • SSRF危害
        • SSRF防御
    • 4.文件上传
        • 文件上传分类
        • 文件上传的突破
    • 5.XXE
        • XXE的原理
        • XXE的分类
        • XXE有哪些引入方式
        • 遇到XXE的盲注怎么办
    • 6.CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
    • 7.CSRF、SSRF和重放攻击有什么区别?

1.SQL注入

SQL注入原理

WEB应用程序对用户输入的数据没有过滤或者过滤的不严谨,并且把用户输入的数据当作SQL 语句带入到数据中去执行

SQL注入分类

# 从反馈结果来分
    1-回显型
    2-无回显型/盲注
# 从攻击手法上来分
    1-联合查询注入 union select
    2-堆叠注入 
    3-报错注入 updatexml、floor、ExtractValue 其他的用的不多不用说
    4-盲注
        4.1-布尔盲注
        4.2-时间盲注

SQL注入防御

# 代码层防御
    1-对用户输入的内容进行转义(PHP中addslashes()、mysql_real_escape()函数)。
    2-限制关键字的输入(PHP中preg_replace()函数正则替换关键字),限制输入的长度 。
    3-使用SQL语句预处理,对SQL语句首先进行预编译,然后进行参数绑定,最后传入参数。
# 网络层面
    部署防护墙和软硬WAF

2.XSS

XSS原理

1-XSS漏洞是跨站脚本攻击
2-是HTML代码的注入
3-他是通过对网页,注入浏览器可执行的代码,从而实现的攻击手段。

XSS分类

1-反射型
2-存储型
3-DOM型

不同XSS的区别

# 反射型 和 存储型
    都需需要经过服务器解析,并与数据库产生交互
# DOM 型
    只需要经过前端解析,不与数据库产生交互

# 存储型 和 DOM型
    都会将攻击代码长期存在受害者服务器

#  反射型
    而反射型,只会反弹一次攻击代码

3.CSRF/SSRF

CSRF 成功利用的条件

1- 用户在统一浏览器下
2- 没有关闭浏览器的情况下
3- 访问了攻击者精心伪装好的恶意链接

如何防止CSRF?

1、验证referer
2、添加token
3、关键地方验证码验证
4、尤其是修改密码,要验证旧密码

SSRF原理

1- 服务器允许向其他服务器获取资源
2- 但是并没有对该地址做严格的过滤和限制
3- 所以导致了攻击者可以向受害者服务器,传入任意的URL 地址,并将数据返回

SSRF危害

1- SSRF漏洞几乎无所不能
2- SQL注入
3- Sturts2
4- 端口探测
5- 敏感信息泄露
# 最为主要的就是能够访问到外网无法访问的系统和服务器,漫游内网

SSRF防御

1- 地址做白名单处理
2- 域名识别ip,过滤内部ip
3- 并校验返回的内容对比是否与假定的一致

4.文件上传

文件上传分类

1- 白名单
2- 黑名单

文件上传的突破

1- 前端JS突破:抓包修改文件名 或者 禁用当前浏览器的JS脚本
2- 后端突破:
    2.1-黑名单:方法太多了 点、空格点、 php 1234567 、phphtml、分布式文件上传、文件流绕过....
    2.2-白名单:比较鸡肋的00截断、时间竞争、双文件上传、双文件名...

3- 其他:前端绕过、大小写突破、双重后缀名突破、过滤绕过、特殊后缀名、特殊后缀名等等

5.XXE

XXE的原理

# XXE漏洞就是xml外部实体注入漏洞,
通常和危害一起回答出来会感觉更加流畅和自然
# 通常发生在应用程序解析XML输入时,没有禁止外部实体的加载,
    导致可加载恶意外部文件,
    造成文件读取、
    命令执行、
    内网端口扫描、
    攻击内网网站、
    发起dos攻击等危害。

XXE的分类

1- 有回显型XXE
2- 无回显型XXE

XXE有哪些引入方式

1- 本地映入
2- 外部引入
3- 外部参数实体引入

遇到XXE的盲注怎么办

# 如果遇到XXE无回显注入的话,可以选择使用DNS外带和 外部参数实体注入
1- 在攻击者自己的公网服务器,准备一个test.dtd通过base64为将读取的内容加密得到的值当作传参值,发送给攻击者的公网服务器

2-受害者那边,通过外部参数实体注入 访问攻击者公网服务器下的test.dtd文件

3-最后看,攻击者公网服务器,的日志,转码得到受害者服务器的内容

6.CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?

XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。
修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。

CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。
修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer

XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。
修复方式:XML解析库在调用时严格禁止对外部实体的解析。

7.CSRF、SSRF和重放攻击有什么区别?

CSRF是跨站请求伪造攻击,由客户端发起
SSRF是服务器端请求伪造,由服务器发起
重放攻击是将截获的数据包进行重放,达到身份认证等目的

你可能感兴趣的:(渗透测试专题,安全,web安全,渗透测试)