开发者社区> dahezhiquan> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【WEB篇基础】面试

简介: SSRF原理/危害 原理: 服务器允许向其他服务器获取资源,但是并没有对该地址做严格的过滤和限制,所以导致了攻击者可以向受害者服务器,传入任意的URL 地址,并将数据返回 SSRF危害: SSRF漏洞几乎无所不能,SQL注入,Sturts2,端口探测,敏感信息泄露。最为主要的就是能够访问到外网无法访问的系统和服务器,漫游内网 SSRF防御
+关注继续查看


1.SQL注入


SQL注入分类,类型


# 从反馈结果来分 
    1-回显型
    2-无回显型/盲注
# 从攻击手法上来分
    1-联合查询注入 union select
    2-堆叠注入 
    3-报错注入 updatexml、floor、ExtractValue 其他的用的不多不用说
    4-盲注
        4.1-布尔盲注
        特点:根据页面正确和错误的两种状态,来判断构造语句是否正确
        4.2-时间盲注
        特点:时间型盲注页面没有明显的回显,只能根据页面刷新时间的长短来去判断构造语句是否正确
        常用函数:sleep,if等
        易受网络波动影响
    5-宽字节注入
    利用条件:数据库采用gbk字符集,网站将引号转义为反斜杠加引号
    原理:GBK双字节编码中用两个字节表示一个汉字,可以使用%df使闭合字符绕过反斜杠转义。
# 以数据传输方式分类
    1-post类型
    2-get类型
# 有无闭合字符分类,常用闭合字符:单引号’  双引号“   单引号括号‘) 双引号括号”)
    1-字符型
    2-整数型    


SQL注入防御


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


Sql注入绕WAF姿势


1-函数大小写混合绕过: 服务器端检测时未开启大小写不敏感
2-多重关键字绕过:服务器端检测到敏感字符时替换为空(ununionion selselectect)
3-编码绕过:服务器端未检测或检测不严具有编码形式的关键字(十六进制编码、URL编码、Unicode编码)
4-注释绕过:服务器端未检测或检测不严注释内的字符串(/**/,/*!*/,/*!12345*/,#,-- -等)
5-等价函数或命令绕过:服务器端黑名单不完整,过滤不严
等价函数形式:
Mysql查询:Union distinct、updatexml、Extractvalue、floor
字符串截取函数:mid、substr、substring、left、reverse
字符串连接函数:concat、group_concat、concat_ws
字符串转换:char、hex、unhex
替换逗号:limit 1 offset 0,mid(version() from 1 for 1)
替换等号:like


如何挖掘sql注入漏洞


SQL注入流程:


首先我会看下这个网站是否是动态网站,然后通过手工注入或者使用sqlmap工具进行扫描。

手注会先尝试用敏感字符进行尝试,找出闭合字符,然后根据页面状态选择注入的模式,比如如果是联合查询,接下来就是判断列数,判断显示位,求网站当前数据库,求当前数据库所有表名,求指定表下列名,求指定列名下字段。

手注:


image


手注方式挂马用到什么函数:union ,select ,into outfile

sql注入漏洞挂马利用成功的条件:


1、支持联合查询
2、知道网站的绝对路径
3、上传马的路径允许写入文件
4、木马上传上去后能够被解析执行。
5、能够找到木马上传上去以后的位置。


2.XSS


XSS分类


1-反射型
2-存储型,危害最大(它是一种持久化的攻击,因为其恶意代码直接存储到了网站服务器中)
3-DOM型


不同XSS的区别


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

# 存储型 和 DOM型
    都会将攻击代码长期存在受害者服务器
#  反射型
    而反射型,只会反弹一次攻击代码


3.CSRF(跨站请求伪造)/SSRF


CSRF 成功利用的条件/原理


1- 用户在统一浏览器下
2- 没有关闭浏览器的情况下
3- 访问了攻击者精心伪装好的恶意链接
原理:跨站请求伪造是攻击者通过用户的浏览器来注入额外的网络请求,控制浏览器发送攻击者精心构造的恶意请求


如何防止CSRF?


1、验证referer,仅响应referer头带本域的请求
2、添加token
3、关键地方验证码验证
4、尤其是修改密码,要验证旧密码
5、使用localstorage和sessionstorage保存会话


SSRF原理/危害


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

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


SSRF防御


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


4.文件上传


文件上传分类


1- 白名单
2- 黑名单


你会上传什么马?


文件上传漏洞一般上传什么马?


符合网站语言环境的一句话、冰蝎、大马等等🌔


网站是iis服务器:asp或者aspx,不成功的话将文件后缀名改为asa或者cdx或者cer尝试进行上传 (iis服务器开启了文件后缀扩展功能)

Apache服务器,中间件是nginx:php

tomcat中间件,weblogic中间件:Jsp


文件上传的突破


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


5.文件包含


文件包含原理


文件包含是指在程序编写过程中,为了减少重复的代码编写操作,将重复的代码采取从外部引入的方式,但如果包含被攻击者所控制,就可以通过包含精心构造的脚本文件来获取控制权,一般分为本地包含和远程包含,常出现在php等脚本语言中,包含命令主要有include,include_once,require,require_once。


文件包含漏洞修复


1-对文件进行敏感内容查找
2-限制文件类型


6.命令执行漏洞


常见命令执行函数


PHP命令执行函数


system,shell_exec,passthru,exec,popen,proc_open,putenv,assert


7.XXE(xml外部实体注入漏洞)


XXE的原理


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


XXE的分类/引入方式


分类:
1- 有回显型XXE
2- 无回显型XXE

引入方式:
1- 本地引入
2- 外部引入
3- 外部参数实体引入


遇到XXE的盲注怎么办


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

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

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


8.逻辑漏洞


常见逻辑漏洞


# 密码找回漏洞中存在
    1)密码允许暴力破解、
    2)存在通用型找回凭证、
    3)可以跳过验证步骤、
    4)找回凭证可以拦包获取
    5)前端返回等方式来通过厂商提供的密码找回功能来得到密码。

