草庐IT

一次简单的SQL注入靶场练习

炫彩@之星 2024-06-07 原文

一次简单的SQL注入靶场练习

文章目录

前言

为了巩固SQL注入以及实战演练的需要,我们来做一次简单的关于SQL注入的实战靶场练习

一、靶机下载

靶场下载地址:
https://download.vulnhub.com/pentesterlab/from_sqli_to_shell_i386.iso

因为是linux系统,大家要注意安装的是linux的Debian系统,系统才能正常的运行,然后在设置里放置iso光盘就可以了。

安装好之后,我们就可以进行靶机渗透了

二、靶场渗透

1.端口扫描

我们进入靶机里,查看ip地址

ip为192.168.171.131,之后进入kali进行全端口扫描,看有哪些端口是开放的

发现开放了80端口,查看80端口的服务

打开是这个页面,没有什么思路,接下来,看一下源码有什么敏感信息或登录页面

发现存在id参数注入的页面,可以尝试一下注入看看

当然,还发现了文件上传的路径,点进去,是一个图片来的

当回到uploads目录时,发现页面没有经过安全设置,出现了文件之类和图片的信息,也可以猜想应该是文件上传的路径位置

当回到admin目录时,发现是一个登录页面,使用弱口令没有成功,那只能通过查看数据库来获取用户的信息了

之前查看源代码的时候发现有id参数注入,是否存在SQL注入呢,我们测试一下,加个单引号试试
http://192.168.171.131/cat.php?id=1’


报错了,加两个试试
http://192.168.171.131/cat.php?id=1’’

发现也报错了,那如果存在注入的话,可能不是字符型注入,而是数字型注入,没有单引号的存在,我们假设是数字型注入,用时间延迟盲注试试,看看是否存在SQL注入

当我们输入1-- 时,返回成功了
http://192.168.171.131/cat.php?id=1–

我们输入
192.168.171.131/cat.php?id=1 and sleep(3)–

发现系统一直转了3秒之后才停止,且返回了另一个页面

说明就是数字型注入,且存在SQL注入,我们为了节省时间,直接用sqlmap进行注入,获取数据库信息

我们直接用kali自带的sqlmap进行扫描了
sqlmap -u http://192.168.171.131/cat.php?id=1 -batch -dbs


扫出了这个库photoblog,说明用户信息就在这个库中,继续爆表和字段信息,为了直接查看所有信息,直接输入所有的数据了
sqlmap -u http://192.168.171.131/cat.php?id=1 -batch -D photoblog -dump-all


发现有3个表,用户信息在中间那个users表中

成功获取登录账号和密码
admin/P4ssw0rd
我们回到登录页面去登录看看


左下角有个上传文件的地方,点进去看看

我们试图上传一个包含一句话木马的图片上去,获取shell,我就上传本地的一个文件就好了

上传上去后,发现报错,是因为文件名没有符合长度的限制,我们修改一下文件名的长度


上传之后发现是php文件,不能上传,说明过滤了.php后缀,我们进行大小写或双写,进行绕过试试。

我们改为将hao.php改为hao.Php进行绕过


成功上传成功了,接下来,直接找到图片路径,用蚁剑连接就可以了。

我们点击图片看看

发现这个网址并不是图片路径哦,而是之前说的那个呢
http://192.168.171.131/admin/uploads/hao.Php

图片打得开,我们妖魔化一见你进行连接,获取shell


连接上了,我们打开终查看一下哦

查看成功了,靶机在这里就正式渗透完成了,,主要练习了SQL注入和文件上传漏洞的应用,后期会继续努力的。

总结

这次的靶机实验就结束了哦,比较简单,后期有时间的话,在做一次外网和内网渗透相结合的一次靶机实验,大家,一起努力吧。

有关一次简单的SQL注入靶场练习的更多相关文章

  1. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  2. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  3. ruby - 简单获取法拉第超时 - 2

    有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url

  4. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  5. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  6. ruby - 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么? - 2

    我的工作要求我为某些测试自动生成电子邮件。我一直在四处寻找,但未能找到可以快速实现的合理解决方案。它需要在outlook而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。显然win32ole可以做到这一点,但我找不到任何相当简单的例子。 最佳答案 假设存储了Outlook凭据并且您设置为自动登录到Outlook,WIN32OLE可以很好地完成此操作:require'win32ole'outlook=WIN32OLE.new('Outlook.Application')message=

  7. postman——集合——执行集合——测试脚本——pm对象简单示例02 - 2

    //1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json

  8. Qt Designer的简单使用 - 2

    在前面两节的例子中,主界面窗口的尺寸和标签控件显示的矩形区域等,都是用C++代码编写的。窗口和控件的尺寸都是预估的,控件如果多起来,那就不好估计每个控件合适的位置和大小了。用C++代码编写图形界面的问题就是不直观,因此Qt项目开发了专门的可视化图形界面编辑器——QtDesigner(Qt设计师)。通过QtDesigner就可以很方便地创建图形界面文件*.ui,然后将ui文件应用到源代码里面,做到“所见即所得”,大大方便了图形界面的设计。本节就演示一下QtDesigner的简单使用,学习拖拽控件和设置控件属性,并将ui文件应用到Qt程序代码里。使用QtDesigner设计界面在开始菜单中找到「Q

  9. Hive SQL 五大经典面试题 - 2

    目录第1题连续问题分析:解法:第2题分组问题分析:解法:第3题间隔连续问题分析:解法:第4题打折日期交叉问题分析:解法:第5题同时在线问题分析:解法:第1题连续问题如下数据为蚂蚁森林中用户领取的减少碳排放量iddtlowcarbon10012021-12-1212310022021-12-124510012021-12-134310012021-12-134510012021-12-132310022021-12-144510012021-12-1423010022021-12-154510012021-12-1523.......找出连续3天及以上减少碳排放量在100以上的用户分析:遇到这类

  10. 牛客网专项练习30天Pytnon篇第02天 - 2

    1.在Python3中,下列关于数学运算结果正确的是:(B)a=10b=3print(a//b)print(a%b)print(a/b)A.3,3,3.3333...B.3,1,3.3333...C.3.3333...,3.3333...,3D.3.3333...,1,3.3333...解析:    在Python中,//表示地板除(向下取整),%表示取余,/表示除(Python2向下取整返回3)2.如下程序Python2会打印多少个数:(D)k=1000whilek>1:    print(k)k=k/2A.1000 B.10C.11D.9解析:    按照题意每次循环K/2,直到K值小于等

随机推荐