我工作的网站最近试图被以下sql注入脚本攻击
boys' and 3=8 union select 1,concat(0x232425,ifnull(`table_name`,0x30),char(9),ifnull(`table_rows`,0x252423),3,4,5,6,7,8,9 from `information_schema`.`tables` where table_schema=0x62646B3032 limit 44,1 -- And '8'='8
这个注入返回了MysqL表名.这是由该网站上的错误报告系统报告的,我们设法修复了该部分但是我无法理解上述注入意味着什么?
有人可以解释一下吗?
努伊勒
解决方法
根据
this的MysqL concat()
Returns the string that results from
concatenating the arguments. May have
one or more arguments. If all
arguments are nonbinary strings,the
result is a nonbinary string. If the
arguments include any binary strings,
the result is a binary string. A
numeric argument is converted to its
equivalent binary string form
所以0x232425转换为#$%,它只是添加到table_name字段的开头和结尾.也许只是为了让他们更容易在以后使用Regex提取表名.
稍后在char(9)上相当于一个标签,你可以看到here,就在那里格式化输出更好.
3,9就在那里,以便列匹配他们正在执行联盟的男孩表.