# 身份认证漏洞中最常见的是
    1)会话固定攻击
    2)Cookie 仿冒
    只要得到 Session 或 Cookie 即可伪造用户身份。

# 验证码漏洞中存在
    1)验证码允许暴力破解
    2)验证码可以通过 Javascript 或者改包的方法来进行绕过
    3)空值绕过
    4)验证码的值可控


越权漏洞


原理:越权的本质是失效的访问控制,即未对通过身份验证的用户实施恰当的访问控制。


1- 水平越权:可以不经过验证操作其它同等权限的账号
2- 垂直越权:可以不经过验证操作就可以操作权限更大的账号


逻辑漏洞加固手段


1-关闭不常用的端口和服务
2-开启防火墙
3-不允许外部USB设备的插入
4-数据库不允许匿名登陆
5-漏洞扫描修复
6-修改一些中间件或系统的配置文件

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
计算机二级web题目(5)--js(Javascript)基础
计算机二级web题目(5)--js(Javascript)基础
0 0
计算机二级web题目(4)--CSS基础
计算机二级web题目(4)--CSS基础
0 0
计算机二级web题目(3)--HTML基础
计算机二级web题目(3)--HTML基础
0 0
计算机二级web题目(2)--HTTP基础
计算机二级web题目(2)--HTTP基础
0 0
计算机二级web题目(1)--web基础
计算机二级web题目(1)--web基础
0 0
Web基础(下)
Web基础(下)
0 0
Web基础(上)
Web基础(上)
0 0
Web开发及人机交互导论 实验九 JavaScript基础
Web开发及人机交互导论 实验九 JavaScript基础
0 0
Web开发及人机交互导论 实验三 CSS+DIV基础
Web开发及人机交互导论 实验三 CSS+DIV基础
0 0
windows python web flask 模板开发快速入门
windows python web flask 模板开发快速入门
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
边缘安全,让Web加速有保障
立即下载
使用CNFS搭建弹性Web服务
立即下载
WEB框架0day漏洞的发掘及分析经验分享
立即下载