SQL注入在比赛中的应用

本文详细介绍了SQL注入的概念及其在mysql中的多种类型,包括字符型、数字型、布尔型盲注及基于时间盲注等,并探讨了宽字节注入、二次编码注入等问题。此外,还讨论了magic_quotes_gpc等配置项可能带来的安全风险。

什么是SQL注入?

在这里插入图片描述

mysql注入的几种类型

字符型注入

在这里插入图片描述
在name里输入加一个 ’ 来闭合第四行的 ‘ ,通过联合查询获得更多信息

数字型注入

在这里插入图片描述

使用单引号保护并过滤内容

在这里插入图片描述

布尔型盲注

在这里插入图片描述
id = 1’ 无回显
id = 1’ and ‘1’=‘1 回显
id = 1’ and ‘1’='2 无回显
盲注用到的几个函数:
在这里插入图片描述
通过二分法最后确认长度为8

在这里插入图片描述
利用substr函数与ascii函数构造猜测数据库名ascii码的值得语句,因为现在只知道长度不知道具体内容
在这里插入图片描述通过二分法确认第一字母的ascii为115
在这里插入图片描述
猜表名
在这里插入图片描述
猜列名

基于时间盲注

在这里插入图片描述
通过设置sleep函数的数值,如果设置的数字数值越大,返回时间越慢,说明存在时间注入漏洞

宽字节注入

发生位置:php发送请求到mysql时字符集使用charactersetclient设置值进行了一次编码

在这里插入图片描述
修复:将字符集设置为utf-8

二次编码注入

在这里插入图片描述

其他

magic_quotes_gpc

当该选项被设置为ON,所有的

为什么这个安全项目被关闭?

在这里插入图片描述

缺陷

在这里插入图片描述

变量编码解码

stripslashes()这个其实就是decode-addslashes()
其他字符串转换函数
在这里插入图片描述

例:
在这里插入图片描述
当magic_quotes_gpc=on时,
提交?id=%2527,可以绕过(因为里边没有特殊字符)
得到sql语句为
SELECT * FROM article WHERE arcticleid=‘’’

二次攻击

与二次编码不同
特点:
在这里插入图片描述
数据库出来的变量没有进行过滤
数据库转义符合:
mysql/oracle转义符合同样是
提交‘通过魔术引号变化为\’,当update进入数据库时,通过反转义重新变为‘,
mssql的转义字符为‘
提交‘通过魔术引号变化为\’,mssql会把它当为一个字符串直接处理

魔术引号带来的新型攻击

“\”符号不仅仅是转义符合,在WIN系统下也是目录转跳的符号。
这个特点可能导致php应用程序产生一些漏洞
在这里插入图片描述

magic_quotes_runtime

在这里插入图片描述
数据库查询文件和文件读取函数

magic_quotes_sybase

在这里插入图片描述

自动化注入

用sqlmap的tamper脚本unmagicquotes.py
python sqlmap.py -u “http://wargame.kr:8080/SimpleBoard/read.php?idx=1’–tamper"unmagicquotes.py” -batch

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值