01 SQL注入漏洞原理与利用方法
1.1 Web应用架构分析
1998 年 至今 20多年 了
爆出 sql 注入 导致 大量数据泄露
发现问题 —> 规避 sql注入 带来的 风险
研究 web框架 能 使我们 更熟悉 框架审计 中 注入的 原理
B/S 架构 开始 的时候 数据库 和网站 在同一台服务器 上
webapp 网站 放在 容器里
容器和数据库 软件 安装在 操作系统里
逻辑对 数据库的操作 来实现 网站功能
之后 互联网技术 发展
大量数据 大量请求 需要 web应用来处理
集群效果
中间件 容器
1.2 SQLi注入环境搭建
部分漏洞 需要 tomcat环境
WAMP 一款windows系统下的Apache+PHP+Mysql集成环境整合包
工程配置信息 路径等
部署的代码
需要的应用
windows 和 linux 换行符 不一样 导致 记事本不换行
不同难度级别
Linux docker 安装 sqli labs
后台运行
再命名
本地:docker 端口 —端口映射
创建 清理镜像
边看代码 边学习 注入
1.3 SQL注入原理分析
注意 返回 长度 select 1,version()
用1 来 占位
# %23 注释符号
MySQL注入方法逻辑运算及常用函数
~ 0x7e
登陆处 注入 构造 万能密码
'or '1'='1
时间延时注入
updatexml
xpath格式
报错注入
SQL注入流程
灵活构造参数 用于 搜索引擎
页面爬取 动态链接 去依次 注入 测试
这种 更适用于 有 登陆验证授权 或 cookie 的 案例
* 用在 漏洞 sql注入 特别了解
黑盒测试
白盒测试 寻找 测试点
id 参数 存在 sql注入 漏洞
从 sql命令 往上找 反向
GET POST 用户数据 正向
flask路由 对 用户 输入 地址识别
进入不同方法 进行处理
直接用 form表单
validate 有效性判断 password 没有做处理
获取到数据
直接 insert 添加到 数据库中
密码做了 hash 处理 没法 对 数据库 直接操作
username 做了 正则匹配 也没办法
email 邮箱 注册 验证
邮箱 没有对 输入内容 进行验证
构造 payload
Microsoft JET Access 数据库
mysql 5.x 存在 用数据语句 内置库 表 列 -->查询 关键数据
access 不存在 库信息
sqlserver sa权限 执行系统命令
mysql 权限 低 不能直接执行系统命令
读文件 配置文件
tomcat 管理员管理密码 部署webshell 变相提权
读取 数据库配置文件 - 账号密码
写文件 --os-shell
php-mysql 写一个 webshell 到 网站目录 执行系统命令 变相提权
SQL手工注入方法
引擎层
实现 数据 存取
定义 数据 存储 的 格式 方式
sql层
特定的 语法 完成 数据库任务执行
执行结果 处理 返回 可识别信息
连接层
通讯协议 线程 验证
结构化 查询语句
授权
数据库 定义 控制 操作 查询 语言
解析器
优化器
执行器
引擎层
缓存
了解基础原理
库 xx小学
表 xx年级xx班
列 序号 学号 姓名 性别
数据 1 x x x
库 功能 操作
mysql 账户信息
sys 元数据信息
performance_schema 性能参数 参数设置 收集
information_schema 访问 元数据
十六进制 不需要 单引号 ’ '包裹
1.BIN:binary,二进制的;
2.OCT:octal,八进制的;
3.HEX:hexadecimal,十六进制的;
4.DEC:decimal,十进制的。
Hash是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值
03 XSS漏洞原理与利用
第一章:XSS基础
1.1 XSS介绍与原理~1
打cookie
xss + csrf getshell
用来攻击 使用浏览器 打开这个 页面的 用户
获取cookie 正常用户/管理员 权限
反射型 - 非存储型
通常 xss 代码 Payload (js) 通过 get 某个参数 传入 后端
没有经过 存储 直接反射回 用户页面 (html)上
存储型
payload 存 在某一介质 (数据库、缓存、文件)
用户 查看这个页面时 展示 页面 取出数据 时 执行
跟反射型类似
但接受者 不再是 后端程序 而是 js 拿到参数 直接 在页面 显示
html 实体编码 大多数 管用
白名单 发表文章 富文本 过滤掉 js代码 或者 涉及非法的属性
只div a p b 标签
排除onError、onLoad 事件属性
只 src
黑名单 可能会绕过
xss 业务场景 对症
反射 get 输入 script代码块 输出
xss 流程
payload 构造
验证
修复
xss 高阶 新用法
xss持久化
xss系列