网络安全-SQL注入3
SQL注入
Burp Suite辅助手工注入
Burp Suite介绍
Burp Suite 是用于攻击web 应用程序的集成平台,包含了许多工具
- Proxy:代理器,拦截、查看、修改原始数据流
- Intruder:攻击器,对web应用程序进行攻击
- Repeater:中继器,修改、重发HTTP请求
- Decoder:解码器,智能解码编码的工具
- Comparer:对比器,信息差异比较工具
安装Burp Suite
- 安装和配置java环境
- 激活Burp Suite pro
- 运行Burp Suite
配置Firefox代理服务器
安装FoxyProxy组件
添加代理服务器
- IP地址:127.0.0.1
- 端口:8080
启用代理上网
回顾:手工猜解当前数据库名
猜解数据库长度
1 | ?id=48 and length(database())=n -- + |
猜解数据库名称第一个字母
1 | ?id=48 and ord(substr(database(),m,1))=n -- + |
使用Burp Suite猜解数据库长度
使用Intruder模块,自动替换n的值
1 | ?id=48 and length(database())=n -- + |
使用Burp Suite猜解数据库名称
使用Intruder模块,自动替换m,n的值
1 | ?id=48 and ord(substr(database(),m,1))=n -- + |
使用Burp Suite猜解表名
猜解数据库中所有表名
1 | ?id=48 and ord(substr((select group_concat(table_name) from information_schema.tables where table_schema='news'),m,1))=n -- + |
同理可猜解字段名与数据
sqlmap自动注入
sqlmap介绍
sqlmap 是一个开源渗透测试工具,可以实现自动SQL注入
- 完全支持MySQL、Oracle、SOL Server、DB2等多种数据库管理系统
- 完全支持布尔型盲注、时间型盲注、基于错误信息的注入、联合查询注入和堆查询注入
- 支持下载数据库中的某个完整表,或部分数据
- 支持搜索指定的数据库名、表名或列名
- 支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列
- 支持自动识别密码哈希格式并通过字典破解密码哈希
安装sqlmap
kali系统默认已经安装,直接运行sqlmap命令
Windows系统需要全新安装
- 安装Python2.7
- 解压安装sqlmap1.5
- 执行sqlmap.py命令
检测注入点
选项:-u “URL”
1 | ┌──(root㉿kali)-[~] |
列出所有数据库名
选项:-dbs
1 | ┌──(root㉿kali)-[~] |
列出当前数据库名
选项:–current-db
1 | ┌──(root㉿kali)-[~] |
列出指定数据库中所有表
选项:-D 数据库名 –tables
1 | ┌──(root㉿kali)-[~] |
列出指定表中的字段名
选项:-D 数据库名 -T 表名 –columns
1 | ┌──(root㉿kali)-[~] |
列出指定字段中的内容
选项:-D 数据库名 -T 表名 -C 字段名 –dump
1 | ┌──(root㉿kali)-[~] |
SQL注入防护
回顾SQL注入本质
SQL注入利用Web应用对后台数据库查询语句处理时存在的安全漏洞
- 设计程序时忽略了对某些字符串的检查
- 原本程序要执行的代码,拼接了用户输入的数据 (嵌入指令)
数字型注入防护
对获取的数值型数据,进行类型转换,如
- intval():将字符串转为整形数值
- floatval():将字符串转为浮点型数值
1 | function getArticleInfo($id=0){ |
字符型注入防护
对用户输入的内容进行过滤处理,含单引号(‘)、双引号(“)、反斜线(\)与NULL等字符,都会被加上反斜线
- magic_quotes_gpc=on //php5.3之前版本
- addslashes()
1 | if(isset($_POST["username"])){ |
Web应用防火墙
Web应用防火墙(Web Application Firewall,简称WAF),可以有效识别Web业务流量的恶意特征,在对流量进行清洗和过滤后,将正常、安全的流量返回给服务器,避免网站服务器被恶意入侵导致服务器性能异常等问题,保障网站的业务安全和数据安全
- 硬件:天融信应用安全网关系统、绿盟Web应用防护系统、安恒信息明御Web应用防火墙、深信服下一代防火墙AF
- 云安全:阿里云、华为云、腾讯云
- 软件:D盾_防火墙、网站安全狗
部署Web应用服务器
- 安装“网站安全狗”
- 开启防护
- 设置防护等级:高级
注入防护测试
- 使用sqlmap自动注入测试
1 | ┌──(root㉿kali)-[~] |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Nicopilot!